Wenn ich eine Webanwendung in einer Farm ausführe, die einen konsistenten Datenspeicher verwendet, der letztendlich konsistent ist (CouchDB in meinem Fall), sollte ich sicherstellen, dass ein bestimmter Benutzer immer an die Datenspeicherinstanz weitergeleitet wird?Sollten Benutzer bei Verwendung eines möglicherweise konsistenten Datenspeichers zu bestimmten Datenknoten weitergeleitet werden?
Es scheint mir, dass der alternative Ansatz, bei dem jede Webanforderung einen beliebigen Datenspeicher verwenden kann, eine erhebliche Komplexität bei der Behandlung von Konsistenzproblemen (Wiederholungen, Prüfungen usw.) mit sich bringt. Auf der anderen Seite, wenn ein Benutzer in einer bestimmten Sitzung immer an den gleichen Couch-Knoten gerichtet ist, werden sich meine Konsistenzprobleme nicht hauptsächlich um "gemeinsame" Benutzerdaten drehen und somit stark vereinfacht werden?
Ich bin auch neugierig auf Strategien zur Steuerung von Benutzern, aber vielleicht behalte ich das für eine andere Frage (Kommentare willkommen).
Couchbase ist stark konsistent. Sie lesen Ihren eigenen Schreibvorgang und es gibt nur eine aktive Darstellung der Daten im Cluster. Es gibt Replikate, aber Konsistenz ist nicht garantiert, wenn Sie diese abfragen. Sie können auch bei jedem Schreibvorgang auswählen, ob Sie warten möchten, bis das Dokument auf dem Datenträger gespeichert, bis zum vierten Mal repliziert oder im Master und in anderen Replikaten gespeichert wurde. –
Die Frage spezifiziert CouchDB, nicht Couchbase. –
@Mr Trauer, Entschuldigung, ich meinte CouchDB. Obwohl ich nicht sicher bin, wie CouchDB die Replikation implementiert, steht meine Antwort immer noch. Sie müssen starke Konsistenz für bessere Verfügbarkeit aufgeben. – Paras