The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и ..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и ..."  +/
Сообщение от opennews (??) on 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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


16. "Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."  +/
Сообщение от Аноним (??) on 05-Сен-13, 12:21 
>можно выполнять только простейшие запросы SELECT с выборкой по определённому условию, но без поддержки сортировки и группировки

Если так использовать любую нормальную реляционную базу данных, то она запросто сможет "обрабатывать тысячи запросов в секунду".

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

17. "Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."  +/
Сообщение от VoDA (ok) on 05-Сен-13, 12:26 
>>можно выполнять только простейшие запросы SELECT с выборкой по определённому условию, но без поддержки сортировки и группировки
> Если так использовать любую нормальную реляционную базу данных, то она запросто сможет
> "обрабатывать тысячи запросов в секунду".

А репликацию и автоматическое восстановление после сбоев вы как сделаете?

PS не считая того, что Cassandra - multi-master, чем далеко не все РСУБД могут похвастаться.

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

18. "Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."  +1 +/
Сообщение от Аноним (??) on 05-Сен-13, 12:36 
>А репликацию и автоматическое восстановление после сбоев вы как сделаете?

В нормальных промышленных реляционках уже давно сделано.

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

23. "Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."  +/
Сообщение от Аноним (??) on 05-Сен-13, 13:09 
назовите их, пожалуйста
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

25. "Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."  +1 +/
Сообщение от Аноним (??) on 05-Сен-13, 13:29 
Oracle
Из бесплатного Postgress
Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

27. "Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."  +/
Сообщение от Фтщтнь on 05-Сен-13, 14:43 
> Oracle
> Из бесплатного Postgress

В Postgres нету встроенного multi-master-а, только stream master-slave. Все остальное реализуется PG-комьюнити и работает далеко не всегда гладко.

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

34. "Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."  –1 +/
Сообщение от drake on 05-Сен-13, 15:32 
Postres-XC
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

35. "Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."  +2 +/
Сообщение от Фтщтнь on 05-Сен-13, 16:11 
Мы с вами прям как в анекдоте про "ту ти ту ту". Я грю "Нет встроенной мастер-мастер репликации, все что делается, делается комьюнити", и тут вы мне сбрасываете ссылку на еще один комьюнити-проект
Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

19. "Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."  +/
Сообщение от MVK (??) on 05-Сен-13, 12:45 
> Если так использовать любую нормальную реляционную базу данных, то она запросто сможет
> "обрабатывать тысячи запросов в секунду".

- на массиве в 300 Тб?


Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

20. "Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."  +/
Сообщение от Аноним (??) on 05-Сен-13, 12:51 
И что тут такого?
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

28. "Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."  +/
Сообщение от Фтщтнь on 05-Сен-13, 14:45 
> И что тут такого?

SELECT-ы из Postgres и MySQL при больших размерах БД это жопа, я вам скажу, так что как бы ничего, они просто тормозят.

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

31. "Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."  +/
Сообщение от Аноним (??) on 05-Сен-13, 15:00 
Postgres вполне активно ворочает сотни терабайт информации, на простых то запросах. Oracle тоже этим славен.
А к чему вы приплели MySQL  вообще не понятно. Сия база данных никогда и не собиралась возится с большими объемами данных. Её вотчина - мелкие простые БД.
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

33. "Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."  +/
Сообщение от Фтщтнь on 05-Сен-13, 15:10 
> Postgres вполне активно ворочает сотни терабайт информации, на простых то запросах. Oracle
> тоже этим славен.
> А к чему вы приплели MySQL  вообще не понятно. Сия база
> данных никогда и не собиралась возится с большими объемами данных. Её
> вотчина - мелкие простые БД.

Приплел потому что с точки зрения здравого смысла MySQL вроде как и не годится для чего-то более серьезного, чем сайты-визитки, но в реальности Activision (точнее их сетевое подразделение Daemonware) используют оную в качестве одной из своих подсистем вполне успешно, ну о Facebook я надеюсь вам не стоит говорить. Так что в теории вроде как "фу, брось каку", а на практике совсем-совсем по другому все выходит.

Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

40. "Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."  +/
Сообщение от agent_007 (ok) on 06-Сен-13, 10:17 
> на практике совсем-совсем по другому все выходит.

на практике так выходит по вполне очевидной причине: на заре проекта им занимались ниасиляторы. в любых проектах, которые изначально делали люди с головой, никакого mysql нет, и не может быть в принципе.

Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

32. "Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."  +/
Сообщение от Аноним (??) on 05-Сен-13, 15:01 
>> И что тут такого?
> SELECT-ы из Postgres и MySQL при больших размерах БД это жопа, я
> вам скажу, так что как бы ничего, они просто тормозят.

Нууу, если Postgres попилить как Кассандру на кучу нод, то будет уже не жопа...

Правда, инструментов для этого этого нет.  Но если если сделать формат данных аля Кассандра (простые столбцы, никакой поддержки целостности на уровне вторичных ключей и тому подобного), то делать не так уж и много.

Тогда возникает разумный вопрос - а не проще было просто инструментарий для готовой БД накрутить, чем весь этот огород на Java городить?

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

37. "Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."  +/
Сообщение от Аноним email(??) on 05-Сен-13, 18:12 
> SELECT-ы из Postgres

Смотрим план запроса, разбираемся в причинах, оптимизируем запрос и/или строим недостающие индексы. Вообще изучаем матчасть в области повышения производительности реляционных БД и скорости выполнения отдельных запросов.

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

38. "Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."  +/
Сообщение от Фтщтнь on 05-Сен-13, 22:54 
>> SELECT-ы из Postgres
> Смотрим план запроса, разбираемся в причинах, оптимизируем запрос и/или строим недостающие
> индексы. Вообще изучаем матчасть в области повышения производительности реляционных БД
> и скорости выполнения отдельных запросов.

Да, но зачем, если например в NOSQL это можно сделать без лишних телодвижений?

Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

21. "jemalloc Java"  +/
Сообщение от MaMoHT email on 05-Сен-13, 12:54 
А как они jemalloc в код на Java привернули???
Они отрубили GC Java oo_O ??
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

29. "jemalloc Java"  +/
Сообщение от Stax (ok) on 05-Сен-13, 14:46 
В кассандре off-heap кэш, аллоцируемый через нативные вызовы malloc/free.
Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

30. "jemalloc Java"  +/
Сообщение от ДяДя on 05-Сен-13, 14:58 
В Netty его тоже используют. GC только для кучи работает. Есть способы не размещать данные в куче.
Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

22. "Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."  +/
Сообщение от Т0т самый ан0ним on 05-Сен-13, 13:08 
О, транзакции для хранилищ огромных массивов данных, для чего они в принципе?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

24. "Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."  –1 +/
Сообщение от Аноним (??) on 05-Сен-13, 13:22 
чтобы обеспечить ту самую атомарность обновления данных
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

36. "Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."  +/
Сообщение от Фтщтнь on 05-Сен-13, 17:25 
Чота кажется мне, что скоро Cassandra NOSQL превратится в CassandraSQL.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

39. "Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."  +/
Сообщение от Dmitry77 email(ok) on 06-Сен-13, 01:02 
тысячи запросов в секунду.. тут "слегка" приуменьшили.
вот в этом тесте  например - больше милиона
http://techblog.netflix.com/2011/11/benchmarking-cassandra-s...

Тест прмечателен тем, что в кластере было до 288 нод. Все ноды поднимались на Амазоне, на 2 часа. Несмотря на такой огромный кластер тестирование стоило всего 500$

и судя по тесту масштабрование было линейное и миллион в секунду - далеко не предел. посто добавляй серваки.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

41. "Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."  +/
Сообщение от Вонни пух on 06-Сен-13, 14:16 
Java это минус
Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

42. "Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и  легк..."  +/
Сообщение от Вонни пух on 06-Сен-13, 14:22 
> Java это минус

http://hypertable.org/

Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

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