Cpp-драйвер Cassandra Datastax - кажется, что обратные вызовы используют 1 поток - PullRequest
0 голосов
/ 07 мая 2018

В настоящее время я использую будущее обратного вызова CassFuture для реализации асинхронного шаблона для обработки запросов Cassandra. Похоже, что все обратные вызовы поступают в одном потоке. Это ожидаемое поведение?

1 Ответ

0 голосов
/ 07 мая 2018

Если вы используете текущую версию драйвера (v2.9.0), число потоков настраивается с помощью cass_cluster_set_num_threads_io () перед созданием сеанса и по умолчанию 1 .Если вы увеличите количество потоков ввода-вывода в конфигурации кластера, вы заметите, что обратные вызовы CassFuture начнут появляться в разных потоках.

ПРИМЕЧАНИЕ: Если ваш обратный вызовмедленный, рассмотрите возможность запуска в отдельном потоке;в противном случае обратный вызов может блокировать операции ввода-вывода для других запросов, выполняемых в потоке обратного вызова / ввода-вывода.Еще одна рекомендация - не использовать полное количество ядер / виртуальных ядер, доступных в конфигурации вашего оборудования, так как это может привести к истощению ресурсов из вашего клиентского приложения (и, возможно, из служб ОС).

...