2013-05-11 5 views

Antwort

14

271 ist eine Primzahl. Und wenn Hazelcast einen beliebigen Schlüssel erhält, hasht er den Schlüssel und modifiziert ihn mit der Anzahl der Partitionen. In diesem Zusammenhang wird angenommen, dass Primzahlen ein pseudozufälliges Ergebnis erzeugen. Eigentlich ist es für die Benutzerperspektive nicht so wichtig, dass es prim ist.

Dann können Sie fragen, warum 271, aber nicht andere Primzahl.

Einfach weil 271 eine gute Zahl ist, die fast gleichmäßig verteilt wird, wenn Sie weniger als 100 Knoten haben. Wenn Sie mehr als 100 Knoten haben, müssen Sie sie erhöhen, um die Verteilung gleichmäßig zu gestalten.

Ein weiterer Grund für die Erhöhung der Partitionsanzahl ist, wenn Sie große Datenmengen haben. Angenommen, Sie haben 300 GB Daten im Datengrid gespeichert. Dann hat jede Partition mehr als 1 GB und die Migration dauert zu lange. Beachten Sie, dass während der Migration alle Updates für diese Partition blockiert werden. Aus Gründen der Latenz möchten Sie kleine Daten pro Partition haben. Also erhöhen Sie es auf eine Zahl, bei der Sie mit der Latenz von bewegten Partitionen vertraut sind.

Beachten Sie, dass Partitionen nur migriert werden, wenn Sie einen neuen Knoten hinzufügen.

+1

Hazelcast empfiehlt <100 MB pro Partition für die Latenzzeit und 40 Partitionen pro Knoten für eine gleichmäßigere Verteilung. Daher ist die Wahl einer Primzahl in der Nähe von 40 x Knotenzahl ein gutes Ziel. –