Подходит ли Cassandra для использования в качестве основного хранилища данных?
Вопрос
Я оцениваю платформу хранения данных для предстоящего проекта и продолжаю возвращаться к Cassandra.Для этого проекта потеря Любой объем данных недопустим.До сих пор мы использовали реляционную базу данных (Microsoft SQL Server), но данные настолько разнообразны и велики, что их хранение и запрос стали проблемой.
Достаточно ли надежна Cassandra для использования в качестве основного хранилища данных?Или его следует использовать только для зеркального отображения существующих данных, чтобы ускорить доступ?
Решение
Анекдотически:да, Twitter, Digg, Ooyala, SimpleGeo, Mahalo и другие используют Cassandra в качестве основного хранилища данных или переходят на него (http://n2.nabble.com/Cassandra-users-survey-td4040068.html).
Технически:ДА;помимо поддержки репликации (в том числе на несколько центров обработки данных), каждый узел Cassandra имеет журнал фиксации fsync, чтобы гарантировать надежность операций записи;оттуда записи превращаются в SSTables, которые являются неизменяемыми до сжатия (которое объединяет несколько SSTables со старыми версиями GC).Моментальные снимки поддерживаются в любое время, включая автоматический снимок перед уплотнением.
Другие советы
Использовать Cassandra для вашего приложения или нет, зависит исключительно от ваших рабочих нагрузок с данными.Cassandra оптимизирована для рабочих нагрузок с интенсивной записью, поэтому подходит для приложений, в которые необходимо вставить большой объем данных (например, информацию об инфраструктуре, регистрирующуюся в Facebook).
Однако, если вам требуется быстрое извлечение и скорость вставки не является проблемой, то, возможно, вам следует взглянуть, скажем, на HBase (которая оптимизирована для рабочих нагрузок, требующих интенсивного чтения).