Was ist CAS in NoSQL-und wie es zu benutzen?
Schreib-Operationen auf Couchbase akzeptieren einen parameter cas
(erstellen und einstellen). Auch die Rückgabe Ergebnis-Objekt von nicht-data-fetching query hat cas
Eigentum daran. Ich habe ein wenig Gegoogelt und nicht finden konnte, ein gutes konzeptionelles Artikel darüber.
Könnte mir jemand sagen, Wann CAS und wie es zu tun? Was sollte die gemeinsame Arbeit-flow mit CAS?
Meine Vermutung ist, wir müssen zu Holen CAS für die erste Schreiboperation, und dann übergeben Sie es zusammen mit der nächsten schreiben. Auch wir benötigen ein update mit Ergebnis ist CAS. Korrigieren Sie mich, wenn ich falsch bin.
Du musst angemeldet sein, um einen Kommentar abzugeben.
CAS steht eigentlich für check-and-set, und ist eine Methode der optimistischen sperren. Der CAS-Wert zugeordnet ist, jedes Dokument, das aktualisiert wird, wenn das Dokument geändert wird - ein bisschen wie eine revisions-ID. Die Absicht ist, dass statt der pessimistisch sperren von Dokumenten (und den damit verbundenen lock-overhead), die Sie gerade gelesen, es ist CAS-Wert, und dann nur schreiben, wenn der CAS entspricht.
Den Allgemeinen use-case ist:
get_with_cas
)check_and_set
Betrieb genommen, die den CAS-Wert aus (1).Schritt 3 wird nur gelingen, (führen Sie den write), wenn das Dokument unverändert ist zwischen (1) und (3), d.h. keine anderen Benutzer geändert wurde es in der Zwischenzeit. In der Regel, wenn (3) nicht, Sie würden wiederholen Sie die gesamte Sequenz (
get_with_cas
ändern,check_and_set
).Gibt es eine viel detailliertere Beschreibung von check-und-Satz in die Couchbase-Entwickler-Guide unter Gleichzeitige Mutationen Dokument.