2016-09-20 3 views
0

In einigen Service-Gewebe Anwendungsbeispiele Ref: https://github.com/Azure-Samples/service-fabric-dotnet-iot, überprüfen Sie für die Anzahl Artikel derzeit in der Sammlung, so etwas wieService-Fabric Zuverlässige Sammlung Kapazität

if(currentNumberOfBufferedWorkItems >= m_MaxNumOfBufferedWorkItems) 
     { 
      throw new InvalidOperationException($"Work Manger is at maximum buffered work items:{currentNumberOfBufferedWorkItems}"); 
     } 

Der aktuelle Wert für m_MaxNumOfBufferedWorkItems 10000

Welche Faktoren müssen berücksichtigt werden, um den maximalen Pufferwert für die zuverlässige Sammlung festzulegen?

Antwort

3

Im angegebenen Beispiel verwenden sie eine Warteschlange zum Puffern von Elementen, die später verarbeitet werden sollen. Sie überprüfen die Anzahl der Elemente, um die Größe des Puffers zu begrenzen. Dies ist freiwillig, nicht durch die Sammlung selbst beschränkt. Die Größe der zuverlässigen Sammlung ist nur durch den Speicherplatz auf den Knoten begrenzt.

Die Puffergrenze in diesem Beispiel sollte durch die Verarbeitungskapazität bestimmt werden. Wenn der Puffer außer Kontrolle gerät, müssen Sie mehr Verarbeitungsleistung hinzufügen.

+0

Nicht sicher, ob die Größe der Sammlungen nur durch Speicherplatz begrenzt ist. Zuvor wurde festgestellt, dass SF-zuverlässige Sammlungen die gleichen Einschränkungen wie jede andere Sammlung in .net - 2GB haben, und es wurde auch gesagt, dass SF-Team in Zukunft diese Einschränkung loswerden wird. Versteh ich etwas falsch und gibt es wirklich keine Einschränkung? – cassandrad

+1

Matthew Snider (MSFT) bemerkte, dass die Einschränkung vor einiger Zeit in den Kommentaren hier entfernt wurde: https://azure.microsoft.com/en-us/documentation/articles/service-fabric-work-with-reliable-collections/ {Das Limit von 2GB wurde vor einiger Zeit entfernt (silly int). Heute sind Sie auf Speicher für die Größe aller Ihrer Schlüssel und Datenträger für Werte beschränkt (da wir die Werte im Wörterbuch auslagern).} – LoekD