Кассандра LWT ReadTimeoutException или WriteTimeoutException - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь вставить два процесса в одну таблицу.Поэтому сначала я пытаюсь ввести значения ключа разделения и кластеризации с помощью LWT, если это успешно, это означает, что процесс может продолжить эту работу для этого временного интервала, в противном случае другой процесс уже завершил этот интервал.LWT устанавливается с уровнем согласованности One и последовательным уровнем согласованности LOCAL_SERIAL.

Если первая вставка прошла успешно, работа выполнена, а другая вставка выполнена с уровнем согласованности, равным единице.Первый оператор имеет оператор TTL для случая, когда процесс, выполняющий работу, завершается в середине, строка будет пустой после TTL 90.

Даже если я запускаю один процесс, LWT дает сбой либоисключение таймаута чтения или записи.

Вот подготовленное утверждение и исключения, которые я получаю.Любая помощь приветствуется.

com.datastax.driver.core.exceptions.ReadTimeoutException: 
Cassandra timeout during read query at consistency LOCAL_QUORUM 
(2 responses were required but only 1 replica responded)

com.datastax.driver.core.exceptions.WriteTimeoutException: 
Cassandra timeout during write query at consistency LOCAL_SERIAL 
(2 replica were required but only 1 acknowledged the write)

statement = {DefaultPreparedStatement@10844} 
 preparedId = {PreparedId@10886} 
 query = "INSERT INTO event_store(evt_type, rcncl_date, rcncl_ts) values( ?, ?, ?) IF NOT EXISTS USING TTL 90;"
 queryKeyspace = "test"
 routingKey = null
 consistency = {ConsistencyLevel@10882} "ONE"
 serialConsistency = {ConsistencyLevel@10883} "LOCAL_SERIAL"
 traceQuery = false
 retryPolicy = null

1 Ответ

0 голосов
/ 09 июня 2018

Кажется, у вашего кластера какая-то проблема с ответами.Таймауты на узлах (из-за перегрузки или других проблем) или некоторые узлы фактически не работают.Другой причиной может быть ваш фактор репликации, поэтому убедитесь, что у вас есть хотя бы много узлов, как ваш RF.

Выполните nodetool status, чтобы проверить состояние ваших узлов.Также используйте nodetool info, чтобы проверить, есть ли у них исключения (если так, проверьте журналы после, вы можете grep для exception, чтобы помочь сузить).

В случае перегрузки это должно быть видно с nodetool tpstats, ищите много в ОЖИДАНИИ или ЗАБЛОКИРОВАНО / ВСЕ ВРЕМЯ ЗАБЛОКИРОВАНО.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...