Apache Cassandra
Apache Cassandra — вільна та відкрита розподілена з широким стовпчиком noSQL система керування базами даних, яка створена для роботи з високомасштабованими і надійними сховищами величезних масивів даних. Cassandra надає надійну підтримку кластерів, що охоплюють численні датацентри[3] та забезпечує високу доступність даних та працює без точкових відмов з асинхронною нецентралізованою реплікацією даних, що дозволяє для всіх користувачив виконувати операції з низькою затримкою.
Тип | NoSQL |
---|---|
Автори | Avinash Lakshmand і Prashant Malikd |
Розробник | Apache Software Foundation |
Перший випуск | 2008 |
Операційна система | крос-платформовий |
Мова програмування | Java[1] |
Доступні мови | англійська |
Стан розробки | активний |
Ліцензія | Apache Software License 2.0d[2] |
Репозиторій | https://gitbox.apache.org/repos/asf/cassandra.git, https://github.com/apache/cassandra, http://git-wip-us.apache.org/repos/asf?p=cassandra.git |
Вебсайт | cassandra.apache.org |
Промислові рішення на базі Cassandra розгорнуті для забезпечення сервісів таких компаній, як Cisco, IBM, Cloudkick, Reddit, Digg, Rackspace і Twitter.
Історія
ред.Авінаш Лакшман, один з розробників Dynamo[en], та Прашант Малік почали розробку Cassandra в надрах Facebook з метою створення потужної функції пошуку. Facebook випустила БД як проєкт з відкритим кодом на Google Code у липні 2008 року.[4] А вже в 2009 році була передана під оруду фонду Apache Software Foundation.[5] У лютому 2010 року була оцінена як проєкт найвищої важливості.[6]
Розробники назвали базу даних на честь міфологічної троянської пророчиці Кассандри з аллюзією на прокляття оракула (англ. Oracle).[7]
Станом на 2011 рік найбільший кластер серверів, котрий обслуговує єдину БД Cassandra, налічував понад 400 машин і містив дані розміром понад 300 Тб.[8]
Огляд
ред.СКБД Cassandra написана на мові Java і об'єднує в собі повністю розподілену hash-систему Dynamo[en], що забезпечує практично лінійну масштабованість при збільшенні обсягу даних. Cassandra використовує модель зберігання даних на базі сімейства стовпців (ColumnFamily), що відрізняється від систем подібних до memcachedb, які зберігають дані лише у зв'язці ключ/значення, можливістю організувати зберігання хешей з кількома рівнями вкладеності. Cassandra відноситься до категорії сховищ підвищено стійких до збоїв: поміщені в БД дані автоматично реплікуються на кілька вузлів розподіленої мережі або навіть рівномірно розподіляються до декількох дата-центрів. При збої вузла, його функції на льоту підхоплюються іншими вузлами. Додавання нових вузлів у кластер і оновлення версії Cassandra виробляється на льоту, без додаткового ручного втручання і переконфігурації інших вузлів.
Для спрощення взаємодії з БД підтримується мова формування структурованих запитів CQL (Cassandra Query Language), яка на перший погляд нагадує SQL, але істотно урізана в функціональності. Наприклад, можна виконувати тільки найпростіші запити SELECT з вибіркою за певною умовою, але без підтримки сортування та групування. Додавання та оновлення даних здійснюється через вирази UPDATE або INSERT. Вони схожі за поведінкою і додають новий запис якщо запис відсутній або оновлюють існуючий. З можливостей можна відзначити підтримку просторів імен і сімейств стовпців, створення індексів через вираз «CREATE INDEX». Драйвери з підтримкою SQL підготовлені для мов Python, Java (JDBC/DBAPI2) і JavaScript (Node.js).
Виноски
ред.- ↑ https://projects.apache.org/json/projects/cassandra.json
- ↑ https://cassandra.apache.org/_/download.html
- ↑ Casares, Joaquin (5 листопада 2012). Multi-datacenter Replication in Cassandra. DataStax. Архів оригіналу за 11 вересня 2018. Процитовано 25 липня 2013.
Cassandra’s innate datacenter concepts are important as they allow multiple workloads to be run across multiple datacenters…
- ↑ Hamilton, James (12 липня 2008). Facebook Releases Cassandra as Open Source. Архів оригіналу за 6 липня 2014. Процитовано 4 червня 2009.
- ↑ Is this the new hotness now?. Mail-archive.com. 2 березня 2009. Архів оригіналу за 25 April 2010. Процитовано 29 березня 2010.
- ↑ Cassandra is an Apache top level project. Mail-archive.com. 18 лютого 2010. Архів оригіналу за 28 March 2010. Процитовано 29 березня 2010.
- ↑ The meaning behind the name of Apache Cassandra. Архів оригіналу за 29 травня 2016. Процитовано 19 липня 2016.
Apache Cassandra is named after the Greek mythological prophet Cassandra. [...] Because of her beauty Apollo granted her the ability of prophecy. [...] When Cassandra of Troy refused Apollo, he put a curse on her so that all of her and her descendants' predictions would not be believed. [...] Cassandra is the cursed Oracle[.]
- ↑ Релиз БД Apache Cassandra 1.0. Архів оригіналу за 23 жовтня 2011. Процитовано 18 жовтня 2011.
Див. також
ред.Посилання
ред.- Avinash Lakshman (25 серпня 2008). Cassandra - A structured storage system on a P2P Network. Engineering @ Facebook's Notes. Процитовано 4 червня 2009.
- Project Website [Архівовано 21 лютого 2011 у Wayback Machine.]
- Project Wiki [Архівовано 20 жовтня 2011 у Wayback Machine.]
- Adopting Apache Cassandra [Архівовано 30 жовтня 2011 у Wayback Machine.] presented by Eben Hewitt on December 1, 2010
- Presentation on Cassandra at SIGMOD 2008 [Архівовано 15 жовтня 2011 у Wayback Machine.]
- Introduction to Cassandra at FOSDEM 2010
- LADIS 2009 WhitePaper by the original contributors Avinash Lakshman & Prashant Malik [Архівовано 23 листопада 2009 у Wayback Machine.]
- Cassandra Articles on NoSQLDatabases.com
- Cassandra News and Articles on myNoSQL [Архівовано 7 жовтня 2011 у Wayback Machine.]
- Cassandra @ Twitter: an Interview with Ryan King [Архівовано 1 березня 2010 у Wayback Machine.]
- Presentation on RDBMS vs. Dynamo, BigTable, and Cassandra [Архівовано 24 жовтня 2011 у Wayback Machine.]
- RPM build for the apache cassandra project [Архівовано 12 жовтня 2011 у Wayback Machine.]