The OpenNET Project / Index page

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

Выпуск СУБД Apache Cassandra 2.1

12.09.2014 23:02

После года разработки доступен релиз распределённой БД Apache Cassandra 2.1, относящейся к классу noSQL-систем и рассчитанной на создание высокомасштабируемых и надёжных хранилищ огромных массивов данных, хранимых в форме ассоциативного массива (хэша). Код проекта написан на языке Java и распространяется в рамках лицензии Apache 2.0.

Особенности новой версии:

  • Проведена значительная работа по увеличению производительности. По сравнению с прошлым выпуском выигрыш может достигать 50%;
  • В язык CQL3 (Cassandra Query Language) добавлены средства для определения пользовательских типов (UDT, User Defined Types), реализованы типы кортежей и добавлена возможность использования вторичных индексов для коллекций;
  • Реализована концепция инкрементального восстановления, при которой сохраняется состояние ранее восстанавливаемых sstable, а новые операции восстановления проводятся только для новых областей. Подобный подход позволяет существенно ускорить процесс и снизить нагрузку на систему в условиях часто выполняемых операций восстановления. Запустить инкрементальное восстановление можно командой "nodetool repair -par -inc", для ручного управления статусом восстановления подготовлена утилита tools/bin/sstablerepairedset;
  • Применения метода инкрементального замещения в упакованных SSTables;
  • Увеличена эффективность работы кэша строк;
  • Поддержка размещения хранимых в памяти таблиц (memtables) вне области кучи JVM;
  • Расширены возможности инструментов для стресс-тестирования;
  • Возможность использования экранированных кавычками идентификаторов в именах триггеров;
  • Предлагаемое по умолчанию местоположение файлов с данными и логами изменено на $CASSANDRA_HOME/data/data, $CASSANDRA_HOME/data/commitlog, $CASSANDRA_HOME/data/saved_caches и $CASSANDRA_HOME/logs. Изменено наименование директорий с данными SSTable (например, ks/cf-5be396077b811e3a3ab9dc4b9ac088d/);
  • Поддержка платформы Windows переведена в разряд готовых к промышленному использованию.

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

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

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

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



  1. Главная ссылка к новости (https://blogs.apache.org/found...)
  2. OpenNews: Релиз БД Apache Cassandra 2.0 с поддержкой триггеров и легковесных транзакций
Лицензия: CC-BY
Тип: Программы
Ключевые слова: cassandra, nosql
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (14) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.1, YetAnotherOnanym (ok), 22:50, 13/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Плюсую, ибо гуд.
     
  • 1.2, Аноним (-), 07:01, 14/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Крупнейшие кластера cassandra у Apple, тысячи серверов, десятки петабайт данных
     
  • 1.3, Аноним2 (?), 11:00, 14/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Для того чтобы в продакшене использовать cassandra нужны хорошие знания java чтобы отлавливать exception.
     
     
  • 2.4, anonimous (?), 13:32, 14/09/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Для того чтобы в продакшене использовать cassandra нужны хорошие знания java чтобы отлавливать exception.

    Для того чтобы в продакшене использовать _некая_субд_ нужны хорошие знания C/C++ чтобы отлавливать error.

     
     
  • 3.11, Anonnn (?), 15:23, 16/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Это не мешает многим компаниям использовать MySQL в продакшене без С специалистов. Т.к. MySQL очень популярная и вы вряд ли найдете баг для которого вам срочно понадобится С разработчик.
     
     
  • 4.12, Fry33 (ok), 15:26, 16/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Это не мешает многим компаниям использовать MySQL в продакшене без С специалистов.
    > Т.к. MySQL очень популярная и вы вряд ли найдете баг для
    > которого вам срочно понадобится С разработчик.

    всё зависит от отого как его варить. опять пример из одноклассников, они яву на части просто разрывают, у них давно уже есть свой форк ждк и баги находят хорошо, посколько требовние у них захватыват все мысленмые корнер кейсы.

    Для 98% проектов конечно low level знания не понадобятся. Но фейсбук прилично в кишках мускала копается, им важно знать что как там и сколько времени на каком локе и зачем муск висит, и как это оптимизировать.

     
     
  • 5.13, Anonnn (?), 15:44, 16/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Согласен, у всех разные масштабы.
    А сам фейсбук сейчас использует кассандру? Давно не было никакой инфы об этом.
     
  • 4.14, Skif (ok), 15:56, 17/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то это был стёб. Видимо слишком тонкий, раз вы не поняли.
     
  • 2.5, Fry33 (ok), 08:27, 15/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    ну дык, зато неимоверную скорость получаем. знаю "некоторую" контору, которую касандра не устроила, они на си всё запилили - там тоже знание си нужно.
    вот у однокласников касандра используется. правда хаченная, свой форк. интересно кстати где он гитхабе валяяется, вроде эти ребята всё по чесноку опенсорсят обратно.
     
     
  • 3.10, Oleg Anastasyev (?), 16:09, 15/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    github.com/odnoklassniki/apache-cassandra
     

  • 1.6, VoDA (ok), 08:45, 15/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А чем CREATE COLUMNFAMILY отличается от CREATE TABLE?

    Можно ли в текущей реализации динамически "добавлять" столбцы? (когда при сохранении в несуществующий столбец у строки этот столбец появляется)

     
     
  • 2.7, Fry33 (ok), 09:19, 15/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > А чем CREATE COLUMNFAMILY отличается от CREATE TABLE?

    сементика одна и таже.

    > Можно ли в текущей реализации динамически "добавлять" столбцы? (когда при сохранении в
    > несуществующий столбец у строки этот столбец появляется)

    дык это основная фича этой дб, такое там всегда было. это же no schema db.

     
     
  • 3.8, VoDA (ok), 09:29, 15/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > дык это основная фича этой дб, такое там всегда было. это же no schema db.

    и эта фича через CQL работает или нужно другую либу для подключения использовать? ))

     
     
  • 4.9, Fry33 (ok), 09:42, 15/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >> дык это основная фича этой дб, такое там всегда было. это же no schema db.
    > и эта фича через CQL работает или нужно другую либу для подключения
    > использовать? ))

    CQL не использовал никогда, всё через Hector - он точно всё может. но думаю
    CQL3 уже должен уметь всё тоже.

     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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