Одно из наших приложений иногда получает ошибку:
Cassandra timeout during read query at consistency LOCAL_QUORUM (2 responses were required but only 1 replica responded)
В течение часа мы можем получить 20 или 30 из этих более 10 000 запросов или более. И повтор запроса обычно работает.
Это похоже на тайм-аут. Ошибка появляется в журналах приложения, но я не вижу ни соответствующей ошибки, ни предупреждения, ни чего-либо на самом деле ни в cassandra system.log, ни в debug.log.
Все поиски, которые я выполняю в Интернете, приводят к запросам, где люди видят это последовательно, но для меня это не согласованно. Кластер сам по себе здоров, а другие запросы возвращают просто отлично. Запрашиваемая таблица невелика (несколько десятков МБ на каждом сервере). Глядя на таблицы-диаграммы, я не вижу ничего слишком большого для чтения или записи на любом сервере для рассматриваемой таблицы. Процессор, память и т. Д. Все в порядке.
Типичная гистограмма для этой таблицы в настоящее время
Percentile SSTables Write Latency Read Latency Partition Size Cell Count
(micros) (micros) (bytes)
50% 2.00 29.52 152.32 1916 72
75% 3.00 35.43 379.02 24601 770
95% 3.00 51.01 379.02 454826 14237
98% 3.00 61.21 379.02 654949 20501
99% 3.00 73.46 379.02 785939 24601
Min 0.00 14.24 105.78 180 6
Max 3.00 88.15 379.02 1629722 51012
Хотя у меня его нет сразу после появления этой ошибки.
Запуск Apache Cassandra 3.11.3. Кластер из 16 узлов (8 узлов в каждом DC). Репликация DC1: 3, DC2: 3 (для всех таблиц во всех пространствах ключей пользователя). Драйвер настроен на использование DCAwareRoundRobin, и все операции чтения и записи - LOCAL_QUORUM. Приложение (как и все наши приложения) - это запись. STDC настроен, если это поможет.
Мы видим намного меньше тайм-аутов при записи, но они не равны нулю:
com.datastax.driver.core.exceptions.WriteTimeoutException: Cassandra timeout during SIMPLE write query at consistency LOCAL_QUORUM (2 replica were required but only 1 acknowledged the write)
Если это имеет значение, это происходит с таблицами персистентности Akka для этого конкретного приложения.
Я ищу возможные предложения по поводу причин, пожалуйста, так как я не смог ничего найти (и у меня не так много волос, чтобы вырвать ...).
Спасибо.
Caused by: com.datastax.driver.core.exceptions.ReadTimeoutException: Cassandra timeout during read query at consistency LOCAL_QUORUM (2 responses were required but only 1 replica responded)
at com.datastax.driver.core.Responses$Error$1.decode(Responses.java:91)
at com.datastax.driver.core.Responses$Error$1.decode(Responses.java:66)
at com.datastax.driver.core.Message$ProtocolDecoder.decode(Message.java:297)
at com.datastax.driver.core.Message$ProtocolDecoder.decode(Message.java:268)
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88)
... 34 common frames omitted
У нас есть несколько приложений, использующих этот кластер. Это не единственное приложение с ошибками, но я полагаю, исправив это приложение, оно исправит другие.