Apache Cassandra

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Apache Cassandra
Cassandra logo.svg
Helenos for Apache Cassandra.PNG
Тип NoSQL
Автор(и) Avinash Lakshman[d] і Prashant Malik[d]
Розробник Apache Software Foundation
Перший випуск 2008
Версії 3.11.3 (31 липня 2018)[1]
Репозиторій git://git.apache.org/cassandra.git, https://github.com/apache/cassandra
Операційна система крос-платформовий
Написано на Java
Доступні мови англійська
Стан розробки активний
Ліцензія Apache-2.0[d]
cassandra.apache.org

Apache Cassandra у Вікісховищі?

Apache Cassandra — вільна та відкрита розподілена з широким стовпчиком noSQL система керування базами даних, яка створена для роботи з високомасштабованими і надійними сховищами величезних масивів даних. Cassandra надає надійну підтримку кластерів, що охоплюють численні датацентри[2] та забезпечує високу доступність даних та працює без точкових відмов[en] з асинхронною нецентралізованою реплікацією даних, що дозволяє для всіх користувачив виконувати операції з низькою затримкою.

Промислові рішення на базі Cassandra розгорнуті для забезпечення сервісів таких компаній, як Cisco, IBM, Cloudkick, Reddit, Digg, Rackspace і Twitter.

Історія[ред. | ред. код]

Авінаш Лакшман, один з розробників Dynamo[en], та Прашант Малік почали розробку Cassandra в надрах Facebook з метою створення потужної функції пошуку. Facebook випустала БД як проект з відкритим кодом на Google Code у липні 2008 року.[3] А вже в 2009 році була передана під оруду фонду Apache Software Foundation.[4] У лютому 2010 року була оцінена як проект найвишої важливості.[5]

Станом на 2011 рік найбільший кластер серверів, котрий обслуговує єдину БД Cassandra, налічував понад 400 машин і містив дані розміром понад 300 Тб.[6]

Огляд[ред. | ред. код]

СКБД Cassandra написана на мові Java і об'єднує в собі повністю розподілену hash-систему Dynamo[en], що забезпечує практично лінійну масштабованість при збільшенні обсягу даних. Cassandra використовує модель зберігання даних на базі сімейства стовпців (ColumnFamily), що відрізняється від систем подібних до memcachedb, які зберігають дані лише у зв'язці ключ/значення, можливістю організувати зберігання хешей з кількома рівнями вкладеності. Cassandra відноситься до категорії сховищ підвищено стійких до збоїв: поміщені в БД дані автоматично реплікуються на кілька вузлів розподіленої мережі або навіть рівномірно розподіляються до декількох дата-центрів. При збої вузла, його функції на льоту підхоплюються іншими вузлами. Додавання нових вузлів у кластер і оновлення версії Cassandra виробляється на льоту, без додаткового ручного втручання і переконфігурації інших вузлів.

Для спрощення взаємодії з БД підтримується мова формування структурованих запитів CQL (Cassandra Query Language), яка на перший погляд нагадує SQL, але істотно урізана в функціональності. Наприклад, можна виконувати тільки найпростіші запити SELECT з вибіркою за певною умовою, але без підтримки сортування та групування. Додавання та оновлення даних здійснюється через єдиний вираз UPDATE, операція INSERT відсутня (якщо запису немає, при виконанні UPDATE він створюється). З можливостей можна відзначити підтримку просторів імен і сімейств стовпців, створення індексів через вираз "CREATE INDEX". Драйвери з підтримкою SQL підготовлені для мов Python, Java (JDBC/DBAPI2) і JavaScript (Node.js).

Виноски[ред. | ред. код]

  1. Release 3.11.3 — 2018.
  2. Casares, Joaquin (2012-11-05). Multi-datacenter Replication in Cassandra. DataStax. Процитовано 2013-07-25. «Cassandra’s innate datacenter concepts are important as they allow multiple workloads to be run across multiple datacenters…» 
  3. Hamilton, James (July 12, 2008). Facebook Releases Cassandra as Open Source. Процитовано 2009-06-04. 
  4. Is this the new hotness now?. Mail-archive.com. 2009-03-02. Архів оригіналу за 25 April 2010. Процитовано 2010-03-29. 
  5. Cassandra is an Apache top level project. Mail-archive.com. 2010-02-18. Архів оригіналу за 28 March 2010. Процитовано 2010-03-29. 
  6. Релиз БД Apache Cassandra 1.0

Посилання[ред. | ред. код]