2013-07-07 1 views
3

Поскольку я давно работаю с традиционной реляционной базой данных, переход к nosql, особенно Cassandra, является большим изменением. Я обычно разрабатываю свое приложение так, чтобы все в базе данных загружалось во внутренние кеши приложения при запуске, и если в таблице базы данных есть какое-либо обновление, также обновляется соответствующий кэш. Например, если у меня есть таблица Student, при запуске все данные в этой таблице загружаются в StudentCache, а когда я хочу вставить/обновить/удалить, я вызову сервис, который обновит оба из них одновременно. Цель моего проекта - предотвратить выбор непосредственно из базы данных.Использование внутреннего кэша приложения во время работы с Cassandra

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

+0

С другой стороны, сохранение базы данных в приложении - неплохая идея, так как производительность вашего приложения будет основана на вводе. –

+0

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

ответ

3

Основываясь на вашей описательной форме, я бы сказал, что запрос данных по мере необходимости не позволяет хранить данные, которые вам не нужны, плюс что, если ваш набор данных равен 5 Гбит? Вы все еще собираетесь загрузить весь набор данных?

Возможно, рассмотрите проект, в котором вы не загружаете все данные при запуске, но загружаете его по мере необходимости, а затем храните его и проверяете этот магазин перед запросом снова, как то, что делает кеш!

Cassandra построен для масштабирования, масштабирование ручек, не зависящее от конструкции, вы достигнете точки, где ваш набор данных слишком велик. Исходя из этого, вы должны подумать о компромиссе. Много запросов «на лету» и хранение всего в клиенте. Я бы советовал прямые запросы, но хранить данные, когда вы выполняете запрос, не отбрасывайте его, а затем повторите тот же запрос!

1

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

Если вы, однако, решили, что этот предел должен измениться (выше!), Вы столкнетесь с проблемой. Такой подход будет быстрым, когда дело доходит до поиска (при условии, что вы отсортируете результат при запуске), но в значительной степени убьет ремонтопригодность.

Бывший любимый «подход», однако, по-прежнему полезен, если вы выберете для этого.

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