The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."
Отправлено opennews, 05-Сен-13 11:13 
Представлен (https://blogs.apache.org/foundation/entry/the_apache_softwar... релиз распределённой БД Apache Cassandra 2.0 (http://cassandra.apache.org/), относящейся к классу noSQL-систем и рассчитанной на создание высокомасштабируемых и надёжных хранилищ огромных массивов данных, хранимых в форме ассоциативного массива (хэша). Код проекта написан на языке Java  и распространяется в рамках лицензии Apache 2.0.

БД Cassandra объединяет в себе полностью распределённую hash-систему Dynamo, обеспечивающую практически линейную масштабируемость при увеличении объема данных. Cassandra использует модель хранения данных на базе семейства столбцов (ColumnFamily), отличающуюся от систем подобных memcachedb, которые хранят данные только в связке ключ/значение, возможностью организовать хранение хэшей с несколькими уровнями вложенности.

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

Для упрощения взаимодействия с БД поддерживается язык формирования структурированных запросов CQL (http://crlog.info/2011/03/29/cassandra-query-language-aka-cq... (Cassandra Query Language), на первый взгляд напоминающий SQL, но существенно урезанный по функциональности. Например, можно выполнять только простейшие запросы SELECT с выборкой по определённому условию, но без поддержки сортировки и группировки. Добавление и обновление данных производится через единое выражение UPDATE, операция INSERT отсутствует (если записи нет, при выполнении UPDATE она создаётся). Из возможностей можно отметить поддержку пространств имён и семейств столбцов, создание индексов через выражение "CREATE INDEX". Драйверы с поддержкой CQL подготовлены для языков Python (http://www.apache.org/dist/cassandra/drivers), Java (https://github.com/racker/node-cassandra-client) (JDBC/DBAPI2) и JavaScript (https://github.com/racker/node-cassandra-client) (Node.js).


Изначально проект был разработан в недрах компании Facebook и в 2009 году передан под покровительство фонда Apache. Промышленные решения на базе Cassandra, способные обрабатывать тысячи запросов в секунду, развернуты для обеспечения сервисов таких компаний и оргнизаций, как Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Netflix, Sony, Rackspace, Reddit и Twitter. Наиболее крупный кластер серверов, обслуживающих единую БД Cassandra насчитывает более 400 машин и используется для хранения более 300 Тб данных.


Особенности (https://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=bl... новой версии:

-  Поддержка легковесных транзакций (http://www.datastax.com/dev/blog/lightweight-transactions-in... позволяющих гарантировать порядок выполнения последовательности операций и обеспечить изоляцию, защищающую от возникновения конфликтов при выполнении конкурирующих запросов;
-  Экспериментальная поддержка триггеров, позволяющих вынести выполнение критичного к производительности кода на сторону сервера, ближе к обрабатываемым данным. Пример задания триггера:  "CREATE TRIGGER myTrigger ON myTable USING 'org.apache.cassandra.triggers.InvertedIndex'", где обработчик org.apache.cassandra.triggers.InvertedIndex задаётся в виде Java-класса;


-  Расширение (http://www.datastax.com/dev/blog/cql-in-cassandra-2-0) языка CQL3 (http://cassandra.apache.org/doc/cql3/CQL.html) (Cassandra Query Language) в направлении удобства использовании в data-driven-приложениях (отделение данных от логики из обработки в форме бэкенд/фронтэнд) и упрощения миграции с реляционных СУБД.


-  Добавление в выражение SELECT (http://cassandra.apache.org/doc/cql3/CQL.html#selectStmt) поддержки псевдонимов (alias), задаваемых при помощи ключевого слова "AS", например, " SELECT name AS user_name FROM users;". В блоках "WHERE" и "ORDER BY" псевдонимы не поддерживаются;
-  Возобновлена поддержка выражения "ALTER TABLE DROP" для таблиц CQL3;
-  В выражениях CREATE для пространств ключей, таблиц и индексов (CREATE KEYSPACE, CREATE TABLE и CREATE INDEX) добавлена поддержка условной операции "IF NOT EXISTS", позволяющей выполнять операцию только при отсутствии объекта с указанным именем;
-  В выражение добавлена поддержка условия "IF NOT EXISTS";
-  В выражение UDPATE добавлена поддержка условия "IF";
-  Поддержка вторичных индексов для столбцов, отмеченных как первичные ключи (PRIMARY KEY);

-  Поддержка  библиотеки JEMalloc (http://www.opennet.ru/opennews/art.shtml?num=26195) с реализацией высоко эффективных функций распределения памяти,  позволяющих заметно снизить уровень фрагментации памяти;
-  Оптимизация упаковки данных в хранилище, позволяющая сохранить высокую производительность чтения в конфигурациях с большой нагрузкой на запись;
-  Режим горячего повтора операции для избежания возникновения таймаутов при выполнении запроса - если после отправки первого запроса прошло слишком много времени без ответа отправляется дополнительные запросы к другим репликам;
-  Собственная реализация Thrift-сервера (http://en.wikipedia.org/wiki/Apache_Thrift), созданная на основе библиотеки  LMAX Disruptor (http://lmax-exchange.github.io/disruptor/), предоставляющей средства обмена сообщениями между нитями с минимальной задержкой.

URL: https://blogs.apache.org/foundation/entry/the_apache_softwar...
Новость: http://www.opennet.ru/opennews/art.shtml?num=37824

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру