читать тайм-аут в Кассандре в Джанго Кассандра двигателя - PullRequest
0 голосов
/ 06 марта 2019

Привет, я использую кассандру в питоне.у меня есть таблица в Кассандре с 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 , я получаю ошибку тайм-аута и не могу получить результат.в чем причина?

1 Ответ

1 голос
/ 06 марта 2019

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

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

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

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

...