Ich benutze Cassandra 2.2 und ich habe eine Anwendung, die ein hohes Maß an Konsistenz erfordert.Konsistenz und Timeout-Probleme mit Cassandra 2.2
Ich habe einen Datencenter-Cluster mit 3 Knoten konfiguriert. Mein Schlüsselbereich wird mit replication_factor
von 2 erstellt. In jeder configuration.yaml Dateien habe ich 2 seed_providers (zum Beispiel NODE_1 und NODE_3) gesetzt.
Wichtig ist, dass meine App auch bei Ausfall eines Knotens voll funktionsfähig sein sollte.
Derzeit habe ich Probleme mit der Konsistenz und dem Timeout, wenn meine App den Cluster kontaktiert.
Ich habe die ganze Cassandra 2.2 Dokumentation zu lesen und ich festgestellt, dass die besten CONSISTENCY LEVEL
für meine Schreiboperationen QUORUM
sein sollte und für meine Leseoperationen ONE
, aber ich habe noch einige Konsistenzprobleme hat.
Vor allem ist es die richtige Wahl, ein hohes Maß an Konsistenz zu haben? Und auch, sind UPDATE
und DELETE
Operationen als Schreib-oder Leseoperationen, da zum Beispiel eine Update-Operation mit einer WHERE
Klausel noch Daten 'lesen' muss? Ich bin mir nicht sicher, räumlich im Zusammenhang mit dem Cassandra-Schreib-Workflow.
Mein zweites Problem ist die Zeitüberschreitung während der Schreibvorgänge. Eine einfache und leichte INSERT
manchmal "Cassandra timeout during write query at consistency QUORUM (2 replicas were required but only 1 acknowledged the write)
" oder etwas sogar "... 0 acknoledged", obwohl alle meine 3 Knoten UP sind.
Gibt es einige andere Parameter, die ich überprüfen sollte, wie zum Beispiel write_request_timeout_in_ms, mit einem Standardwert von 2000 ms (was ist schon ein hoher Wert)?
Danke für Sie beantworten. Aber, könnten Sie bitte erklären, nur ein wenig, warum 3 Knoten am Anfang mit dem Replikationsfaktor 2 die Schreiboperationen fehlschlagen lassen, wenn ein Knoten ausfällt. Mit einem ausgefallenen Knoten habe ich noch 2 Knoten zur Verfügung. Meiner Meinung nach sollte in diesem Fall das Schreiben mit QUORUM-Konsistenz (2 Replikationen müssen bekannt sein) noch funktionieren. Aber ich bin wahrscheinlich falsch. Vielen Dank. –
@TheWingman, ich habe eine Erklärung über die Replikation zu meiner Antwort hinzugefügt –
Vielen Dank für all diese Erklärungen. Es ist viel klarer –