Версия протокола драйвера Cassandra Python и ограничения на количество подключений не совпадают

Я использую версию драйвера Python для Datastax:3.23

Версия Cassandra: версия DSE 5.1.16

Вывод cqlsh дает следующее:

[cqlsh 5.0.1 | Cassandra 3.11.3.5116 | DSE 5.1.16 | CQL spec 3.4.4 | Nativeprotocol v4]

cluster = Cluster(['X.X.X.X'],port=9042,auth_provider=provider,protocol_version=4)
max_requests = cluster.get_max_requests_per_connection(0)
max_connections = cluster.get_max_connections_per_host(0)
print(max_connections)
print(max_requests)

Выход:-

8100

На основе документации DataStax max_request_per_host in v4 должно быть 32786.

Не уверен, в чем проблема.

Обнаружил аналогичную проблему для Java-диска.

1 ответ

32 КБ запросов на одно соединение - это теоретический максимум, а не фактическое количество. У каждого драйвера есть некоторая константа как максимальное количество запросов на соединение. Например, драйвер Java разрешает 1024 запроса на соединение, C# - 2048 и т. Д.

Вы можете увеличить это значение, используя cluster.set_max_requests_per_connectionдля драйвера Python или соответствующих функций в других драйверах. Но я не рекомендую сильно увеличивать его - если у вас слишком много запросов на лету, это признак того, что ваш кластер не справляется с нагрузкой, и, увеличивая настройку, вы просто скрываете настоящую проблему.

Другие вопросы по тегам