1

Nach meinem Verständnis, wenn Sie einen neuen Knoten zu einem Ring mit aktivierten virtuellen Knoten hinzufügen, werden ihm einige Token-Bereiche zugewiesen und Daten werden zu neuen Knoten von bestehenden Knoten im Ring gestreamt. Wenn dieser Bootstrapping-Prozess stattfindet, wird der neue Knoten Schreibvorgänge und nicht Lesevorgänge ausführen. Wenn während dieses Vorgangs angenommen wird, dass neue Daten in den Token-Bereich des neuen Knotens mit der Replikation von 1 eingefügt werden müssen, wird dies sowohl auf den alten als auch auf den neuen Knoten mit diesem Token-Bereich geschrieben oder in neue geschrieben Knoten. Wenn es nur für einen neuen Knoten geschrieben wird und eine Anforderung für die neu eingefügten Daten kommt, wird der Knoten die Leseanforderung bedienen, da der neue Knoten nicht vollständig dem Ring beigetreten ist.Beim Bootstrapping eines neuen Knotens in einen Cassandra-Ring werden die neuen Daten eingefügt, wenn RF 1?

+0

Es wird in beide geschrieben. – phact

Antwort

2

Wenn Sie einem neuen Knoten in Cassandra beitreten, wird der Knoten nicht vollständig Eigentümer der neuen Token im Ring für Lese- oder Schreibvorgänge, bis die neuen Daten vollständig an ihn gestreamt wurden. In dem Prozess, den Sie beschreiben, werden die Daten weiterhin in den ursprünglichen Knoten (A) geschrieben, der diesen Token-Bereich besitzt, bis der neue Knoten (B) vollständig mit den Daten geladen wurde. An diesem Punkt sendet Knoten B eine Nachricht aus, die besagt, dass er nun der Besitzer der neuen Token-Bereiche ist und alle zukünftigen R/W-Anfragen von A nach B weitergeleitet werden.

Verwandte Themen