Apache Cassandra — распределённая система управления базами данных, относящаяся к классу NoSQL-систем и рассчитанная на создание высокомасштабируемых и надёжных хранилищ огромных массивов данных, представленных в виде хэша.
Написана на языке Java, реализует распределённую hash-систему, сходную с DynamoDB, что обеспечивает практически линейную масштабируемость при увеличении объёма данных. Использует модель хранения данных на базе семейства столбцов (ColumnFamily), чем отличается от систем, подобных MemcacheDB, которые хранят данные только в связке «ключ — значение», возможностью организовать хранение хэшей с несколькими уровнями вложенности.
Относится к категории отказоустойчивых СУБД: помещённые в базу данные автоматически реплицируются на несколько узлов распредёленной сети или даже равномерно распределяются в нескольких дата-центрах, при сбое узла его функции на лету подхватываются другими узлами, добавление новых узлов в кластер и обновление версии Cassandra производится на лету, без дополнительного ручного вмешательства и переконфигурации других узлов.
Преимущества Cassandra:
- высокая масштабируемость и надежность без элементов, отказ которых приводит к выходу из строя всей системы;
- реализация семейства NoSQL Column;
- очень высокая пропускная способность для операций записи и хорошая пропускная способность для операций считывания;
- SQL-подобный язык запросов (начиная с версии 0.8) и поддержка поиска посредством вторичных индексов;
- настраиваемая согласованность и поддержка репликации;
- гибкая схема.