вторичные индексы в Кассандре под RandomPartitioner - PullRequest
0 голосов
/ 16 апреля 2011

Я изучаю возможность использования вторичного индекса в Cassandra с использованием Aquiles.Я знаю для первичного индекса (ключа), я должен использовать OrderPreservingPartitioner для запроса.Сначала я подумал, что со вторичными индексами такого ограничения нет, но я заметил, что ключ запуска является частью GetIndexedSlicesCommand.Означает ли это, что в RandomPartitioner эта команда не работает?

1 Ответ

2 голосов
/ 17 апреля 2011

Вам не нужен OrderPreservingPartitioner для запроса по ключу строки, он необходим только в том случае, если вы хотите получить значимый диапазон строк по их ключу, например, «все строки с ключом от 5 до 9». (Обратите внимание, что почти всегда может и должен использовать RandomPartitioner вместо .)

Ключ запуска для get_indexed_slices ведет себя так же, как и для get_range_slices. То есть, это не очень важно для изучения диапазона строк между двумя ключами при использовании RandomPartitioner, но это является полезным для пролистывания большого количества строк. В теме есть даже FAQ запись . По сути, если вы собираетесь получить массу результатов от вызова get_indexed_slices, вам не нужно извлекать их все сразу, вы хотите получить чанк (из 10, 100 или 1000, в зависимости от размера) за раз, а затем установите start_key на последний ключ, который вы видели в предыдущем блоке, чтобы получить следующий блок.

...