Apache Cassandra

Apache Cassandra
Логотип программы Apache Cassandra
Скриншот программы Apache Cassandra
Тип NoSQL
Авторы Авинаш Лакшман[d] и Прашант Малик[d]
Разработчик Apache Software Foundation
Написана на Java[3]
Операционные системы Linux и Unix-подобная операционная система
Первый выпуск июль 2008[1]
Последняя версия
Репозиторий gitbox.apache.org/repos/…
github.com/apache/cassan…
git-wip-us.apache.org/re…
Лицензия Apache License 2.0[4]
Сайт cassandra.apache.org (англ.)
Логотип Викисклада Медиафайлы на Викискладе

Apache Cassandra — распределённая система управления базами данных, относящаяся к классу NoSQL-систем и рассчитанная на создание высокомасштабируемых и надёжных хранилищ огромных массивов данных, представленных в виде хэша.

Изначально проект был разработан в недрах Facebook и в 2009 году передан под крыло фонда Apache Software Foundation, эта организация продолжает развитие проекта. Промышленные решения на базе Cassandra развёрнуты для обеспечения сервисов таких компаний, как Cisco, IBM, Cloudkick, Reddit, Digg, Rackspace, Huawei, Netflix, Apple, Instagram, GitHub, Twitter и Spotify. К 2011 году крупнейший кластер серверов, обслуживающий единую базу данных под управлением Cassandra, насчитывал более 400 машин и содержал данные размером более 300 ТБ[5].

Написана на языке Java, реализует распределённую хэш-систему, сходную с DynamoDB, что обеспечивает практически линейную масштабируемость при увеличении объёма данных. Использует модель хранения данных на базе семейства столбцов, чем отличается от систем, подобных MemcacheDB[en], которые хранят данные только в связке «ключ — значение», возможностью организовать хранение хэшей с несколькими уровнями вложенности. Относится к категории отказоустойчивых СУБД: помещённые в базу данные автоматически реплицируются на несколько узлов распределённой сети или даже равномерно распределяются в нескольких дата-центрах. При сбое узла его функции на лету подхватываются другими узлами, добавление новых узлов в кластер и обновление версии Cassandra производится на лету, без дополнительного ручного вмешательства и переконфигурации других узлов. Тем не менее настоятельно рекомендуется заново сгенерировать ключи (метки) для каждого узла, включая существующие, чтобы сохранить качество распределения нагрузки. Генерации ключей для существующих узлов можно избежать в случае кратного увеличения количества узлов (в 2 раза, в 3 раза и так далее).

CQL

У этого термина существуют и другие значения, см. CQL.

Для упрощения взаимодействия с базой данных поддерживается язык формирования структурированных запросов CQL (Cassandra Query Language), который в какой-то степени сходен с SQL, но существенно урезан по функциональным возможностям. Например, можно выполнять только простейшие запросы SELECT с выборкой по определённому условию. Добавление и обновление осуществляется через единое выражение UPDATE, операция INSERT отсутствует (если записи нет, при выполнении UPDATE она создаётся — используется семантика SQL-оператора MERGE). Из отличительных возможностей — поддержка пространств имён и семейств столбцов, создание индексов через выражение «CREATE INDEX». Драйверы с поддержкой CQL реализованы для языков Python (DBAPI2), Java (JDBC), Ruby (gem cassandra-cql), PHP (Thrift, cassandra-pdo, Cassandra-PHP-Client-Library), JavaScript (Node.js) и Perl (DBD::Cassandra).

Кроме того, CQL реализован в СУБД Scylla[en], которая архитектурно и лингвистически повторяет систему Cassandra, но написана на C++ с целью повышения показателей производительности.

Примечания

  1. https://cwiki.apache.org/confluence/display/INCUBATOR/March2009
  2. https://github.com/apache/cassandra/releases/tag/cassandra-4.1.3
  3. https://projects.apache.org/json/projects/cassandra.json
  4. https://cassandra.apache.org/_/download.html
  5. Релиз БД Apache Cassandra 1.0  (неопр.). Дата обращения: 14 января 2012. Архивировано 23 октября 2011 года.

Ссылки

  • Avinash Lakshman. Cassandra - A structured storage system on a P2P Network  (неопр.). Engineering @ Facebook's Notes (25 августа 2008). Дата обращения: 4 июня 2009.
  • Project Website
  • Project Wiki
  • Adopting Apache Cassandra presented by Eben Hewitt on December 1, 2010
  • Presentation on Cassandra at SIGMOD 2008
  • Introduction to Cassandra at FOSDEM 2010
  • LADIS 2009 WhitePaper by the original contributors Avinash Lakshman & Prashant Malik
  • Cassandra Articles on NoSQLDatabases.com
  • Cassandra News and Articles on myNoSQL
  • Cassandra @ Twitter: an Interview with Ryan King
  • Presentation on RDBMS vs. Dynamo, BigTable, and Cassandra
  • RPM build for the apache cassandra project

Литература

  • Карпентер Дж., Хьюитт Э. Cassandra. Полное руководство = Cassandra: The Definitive Guide. — ДМК-Пресс, 2016. — 400 с. — ISBN 978-5-97060-453-3.
Перейти к шаблону «Apache»
Проекты верхнего уровня
Подпроекты
Apache Commons
Lucene
DB[d]
  • Derby
  • Torque[en]
  • DdlUtils[en]
  • OJB[en]
  • JDO[en]
Apache Web Services[en]
  • Axis[en]
  • Axis2[en]
  • CXF
  • WS-Commons[en]
  • EWS[en]
  • JaxMe[en]
  • jUDDI[en]
  • Kandula[en]
  • Mirae[en]
  • Muse[en]
  • Pubscribe[en]
  • Sandesha[en]
  • Scout[en]
  • SOAP[en]
  • Synapse[en]
  • TSIK[en]
  • Tuscany[en]
  • Woden[en]
  • WSIF[en]
  • WSRF[en]
  • WSS4J[en]
  • XML-RPC[en]
Другие проекты
Развивающиеся проекты (Incubator)
  • XAP[en]
  • River[en]
  • OpenEJB[en]
  • OpenJPA[en]
  • Graffito[en]
  • Tuscany[en]
  • Log4Net[en]
  • Roller
  • Felix
  • Abdera[en]
  • CeltiXfire[en]
  • FtpServer[en]
  • Heraldry[en]
  • Ivy[en]
  • JuiCE[en]
  • Kabuki[en]
  • Lokahi[en]
  • Lucene.Net[en]
  • mod_ftp[en]
  • NMaven[en]
  • Ode[en]
  • stdcxx[en]
  • Woden[en]
  • WSRP4J[en]
  • Yoko[en]
  • WADI[en]
  • Qpid
  • TripleSoup[en]
  • UIMA[en]
  • Adobe Flex
Списанные проекты (Attic)
  • AxKit[en]
  • Beehive[en]
  • Cactus[en]
  • ECS[en]
  • Excalibur[en]
  • Harmony
  • HiveMind[en]
  • iBATIS[en]
  • Jakarta
  • ORO[en]
  • Regexp[en]
  • Shale
  • Slide[en]
  • Taglibs[en]
Перейти к шаблону «Facebook navbox»
Сервисы
Facebook
Другие
Meta Quest
Закрытые
Люди
Основатели
Совет директоров
Руководство
Текущее
  • Марк Цукерберг (генеральный директор)
  • Крис Кокс[en] (вице-президент по продуктам)
  • Шерил Сэндберг (COO)
  • Эллиот Шрадж[en] (вице-президент по глобальным коммуникациям, маркетингу и публичной политике)
  • Майк Шрепфер (CTO)
  • Тед Улиот[en] (вице-президент и генеральный советник)
Бывшее
  • Шон Паркер (президент)
  • Оуэн Ван Натта[en] (COO)
  • Гидеон Ю[en] (финансовый директор)
  • Адам д'Анджело[en] (CTO)
  • Крис Келли[en] (директор по конфиденциальности)
  • Мэтт Коулер[en] (вице-президент по управлению продуктами)
  • Брет Тейлор[en] (CTO)
Известные
сотрудники
Текущие
  • Рэнди Цукерберг[en] (директор по маркетингу)
Бывшие
ПО
СМИ
Концепции
Бизнес
  • История Facebook[en]
  • Список слияний и поглощений Meta Platforms[en]
  • Facebook F8[en]
  • Первичное публичное размещение акций Facebook[en]
  • Цензура Facebook[en]
  • Критика Facebook
    • Скандал с Facebook и Cambridge Analytica[en]
    • Facebook Papers[en]
    • Вопросы конфиденциальности Facebook[en]
  • Иски с участием Meta Platforms[en]
Связанное