Я использую Cassandra 2.2, и у меня есть приложение, которое требует высокого уровня согласованности.Проблемы с консистенцией и таймаутом с Cassandra 2.2
Я настроил один кластер центров обработки данных с 3 узлами. Мое пространство ключей создано с replication_factor
из 2. В каждом файле configuration.yaml я установил 2 seed_providers (например, NODE_1 и NODE_3).
Важно то, что мое приложение должно быть полнофункциональным, даже если один узел выключен.
В настоящее время у меня есть некоторые проблемы с согласованностью и таймаутом, когда мое приложение связывается с кластером.
Я прочитал весь Cassandra 2.2 документацию, и я пришел к выводу, что лучший CONSISTENCY LEVEL
для моих операций записи должен быть QUORUM
и для моих операций чтения ONE
, но я до сих пор есть некоторые проблемы непротиворечивости.
Прежде всего, это правильный выбор, чтобы иметь сильный уровень согласованности? А также являются операциями UPDATE
и DELETE
, считающимися операциями записи или чтения, поскольку, например, операция обновления с предложением WHERE
по-прежнему должна «читать» данные? Я не уверен, пространственно в контексте рабочего процесса кассандры.
Моей второй проблемой является тайм-аут во время операций записи. Простой и легкий INSERT
иногда получают «Cassandra timeout during write query at consistency QUORUM (2 replicas were required but only 1 acknowledged the write)
» или sometines даже «... 0 acknoledged», хотя все мои 3 узла UP.
Есть ли еще некоторые параметры, которые я должен проверить, например, write_request_timeout_in_ms, со значением по умолчанию 2000 мс (что уже является высоким значением)?
Спасибо вам ответить. Но, не могли бы вы объяснить, пожалуйста, немного, почему с 3-мя узлами в начале с коэффициентом репликации 2 произойдет сбой операций записи, если один узел завершит сбой. С одним неисправным узлом я все еще имею 2 доступных узла. На мой взгляд, в этом случае запись с QUORUM-консистенцией (2 повторения должны быть подтверждены) должна по-прежнему работать. Но я, вероятно, ошибаюсь. Спасибо. –
@ TheWingman, я добавил объяснение о репликации на мой ответ –
Большое спасибо за все эти объяснения. Это гораздо более ясно. –