2016-06-19 4 views
0

Was ist der Unterschied in der Sequenznummer, die von den obigen zwei zurückgegeben wird? AFAIK geben beide die letzte Sequenznummer zurück, die möglicherweise nicht repliziert oder auf Festplatte gespeichert wurde.Unterschied zwischen GetLastCheckpointRequest und GetAllMutationTokensRequest?

Unterschied Ich bin mir bewusst,

GetAllMutationTokensRequest Werte nur für einen einzelnen Knoten zurückgibt. Also sollte es für GetLastCheckpointRequest gleichbedeutend sein, es einmal für jeden Knoten aufzurufen.

GetLastCheckpointRequest 1 zurück, wenn keine Änderungen, GetAllMutationTokensRequest 0 zurück

Wir GetCurrentState verwenden, wie in https://forums.couchbase.com/t/getallmutationtokensrequest-generates-incomplete-response/8166/2 gezeigt. Bei Clustern, die mehrere Male fehlgeschlagen und erneut ausgeglichen wurden, scheint es, dass getCurrentState keine Änderungen vom letzten Aufruf zurückgibt, auch wenn Änderungen vorgenommen wurden. Früher haben wir GetAllMutationTokensRequest verwendet und die richtige Sequenznummer zurückgegeben. Wir verwenden Core-io 1.2.8.

Antwort

1

Nachdem dieses Update https://github.com/couchbase/couchbase-jvm-core/commit/5953dc39d0c212109d951822497ea8d6bf3a4762GetAllMutationTokensRequest ordnungsgemäß für jeden Knoten gesendet wurde, war das vorherige Verhalten auf den Fehler zurückzuführen.

GetLastCheckpointRequest unterscheidet sich ein bisschen, weil es die aktuelle Folgenummer nicht zurück, sondern seqno des letzten geschlossenen Kontrollpunkt, die als der Wert von GetAllMutationTokensRequest

+0

wieder anders sein könnte geschlossen Kontrollpunkt Ist Sequenznummer bedeuten die wurde beibehalten und repliziert? –