The OpenNET Project / Index page

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

24.04.2012 18:35  Увидела свет БД Apache Cassandra 1.1.0

Организация Apache Software Foundation представила релиз распределённой БД Apache Cassandra 1.1.0, относящейся к классу noSQL-систем и рассчитанной на создание высокомасштабируемых и надёжных хранилищ огромных массивов данных, представленных в виде хэша. Изначально проект был разработан в недрах Facebook и в 2009 году передан под покровительство фонда Apache. Промышленные решения на базе Cassandra развернуты для обеспечения сервисов таких компаний, как Adobe, Cisco, IBM, Rackspace и Twitter. Наиболее крупный кластер серверов, обслуживающих единую БД Cassandra, размер данных в которой превышает 300 Тб, насчитывает более 400 машин.

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

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

Улучшения, представленные в новой версии:

  • Переработан процесс обновления схемы данных и реализована поддержка автоматического разрешения конфликтов при возникновении одновременных обновлений;
  • Значительно расширен язык формирования запросов CQL (Cassandra Query Language), осуществлён переход на обратно не совместимую версию CQL 3.0, но оставлена поддержка и старой версии CQL 2.0, которая пока используется по умолчанию (для включения CQL 3.0 следует использовать опцию "--cql3"). Основные изменения в CQL 3.0 касаются поддержки использования составных ключей для упрощения денормализации;
  • Изоляция выполнения обновлений на уровне строк. Многостолбцовые обновления теперь выполняются не только атомарно, но и изолированно на уровне отдельных строк, т.е. теперь пользователь увидит сразу все изменения, а не как раньше, имеет шанс прочитать смесь старых и новых данных;
  • Реализованы средства для гибкого управления размещением данных по директориям, которые позволяют вынести хранение семейства столбцов (ColumnFamily) на отдельных раздел, например, на более быстрый SSD-накопитель;
  • Упрощена конфигурация кэшей столбцов и ключей, которые отныне являются глобальными .


  1. Главная ссылка к новости (https://blogs.apache.org/found...)
Лицензия: CC-BY
Тип: Программы
Ключевые слова: apache, cassandra, nosql, database
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Показать все | RSS
 
  • 1.1, sashkan, 20:06, 24/04/2012 [ответить] [смотреть все]    [к модератору]
  • +/
    если нет сортировки, то зачем там индексы?
     
     
  • 2.2, Andrey Mitrofanov, 20:10, 24/04/2012 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]
  • +2 +/
    Мо быть, для поиска??
     
  • 1.3, evgeny_t, 20:14, 24/04/2012 [ответить] [смотреть все]     [к модератору]
  • –4 +/
    самое сложное в таких системах это индексы фигачить туда сюда по хешу много ума ... весь текст скрыт [показать]
     
     
  • 2.4, rstone, 20:31, 24/04/2012 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Точно работает на 300 миллионов записей ключей В среднем около 6 колонок... весь текст скрыт [показать] [показать ветку]
     
  • 2.10, Аноним, 23:37, 24/04/2012 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –1 +/
    С очень скиптическим видом Так вот почему Facebook начинает тормозить если туда... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.12, Kibab, 00:54, 25/04/2012 [^] [ответить] [смотреть все]     [к модератору]  
  • +4 +/
    Кому-то надо быстро выходить из фейсбука, выключать компьютер со своим тормозным... весь текст скрыт [показать]
     
     
  • 4.13, Aleks Revo, 05:21, 25/04/2012 [^] [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    Мечтаете обанкротить фейсбук и озолотить преподавателей русского? )))))
     
     
  • 5.19, Kibab, 10:18, 25/04/2012 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Давно пора А то сейчас тенденция прямо обратная, к сожалению ... весь текст скрыт [показать]
     
  • 2.23, migosm, 14:08, 25/04/2012 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Индексы в привычном виде в Cassandra только на вторичные атрибуты на value , и т... весь текст скрыт [показать] [показать ветку]
     
  • 1.5, _Ahatanhel_, 20:50, 24/04/2012 [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    >на первый взгляд напоминающий SQL, но существенно урезанный по функциональности

    зачем тогда его используют?

     
     
  • 2.6, arka, 22:36, 24/04/2012 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Видимо для того, чтобы упростить вход в разработку на кассандре уже знающим SQL ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.7, _Ahatanhel_, 22:59, 24/04/2012 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    нет, я имел ввиду а почему нельзя было использовать SQL, если CQL все равно хуже... весь текст скрыт [показать]
     
     
  • 4.8, VoDA, 23:09, 24/04/2012 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Потому что нет JOIN-ов, которые классика SQL для джоинов потребуется создание с... весь текст скрыт [показать]
     
     
  • 5.14, Aleks Revo, 05:24, 25/04/2012 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    То бишь первые версии MySQL были NoSQL на самом деле Или не только первые ... весь текст скрыт [показать]
     
     
  • 6.18, letsmac, 09:04, 25/04/2012 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    > То бишь первые версии MySQL были NoSQL на самом деле? )))
    > Или не только первые? (:TrollFace:)

    Первые версии были багодромом. Вообще почитай про ANSI SQL, прочисть чакры.

     
  • 5.16, Аноним, 08:31, 25/04/2012 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Вы о чем вообще Какие нафиг джойны в 171 ColumnFamily 187 СУБД ... весь текст скрыт [показать]
     
     
  • 6.24, VoDA, 21:53, 25/04/2012 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Рекомендую прочитать пост к которому и относится мой ответ.
     
  • 4.9, _Ahatanhel_, 23:10, 24/04/2012 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    и почему меня кто то уже минусить начал, я же не тролю, мне просто интересно
     
     
  • 5.11, Аноним, 23:43, 24/04/2012 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Это не хабр, тут всем пофиг на плюсики минусы, и карма не играет никакой роли Т... весь текст скрыт [показать]
     
  • 4.15, Аноним, 08:05, 25/04/2012 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Странный вопрос SQL 8212 это язык общения с реляционными БД Cassandra таков... весь текст скрыт [показать]
     
  • 4.17, letsmac, 09:03, 25/04/2012 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    SQL-компилер весч очень прожорливая и уничтожающая простоту и скорость. В данном случае нафиг не нужна.
     
     
  • 5.25, VoDA, 12:07, 27/04/2012 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    > SQL-компилер весч очень прожорливая и уничтожающая простоту и скорость. В данном случае
    > нафиг не нужна.

    Компилер даже SQL на распределенных системах вещь копеечная. Основная проблема в том, что сейчас система работает подобно ndb нодам MySQL. Для поддержки SQL придется сделать аналог sql нод MySQL (что не сложно) куда нужно сливать все данные выборки, и где уже производить JOIN. Сама необходимость слить все данные запроса в одну ноду убивает основных бонусы распределенных хранилищ.

     
  • 1.20, Ваня, 13:02, 25/04/2012 [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    300 машин (= серверов?) и 400 Тб??? Т.е. по 1,3 Тб на сервер? Что-то фуфловенько как-то...
     
     
  • 2.21, pkdr, 14:05, 25/04/2012 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +1 +/
    Не забывайте про то, что данные ещё и дублируются на нескольких нодах для отказоустойчивости.
     
     
  • 3.22, Andrey Mitrofanov, 14:08, 25/04/2012 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    ...и индексы могут быть в несколько раз больше данных.
     

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


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