Apache Cassandra

Продукт
Разработчики: Apache Software Foundation
Дата последнего релиза: 2015/11/10
Технологии: СУБД

Содержание

Cassandra — система для создания хранилищ больших массивов данных, ее используют многие всемирно известные компании, среди них: Twitter, Instagram, eBay. В России Cassandra пока используется мало, чаще всего из-за недостатка информации.

2015

Apache Cassandra 3.0

10 ноября 2015 года организация Apache Software Foundation (ASF) объявила о релизе Apache Cassandra 3.0[1].

В пресс-релизе ASF Apache Cassandra 3.0 упоминается как веха в эволюции этой СУБД.

В продукте три основных изменения:

  • оптимизированный для языка CQL движок хранения и формат данных SSTables;
  • материализованные представления;
  • более эффективная работа hints.


Выпуск бета-версии драйвера Java для Cassandra 3.0.0 официально произойдет на следующей неделе, актуальный драйвер для Python получил номер версии 3.0.0 rc1.

Apache Cassandra 2.2

20 июля 2015 года стало известно о выпуске релиза распределённой СУБД Apache Cassandra 2.2[2].

Основные изменения в системе

  • Возможность прямого добавления, обновления и выборки данных в формате JSON, без необходимости применения надстроек sstable2json и json2sstable, которые объявлены устаревшими;
  • Поддержка создания определяемых пользователем функций из Java, Javascript и других языков, поддерживающих Java Scripting API. За счет встраиваемых функций, выполняемых на стороне СУБД и обрабатывающих данные без копирования на сторону конечного приложения, можно существенно поднять производительность всей системы обработки данных;
  • Проведена серия оптимизаций производительности, в том числе поддержка сжатия лога коммитов и включена по умолчанию техника слияния сообщений;
  • Увеличена эффективность передачи данных между узлами посредством включения гибкой системы сжатия, допускающей выбор разного уровня сжатия для разных условий, что особенно полезно в таких ситуациях, как перестроение узла после сбоя или перенос данных в новый ЦОД.
  • Добавлена система управления доступом на основе ролей, упрощающая администрирование конфигураций, охватывающих несколько команд разработчиков и отделов. Одни пользователи могут делегировать полномочия другим пользователям, в том числе на уровне выполнения операций CREATE, ALTER, DROP и AUTHORIZE, без необходимости получения привилегий суперпользователя;
  • Добавлена новая утилита sstableverify для проверки целостности всех таблиц;
  • Обеспечена полноценная поддержка платформы Microsoft Windows;

БД Cassandra объединяет в себе полностью распределённую hash-систему Dynamo, обеспечивающую практически линейную масштабируемость при увеличении объема данных. Cassandra использует модель хранения данных на базе семейства столбцов (ColumnFamily), отличающуюся от систем подобных memcachedb, которые хранят данные только в связке ключ/значение, возможностью организовать хранение хэшей с несколькими уровнями вложенности. Для упрощения взаимодействия с БД поддерживается язык формирования структурированных запросов CQL (Cassandra Query Language), напоминающий SQL, но урезанный по функциональности. Из возможностей можно отметить поддержку пространств имён и семейств столбцов, создание индексов через выражение "CREATE INDEX". Драйверы с поддержкой CQL подготовлены для языков Python, Java (JDBC/DBAPI2) и JavaScript (Node.js).

СУБД позволяет создавать устойчивые к сбоям хранилища: помещаемые в БД данные автоматически реплицируются на несколько узлов распределённой сети, в составе которой могут действовать разные центры обработки данных. При сбое узла его функции на лету подхватываются другими узлами. Добавление новых узлов в кластер и обновление версии Cassandra производится на лету, без дополнительного ручного вмешательства, изменения конфигурации других узлов.

2013

Apache Cassandra 2.0

Самыми важными нововведениями NoSQL-СУБД Cassandra 2.0, выпущенной в сентябре 2013 года фондом Apache, названы `лёгкие` транзакции, язык запросов CQL, напоминающий SQL, и триггеры. Джонотан Эллис, вице-президент проекта, особо отметил, что Cassandra теперь упрощает переход с РСУБД, однако технологию такого упрощения не уточнил[3].

Созданная первоначально в Facebook, эта свободно распространяемая распределённая СУБД в 2008 г. была передана фонду Apache, и сегодня активно используется в CERN, eBay, IBM, Instagramm, NASA, Reddit, Twitter и множестве других организаций. Крупнейший кластер Cassandra успешно обрабатывает 300 Тб данных на 400 серверах. Все узлы сети Cassandra выполняют идентичные функции, что исключает вероятность возникновения `единой точки сбоя` и упрощает масштабирование.

В новой версии `легкие` транзакции решают конфликты попыток модификации данных одновременными запросами. Триггеры позволяют выполнять прикладной код при изменении информации в базе, а за счёт распределённой архитектуры скорость выполнения запроса, вызвавшего срабатывание триггера, не ухудшается. Повышена компактность БД, снижена вероятность таймаутов запросов. Использовать функциональность Cassandra в прикладных задачах теперь можно не только через программный API, но и через язык запросов CQL, который официально добавился в январе, но только сейчас доступен в зрелом виде. Хотя Cassandra поддерживает модель `ключ-значение`, однако её конкретная реализация напоминает работу с таблицами, поэтому CQL сохранил привычный SQL-кодировщикам синтаксис: можно использовать команды SELECT, INSERT, CREATE TABLE и т. д.

Примечания





Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров

За всю историю
2015 год
2016 год
2017 год
Текущий год

  Oracle (83, 195)
  Microsoft (46, 145)
  SAP SE (42, 120)
  PostgreSQL Global Development Group (9, 44)
  IBM (17, 17)
  Другие (240, 104)

  Oracle (12, 25)
  SAP SE (2, 14)
  Microsoft (3, 8)
  PostgreSQL Global Development Group (1, 8)
  HFLabs (HumanFactorLabs) ХФ Лабс (1, 2)
  Другие (1, 1)

  Oracle (7, 17)
  SAP SE (6, 16)
  Microsoft (3, 8)
  PostgreSQL Global Development Group (1, 8)
  Dell EMC (2, 2)
  Другие (10, 11)

  Oracle (8, 29)
  SAP SE (3, 10)
  Microsoft (3, 9)
  PostgreSQL Global Development Group (1, 8)
  Apache Software Foundation (3, 5)
  Другие (9, 11)

  Oracle (5, 19)
  PostgreSQL Global Development Group (2, 7)
  Microsoft (1, 7)
  SAP SE (2, 5)
  Mail.ru Group (1, 3)
  Другие (10, 10)

Распределение базовых систем по количеству проектов, включая партнерские решения

За всю историю
2015 год
2016 год
2017 год
Текущий год

  Oracle Database - 23 (22, 1)
  PostgreSQL СУБД - 8 (8, 0)
  Microsoft SQL Server - 7 (6, 1)
  SAP HANA (High Performance Analytic Appliance) - 6 (5, 1)
  Apache Hadoop - 4 (3, 1)
  Другие 19

  Oracle Database - 14 (14, 0)
  Microsoft SQL Server - 7 (7, 0)
  PostgreSQL СУБД - 7 (6, 1)
  SAP HANA (High Performance Analytic Appliance) - 4 (4, 0)
  Tarantool - 3 (3, 0)
  Другие 15