Тайм-аут запроса не входит в систему на стороне сервера Cassandra - PullRequest
0 голосов
/ 01 июня 2018

Я установил server timeout in cassandra as 60 seconds и client timeout in cpp driver as 120 seconds.

Я использую Пакетный запрос, который имеет операции 18K, я получаю ошибку Request timed out в cpp driver logs, но в журналах сервера Cassandra есть нет TRACE несмотря на то, что ALL регистрируется в Cassandra logback.xml

Итак, как я могу подтвердить, что он генерируется со стороны сервера / клиента в Cassandra?

1 Ответ

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

BATCH не предназначен для такой работы.Он предназначен для атомного применения 6 или 7 мутаций к разным таблицам.Вы пытаетесь использовать его, как аналог RDBMS (Кассандра просто так не работает).Тайм-аут BATCH предназначен для защиты узла / кластера от сбоев из-за того, насколько дорогим является этот запрос для координатора.

В system.log вы должны увидеть предупреждения / сбои относительно размера вашего BATCH.Если вы изменили их и не видите этого, вы должны увидеть предупреждение о превышении порога тайм-аута (я думаю, что BATCH получает свой собственный тайм-аут в 3.0).

Если все остальное терпит неудачу, запустите ваш BATCHоператор (часть его) в cqlsh с включенной трассировкой, и вы точно поймете, почему это плохая идея (на стороне сервера).

Кроме того, для защиты вашего кластера предусмотрены тайм-ауты по умолчанию.Вы действительно не должны изменять их.Вы должны изменить свой запрос / модель или подход, прежде чем смотреть на настройку тайм-аута.

...