Насколько масштабируемы автоматические вторичные индексы в Cassandra 0.7?
Насколько я понимаю, автоматические вторичные индексы генерируются для локальных данных узла.
В этом случае запрос по вторичному индексу включает все узлы, хранящие часть семейства столбцов, чтобы получить результаты (?), Поэтому (если я прав), если данные распределены по 50 узлам, тогда 50 узлов участвуют в одном запросе?
Как далеко может масштабироваться? Является ли это более масштабируемым, чем ручные вторичные индексы (семейство столбцов с инвертированным индексом)? Несколько узлов или сто узлов?
2 ответа
См. Ответ Стю из мл. http://www.mail-archive.com/user@cassandra.apache.org/msg10506.html
Да, если вам нужно извлечь все проиндексированные строки, тогда запросы индекса затрагивают все узлы. Но это на самом деле более эффективно, чем создание собственного индекса! Подробности здесь.
Однако, если вы просматриваете только несколько строк, и каждая запись индекса отображается на очень много строк, то, вероятно, самый первый узел сможет ответить на ваш вопрос. Ваш запрос будет включать только один узел. Из списка рассылки Apache:
Первый узел может ответить на вопрос, если вы запросили меньше строк, чем первый узел имеет на нем. Отсюда "низкая мощность" указывает на то, что вы цитировали.
(Джонатан Эллис, здесь.)
(Я также разместил вопрос в списке рассылки, дополнительный вопрос к вашему вопросу, инквизитор, потому что я не совсем понял ответ на ваш вопрос (ссылка дана в ответе Шильдмейера).)