Кассандра подходит для использования в качестве первичного хранилища данных?

Я оцениваю платформу хранения для предстоящего проекта и возвращаюсь в Кассандру. Для этого проекта потерять любой объем данных является неприемлемым. До сих пор мы использовали реляционную базу данных (Microsoft SQL Server), но данные настолько разнообразны и велики, что стало проблемой для хранения и запросов.

Кассандра достаточно устойчива для использования в качестве первичного хранилища данных? Или он должен использоваться только для зеркалирования существующих данных для ускорения доступа?

Ответ 1

Анекдотически: да, Twitter, Digg, Ooyala, SimpleGeo, Mahalo и другие используют или перемещаются в Кассандру для первичного хранилища данных (http://n2.nabble.com/Cassandra-users-survey-td4040068.html).

Технически: да; кроме поддержки репликации (в том числе в несколько центров обработки данных), каждая Cassandra node имеет журнал фиксации fsync'd, чтобы гарантировать, что записи являются долговечными; оттуда записи превращаются в SSTables, которые неизменны до уплотнения (который объединяет несколько SSTables в старые версии GC). Snapshotting поддерживается в любое время, включая автоматический снимок-до-уплотнения.

Ответ 2

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

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