Реліз СУБД Apache Cassandra 2.2

Побачив світ реліз розподіленої СУБД 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).