Benutzer:Flash1984/Spielwiese

aus Wikipedia, der freien Enzyklopädie

Beispiel zu Consistent Hashing (Amazon Dynamo)


Beispiel:

In einem Ring mit dreifacher Replikation stehen folgende physikalische Knoten zur Verfügung:

  • A mit 100 GB Speicherkapazität
  • B und C mit je 200 GB Speicherkapazität


Fall 1: keine virtuellen Knoten Bei hinreichend vielen Dateien sind in jedem Knoten irgendwann 100 GB gespeichert, Folge:

  1. In A kann nicht mehr direkt gespeichert werden
  2. In B und C kann wegen Replikation in A ebenfalls nicht mehr gespeichert werden


Im günstigsten Fall ergibt sich somit folgender Befüllungsgrad:

  • Knoten A: 100 GB
  • Knoten B: 100 GB
  • Knoten C: 100 GB

gesamt: 300 GB


Fall 2: mit virtuellen Knoten Es werden die virtuellen Knoten VK0 bis VK9 mit je 50 GB Kapazität erstellt (oder jede beliebige andere Größe < 100 GB). Die Allokation wäre beispielsweise wie folgt möglich:

  • A mit VK0 und VK1
  • B mit VK2 bis VK5
  • C mit VK6 bis VK9


Hiermit wäre es möglich, bei hinreichend vielen Dateien jeden einzelnen virtuellen Knoten zu 100% auszulasten. Dadurch käme man zu folgender Speicherplatzverteilung:

  • Knoten A: 100 GB (2 virtuelle Knoten)
  • Knoten B: 200 GB (4 virtuelle Knoten)
  • Knoten C: 200 GB (4 virtuelle Knoten)

gesamt: 500 GB


Anmerkung: In einem realen Anwendungsfall würde man allerdings die virtuellen Knoten anders aufteilen, damit nicht wie hier in diesem Fall alle Kopien auf einem Rechner liegen, z.B. VK2, VK3 und VK4.