Проблема Кассандры при подсчете миллионов столбцов - PullRequest
2 голосов
/ 09 октября 2011

Я вставлял столбцы в строку, и cassandra-cli проверял их количество:

[default@CassandraExample] count admins[ascii('0')]; 492506 columns [default@CassandraExample] count admins[ascii('0')]; 531375 columns [default@CassandraExample] count admins[ascii('0')]; 556985 columns [default@CassandraExample] count admins[ascii('0')]; 615568 columns [default@CassandraExample] count admins[ascii('0')]; 740790 columns [default@CassandraExample] count admins[ascii('0')]; 794993 columns [default@CassandraExample] count admins[ascii('0')]; 1008291 columns [default@CassandraExample] count admins[ascii('0')]; 1080951 columns [default@CassandraExample] count admins[ascii('0')]; null

и, как вы можете видеть, позже считать ноль, и теперь он печатает ноль все время (когда я хочу считать администраторов [0]). Я попытался изменить максимальный размер кучи до 1500M (я не могу дать больше, я не знаю почему (ошибка печати Java)) и настроить другие параметры, но все равно это не работает.

Какова возможная причина такой ситуации?

1 Ответ

3 голосов
/ 10 октября 2011

Я собираюсь сделать много образованных догадок здесь:

  • вы используете 32-битную Java, поэтому вы не можете выделить больше памяти для его кучи
  • вы получаете ошибку в системном журнале Cassandra
  • вы не используете Cassandra 1.0, которая запрашивает большое количество страниц внутри (https://issues.apache.org/jira/browse/CASSANDRA-3068)

Так что мои рекомендации будут:

  • Обновите до 1.0, если вы настаиваете на большом подсчете, но
  • Огромный счет никогда не будет быстрым, поэтому рассмотрите возможность использования денормализованного счетчика вместо
  • Если вы хотите продолжить устранение неполадок в старой версии, вставьте исключение из system.log Cassandra и включите переключатель отладки на cli
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...