2013-09-15 11 views
0

Я пытаюсь определить, насколько подходящей Cassandra для моего приложения, так как неизвестно, сколько нам нужно будет масштабировать в будущем и может произойти быстро. Я наблюдал за различными сегментами C * Summit 2013.Cassandra производительность обновления строк с течением времени

В частности, Axel Liljencrantz, разработчик Backend Developer, Spotify, says here, что вы можете ожидать, что производительность Cassandra со временем ухудшится, если ваша модель требует обновления одной и той же строки и над.

Мое требование к модели - тип типа «хранилище документов» с известными полями со значениями, которые меняются в течение нескольких месяцев, так как он соответствует различным реальным требованиям/статусным точкам. Различные запросы и подсчеты должны выполняться в разных хранимых документах.

Итак: Существуют ли какие-либо подходящие способы смягчения этого, если все документы обычно имеют одинаковую известную среднюю продолжительность жизни до того, как они останутся фиксированными, историческими данными?

Неплохо ли это обойти это, сохранив номер версии и переписав весь документ в новую строку при обновлении информации?

+0

вы можете уменьшить это путем полного/крупного уплотнения. Но это то, что я рекомендую только в том случае, если набор данных довольно мал (<10 ГБ), и вы понимаете, что означает крупное сжатие. – Schildmeijer

ответ

6

, что вы можете ожидать, производительность Cassandra деградировать со временем, если ваша модель требует, чтобы обновить ту же строку снова и

-> Это связано с тем, что тот же ряд охватывает более десятка SSTables (SizeTiered Compaction). Существует новая выровняли Уплотнительная доступны в Кассандре, которая может смягчить его, подробнее here

Моя модель требование является «документ магазин» вид типа с известными полями, со значениями, которые изменяются в течение нескольких месяцев, так как он соответствует различным реальным требованиям/статусу.

Если у вашего документа есть «известные поля», то будет фиксированное количество «столбцов» для таблицы. Хотя обновление часто это не проблема (при условии, что вы выбираете выровняли уплотнению, как упоминалось выше), так как это не является «widerow»

, если все документы, как правило, один и тот же известный средний срок службы, прежде чем они оставались неподвижная

Если ваши документы меняются очень часто за пару месяцев до их окончательной и неизменной версии, вы можете сохранить их сначала в семействе столбцов настроенный для поддержки частых обновлений. После того, как они станут окончательными, переместите их в другое семейство столбцов, сконфигурированное как стабильное и эффективное для чтения.

+0

Спасибо, это помогло прояснить некоторые вещи. Как я могу рассказать о запросе данных как одного набора в этом сценарии? Таким образом, документы можно искать. Я понимаю, что запросы ограничены одним семейством столбцов. – Tyst

+0

«Как я могу обратиться к данным в виде одного набора в этом сценарии?» -> Проектирование в Кассандре имеет решающее значение, если вы хотите запросить свои данные. Введите «Модель данных Cassandra» в Google, чтобы узнать, как проектировать. И да, с Cassandra мы больше не в мире «SQL», запросы ограничены тем, как вы разрабатываете свои данные. Забудьте обо всех поисках нечеткого текста. – doanduyhai

Смежные вопросы