The OpenNET Project / Index page

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

Релиз Apache БД Cassandra 0.8.0

06.06.2011 21:01

После шести месяцев разработки представлен релиз распределенной БД Apache Cassandra 0.8, относящейся к классу noSQL-систем и рассчитанной на создание высокомасштабируемых и надежных хранилищ огромных массивов данных, представленных в виде хэша. Изначально проект был разработан в недрах Facebook и в 2009 году передан под покровительство фонда Apache. Промышленные решения на базе Cassandra развернуты для обеспечения сервисов таких компаний, как Cisco, Cloudkick, Reddit, Digg, Rackspace и Twitter. Наиболее крупный кластер серверов, обслуживающих единую БД Cassandra, насчитывает более 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);
  • Поддержка распределенных счетчиков, дающих возможность создавать актуальные для всего хранилища атомарно инкрементируемые поля;
  • Поддержка шифрования внутреннего трафика, передаваемого между узлами кластера Cassandra. Ранее, при работе узлов в недоверительной сети приходилось использовать неочевидные надстройки в виде создания туннелей поверх VPN;
  • Возможность обновления на лету с ветки 0.7.x до версии 0.8, без остановки работы кластера. В процессе rolling-обновления, узлы обновляются и перезапускаются друг за другом в порядке очереди, не влияя на работоспособность кластера в целом.
  • Поддержка выполнения операции упаковки базы в многопоточном режиме с возможностью регулирования пропускной способности для ограничения интенсивности выполнения операции упаковки;
  • Возможность установки лимитов на общий размер используемой для memtable памяти. По умолчанию используется 1/3 всего размера кучи.


  1. Главная ссылка к новости (http://www.mail-archive.com/us...)
  2. OpenNews: Релиз БД Apache Cassandra 0.7
  3. OpenNews: Сервис Digg мигрирует с MySQL на БД Cassandra
  4. OpenNews: Распределенная БД Cassandra принята в число основных проектов Apache
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/30795-Cassandra
Ключевые слова: Cassandra, database
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (30) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, ыфыфыфыф (?), 21:20, 06/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    транзакции есть ?
     
  • 1.2, klalafuda (?), 21:29, 06/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Java конечно огорчает. Нет, отнюдь не производительностью и тд и тп. Так запустил ./configure && make && make install и все дела образно говоря. Я тут ещё морочиться с установкой жабы, разгребанием костылей почему же не работает конкретно тут и вот эта версия и тд и тп :-/
     
     
  • 2.3, letsmac (ok), 21:59, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Вы собственно, что курите?
     
     
  • 3.13, Аноним (-), 22:45, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Он, собственно, абсолютно прав.
     
  • 2.4, Евгений Н. (?), 22:09, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Java-приложение гораздо легче модифицировать, разработчикам - однозначный перехват всех исключительных ситуаций, наиболее полная и удобная поддержка ООП, отсутствие проблем переносимости кода на различные платформы (что оказывает заметный выигрыш при разработке системе, позволяя, в основном, разработчикам сосредоточиться на бизнес-логике). А высоконагруженные части разработки - могут использовать опционально разрабатываемые нативные модули.

    Установить Java-окружение на сервер - вовсе не проблема, не говоря о сертифицированных администраторах - домашнему пользователю тоже не такая уж и проблема. Тем более что по такому же принципу установки (установка переменной окружения на правильный каталог JRE, включение этой переменной окружения в общий путь) ставится и некоторый другой софт.

    Можно вообще не возиться с переменной окружения (JAVA_HOME) - а при каждом запуске указывать полный путь до исполняемого файла. Боже, да по такому принципу - запускается почти все. Тем более JAVA так популярна на серверах, что тут, как бы - "нечего воротить нос". :)

     
     
  • 3.8, pro100master (ok), 22:23, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Про ООП это вы зря. Это не преимущество. Тем более на серверах. Тем более там, где требуется низкая латентность.

    >А высоконагруженные части разработки - могут использовать опционально разрабатываемые нативные модули.

    нативные в джава? Нативные в джава - это джава.

    > Можно вообще не возиться с переменной окружения (JAVA_HOME) - а при каждом запуске >указывать полный путь до исполняемого файла. Боже, да по такому принципу - запускается >почти все.

    Удобство конфигурирования... это к делу вообще не относится.

     
     
  • 4.10, eugenyn (ok), 22:40, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Типичное заблуждение Во-первых есть JIT Достаточно какой-то операции исполнять... большой текст свёрнут, показать
     
     
  • 5.22, pro100master (ok), 23:46, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > несколько простых тестов, сишники и джависты

    вам бы фортранщиков взять, они бы вас быстро в чувство привели :)

    > Объяснил?

    я уже давно в теме. А вы, судя по всему, нет. Впрочем, в рамках только джава вы правы. Только.

     
     
  • 6.25, eugenyn (ok), 00:03, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >> несколько простых тестов, сишники и джависты
    > вам бы фортранщиков взять, они бы вас быстро в чувство привели :)

    Своим процедурным стилем программирования, единственно возможным на Фортране?

    Не хватает только нумерации строк, чтобы из Фортрана сделать Бейсик. :)

    Да, да, я в курсе, что Фортран - один из основных ЯП для "научников". Сталкивался недавно, разбирал код, использовавший OpenMPI (библиотека, используемая при программировании на кластерах).


     
     
  • 7.30, pro100master (ok), 13:24, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ну дык... Там не то, что оптимизируют такты, там еще и учитывают попадания и промахи кешей (не дисковых, разумеется). И вы со своими ООПешными джава замахами можете бенчить до посинения. Можете сколько угодно рассказывать маркетинговые "саксесстори", когда нужна реактивность (для БД это как бы важно, странно правда?), джава теряет...
     
     
  • 8.31, eugenyn (ok), 14:30, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Для справки - виртуальные машины пишут на нативном коде при написании которых м... большой текст свёрнут, показать
     
     
  • 9.32, eugenyn (ok), 14:44, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Для справки - упоминаемая выше библиотека OpenMP - имеет очень широкое распростр... текст свёрнут, показать
     
  • 9.33, anonymous (??), 15:50, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    то-то линукс на сях, а не на жабе написан видать, глупые люди его пишут им ник... текст свёрнут, показать
     
     
  • 10.35, eugenyn (ok), 16:12, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    С таким же успехом можно привести пример имеющейся ОС QNX, написанной полностью ... текст свёрнут, показать
     
     
  • 11.36, anonymous (??), 16:23, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    ORLY BREAKING NEWS ты просто фонтанируешь сенсациями мда 8230 знаешь, какой... текст свёрнут, показать
     
     
  • 12.39, eugenyn (ok), 16:54, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Таков твой пример Пиши на ассемблере большие приложения и будет тебе счастье Ц... большой текст свёрнут, показать
     
     
  • 13.40, anonymous (??), 17:07, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    это где я сказал, что 171 ОС QNX написана полностью на ассемблере 187 O_O ... текст свёрнут, показать
     
     
  • 14.41, eugenyn (ok), 17:19, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Так, так, так - расскажи в каких проектах ты применял QNX, если уж идти дальше п... текст свёрнут, показать
     
  • 3.9, anonymous (??), 22:31, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > наиболее полная и удобная поддержка ООП

    да? там, наконец-то, реализовали прототипную модель?

    ну, дальше я и не читал: понятно, что человек чушь несёт.

     
     
  • 4.11, eugenyn (ok), 22:43, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >> наиболее полная и удобная поддержка ООП
    > да? там, наконец-то, реализовали прототипную модель?
    > ну, дальше я и не читал: понятно, что человек чушь несёт.

    Вы имеете в виду паттерн Prototype или то убожество __prototype__, используемое в ActionScript/Flash, JavaScript, которое позволяет выйти на суперкласс подкласса?

    Паттерны применяются конечно же легко, убожествам же в Java не место.

     
     
  • 5.19, anonymous (??), 23:10, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Паттерны применяются конечно же легко, убожествам же в Java не место.

    typical java programmer: «всё, чего в жабе нет — убожество.»

     
     
  • 6.20, eugenyn (ok), 23:18, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >> Паттерны применяются конечно же легко, убожествам же в Java не место.
    > typical java programmer: «всё, чего в жабе нет — убожество.»

    Выше было мною написано про дополнительные фичи, которые может предоставлять нативный модель "обычному" джава-приложению.

    Ваши комментарии тут я смотрю чистят, шли бы поругаться на улицу - наверняка там бродит такой же чудак, ваша встреча в темном переулке предопределена. :)

     
  • 4.29, VoDA (ok), 08:51, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >> наиболее полная и удобная поддержка ООП
    > да? там, наконец-то, реализовали прототипную модель?

    а в чем бенефит прототипов? и стоит ли это преимущество отсутствия строгой типизации?


     
     
  • 5.34, anonymous (??), 15:54, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >>> наиболее полная и удобная поддержка ООП
    >> да? там, наконец-то, реализовали прототипную модель?
    > а в чем бенефит прототипов? и стоит ли это преимущество отсутствия строгой
    > типизации?

    а это не важно. сказали, что наиболее полная и удобная — предъявите. мне вот удобно прототипами, например. и, конечно, должны быть полноценные замыкания, без них в прототипы играть неинтересно.

    я, впрочем, вообще не считаю строгую типизацию необходимой. типизация — штука опциональная. вон как в Strongtalk'е. где, кстати, ООП сделано и получше, и поумней, и поудобней. но у человека жаба гойловного моска — его, наверное, iZEN укусил.

     
  • 2.6, Аноним (-), 22:10, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Действительно, такое ощущение, что кроме "configure && make && make install " никогда на клавиатуре ничего не набирал
     
  • 2.12, шо (?), 22:44, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ну ты ваще слился. Я вот в одно движение жаву на серверах ставлю:
    aptitude -y install sun-java6-jdk
     
     
  • 3.15, klalafuda (?), 22:51, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > aptitude -y install sun-java6-jdk

    Ок, допустим, есть такой (в дебе есть). Этого хватит для касандры? Вопрос не праздный - действительно нужен вменяемый продукт с заявленными характеристиками на большие массивы данных. На сколько это все будет жручее это уже тесты покажут.

     
     
  • 4.23, Аноним (-), 23:47, 06/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    До чего "ЛОР" школа ленива, мне вот нафиг не надо, но решил проверить, я скачал, запустил сервер, запустил идущий с ним cli, все это заняло минут 3-5, и без чтения какой либо доки, паралельно еще футбол смотрю
     
  • 4.26, kingu (?), 01:24, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    да, достаточно jre
     
  • 2.28, VoDA (ok), 08:47, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Я тут ещё морочиться с установкой жабы

    Если приходится морочиться с такой командой как apt-get, то вам лучше не использовать java. Совсем ;)

     

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



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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