тайм-аут чтения в cassandra в django cassandra engine

Привет, я использую cassandra в python. у меня есть таблица в cassandra с line_id (uuid) в качестве первичного ключа. У меня около 2000000 записей (каждый раздел имеет одну запись). когда я хочу получить количество записей:

NumberPartitionedLine.objects.count()

я получаю эту ошибку:

Error from server: code=1200 [Coordinator node timed out waiting for replica nodes' responses] message="Operation timed out - received only 0 responses." info={'consistency': 'LOCAL_ONE', 'received_responses': 0, 'required_responses': 1}

также, когда я запускаю запрос select count(*) from number_partitioned_line в razorsql или datagrip, я получаю сообщение об ошибке тайм-аута и не могу получить результат. В чем причина?


person Milad Khodabandehloo    schedule 06.03.2019    source источник
comment
Вам необходимо увеличить выделение памяти серверу Cassandra DB.   -  person Shariq    schedule 06.03.2019


Ответы (1)


Вы пытаетесь читать с 2 миллионов разделов, что действительно не рекомендуется в Cassandra.

выполнение подсчета (*) добавит большое давление на узлы, если оно не ограничено ключом раздела, и в вашем случае вы не можете ограничить раздел, поскольку каждый раздел имеет только одну запись.

В вашем случае лучше использовать таблицу счетчиков - https://docs.datastax.com/en/cql/3.3/cql/cql_using/useCountersConcept.html

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

person M P    schedule 06.03.2019