Увидел свет релиз распределённой СУБД Apache Cassandra 2.2, относящейся к классу noSQL-систем и рассчитанной на создание высокомасштабируемых и надёжных хранилищ огромных массивов данных, хранимых в форме ассоциативного массива (хэша). Код проекта написан на языке Java и распространяется в рамках лицензии Apache 2.0. Изначально СУБД Cassandra была разработана в недрах компании Facebook и в 2009 году передана под покровительство фонда Apache. Промышленные решения на базе Cassandra, хранящие сотни терабайт данных, охватывающие сотни серверов и способные обрабатывать тысячи запросов в секунду, развернуты для обеспечения сервисов таких компаний и организаций, как Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Netflix, Sony, Rackspace, Reddit и Twitter.
Основные новшества:
Возможность прямого добавления, обновления и выборки данных в формате JSON, без необходимости применения надстроек sstable2json и json2sstable, которые объявлены устаревшими;
Поддержка создания определяемых пользователем функций из Java, Javascript и других языков, поддерживающих Java Scripting API. За счет встраиваемых функций, выполняемых на стороне СУБД и обрабатывающих данные без копирования на сторону конечного приложения, можно существенно поднять производительность всей системы обработки данных;
Внесена серия оптимизаций производительности, в том числе реализована поддержка сжатия лога коммитов и включена по умолчанию техника слияния сообщений;
Увеличена эффективность передачи данных между узлами за счёт включения гибкой системы сжатия, позволяющей выбрать разный уровень сжатия для разных условий, что особенно полезно в таких ситуациях, как перестроение узла после сбоя или перенос данных в новый ЦОД.
Добавлена система управления доступом на основе ролей, упрощающая администрирование конфигураций, охватывающих несколько команд разработчиков и отделов. Одни пользователи могут делегировать полномочия другим пользователям, в том числе на уровне выполнения операций CREATE, ALTER, DROP и AUTHORIZE, без необходимости получения привилегий суперпользователя;
Добавлена новая утилита sstableverify для проверки целостности всех таблиц;
Обеспечена полноценная поддержка платформы Microsoft Windows;
БД Cassandra объединяет в себе полностью распределённую hash-систему Dynamo, обеспечивающую практически линейную масштабируемость при увеличении объема данных. Cassandra использует модель хранения данных на базе семейства столбцов (ColumnFamily), отличающуюся от систем подобных memcachedb, которые хранят данные только в связке ключ/значение, возможностью организовать хранение хэшей с несколькими уровнями вложенности. СУБД позволяет создавать устойчивые к сбоям хранилища: помещаемые в БД данные автоматически реплицируются на несколько узлов распределённой сети, которая может охватывать разные центры обработки данных. При сбое узла, его функции на лету подхватываются другими узлами. Добавление новых узлов в кластер и обновление версии Cassandra производится на лету, без дополнительного ручного вмешательства и переконфигурирования других узлов.
Для упрощения взаимодействия с БД поддерживается язык формирования структурированных запросов CQL (Cassandra Query Language), на первый взгляд напоминающий SQL, но существенно урезанный по функциональности. Например, можно выполнять только простейшие запросы SELECT с выборкой по определённому условию, но без поддержки сортировки и группировки. Добавление и обновление данных производится через единое выражение UPDATE, операция INSERT отсутствует (если записи нет, при выполнении UPDATE она создаётся). Из возможностей можно отметить поддержку пространств имён и семейств столбцов, создание индексов через выражение "CREATE INDEX". Драйверы с поддержкой CQL подготовлены для языков Python, Java (JDBC/DBAPI2) и JavaScript (Node.js).