Медленное время ожидания 500 мсек / кросс-узел ПРЕДУПРЕЖДЕНИЕ - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть узел дерева Cassandra cluster.

Когда я запрашиваю много данных у клиента Java, у меня появляются следующие предупреждения на стороне сервера:

 WARN SELECT * FROM [...] time 789 msec - slow timeout 500 msec/cross-node
 WARN SELECT * FROM [...] time 947 msec - slow timeout 500 msec/cross-node
 WARN SELECT * FROM [...] time 1027 msec - slow timeout 500 msec/cross-node
 WARN SELECT * FROM [...] time 819 msec - slow timeout 500 msec/cross-node

На стороне клиента, я заканчиваюсо следующим исключением:

java.util.concurrent.ExecutionException:
com.datastax.driver.core.exceptions.TransportException:
[/ xyza: 9042] Соединение было закрыто

Ямл конфигурации моего сервера выглядит следующим образом:

 # How long the coordinator should wait for read operations to complete
 read_request_timeout_in_ms: 5000
 # How long the coordinator should wait for seq or index scans to complete
 range_request_timeout_in_ms: 10000
 # How long the coordinator should wait for writes to complete
 write_request_timeout_in_ms: 2000
 # How long the coordinator should wait for counter writes to complete
 counter_write_request_timeout_in_ms: 5000
 # How long a coordinator should continue to retry a CAS operation
 # that contends with other proposals for the same row
 cas_contention_timeout_in_ms: 1000
 # How long the coordinator should wait for truncates to complete
 # (This can be much longer, because unless auto_snapshot is disabled
 # we need to flush first so we can snapshot before removing the data.)
 truncate_request_timeout_in_ms: 60000
 # The default timeout for other, miscellaneous operations
 request_timeout_in_ms: 10000

I не найдена ссылка на тайм-аут "500 мс" .Так как я могу настроить этот тайм-аут?Существуют ли какие-либо варианты, позволяющие избежать окончания исключения при запросе большого количества разделов / данных?

В качестве примечания, я использую future для извлечения данных асинхронным способом:

 import com.datastax.driver.core.ResultSetFuture;

1 Ответ

4 голосов
/ 17 апреля 2019

По умолчанию slow_query_log_timeout_in_ms - 500, и это не фактическое время ожидания, а просто уведомление / запись в журнал.Вы можете обновить это в своем yaml, если хотите, чтобы оно было выше.

500ms медленно, хотя и может быть индикатором того, что что-то не так в вашей среде или запросе.Хотя, если это редко, это могут быть просто периодические GC, которые могут быть смягчены с помощью умозрительной повторной попытки на стороне клиента.

...