Cassandra и вторичные индексы, как они работают внутри?

Как внутри Cassandra Secondary-Index работает? В документации указано, что это своего рода хеш-индекса:

Учитывая, что у меня есть столбец username = "foobar" (имя пользователя столбца будет индексом scondary) в CF User с RandomOrderingPartitioner

  1. Is мое предположение правильное, эта кассандра использует «распределенный хеш-индекс» (= так что индекс не находится на одном узле = индекс разделен)?
  2. На каком количестве узлов хранятся части индекса (такое же количество, как и коэффициент репликации)?
  3. На каких узлах хранятся части индекса (разделяет ли Кассандра индекс по той же логике, что и ключ с помощью RandomOrderingPartitioner )?

  4. Если индекс хранится только на одном узле (и, конечно, реплицируется), как кассандра «определяет» узел, который отвечает за index (путем хеширования имени столбца и последующего использования функции randompartitioner logik для определения узла)?

  5. Неужели правда, что этот индекс оптимизирован для низкой мощности? Если да, то какова приблизительная оценка ( есть ли конкретная цифра, по которой я могу судить), что мне не следует использовать вторичный индекс (а лучше использовать отдельный CF для индекса)? Или иначе говоря, как вычислить мощность и принять правильное решение?

Я пытаюсь понять это.

10
задан ChrisF 20 June 2011 в 22:20
поделиться