The OpenNET Project / Index page

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

25.01.2013 21:01  Релиз открытой СУБД VoltDB 3.0, развиваемой одним из основателей Ingres и PostgreSQL

Представлен релиз инновационной открытой СУБД VoltDB 3.0, развиваемой под руководством Майкла Стоунбрейкера (Mike Stonebraker), одного из основателей проектов Ingres и PostgreSQL. СУБД VoltDB поддерживает горизонтальное масштабирование и ориентирована на обработку транзакций в реальном времени (OLTP). На недорогом кластере, собранном своими силами из обычных серверов, СУБД способна обрабатывать миллионы транзакций в секунду. СУБД распространяется в двух вариантах: коммерческом, с обеспечением полноценной поддержки, и свободном "Community Edition". Код опубликован под лицензией AGPLv3.

VoltDB позволяет достичь уровня производительности NoSQL-систем, сохранив при этом поддержку выполнения запросов на языке SQL и гарантирированную транзакционную целостность данных (ACID, атомарность и изолированность транзакций). При оценке производительности в односерверной конфигурации СУБД VoltDB опередила традиционные OLTP СУБД в 45 раз, обработав 53 тыс. транзакций в секунду, в то время как другие СУБД на том же оборудовании могли выполнить только 1155 транзакций. На 12-узловом кластере СУБД VoltDB обеспечила выполнение 560 тыс. транзакций в сек. При этом, VoltDB уже достаточно давно используется в промышленной эксплуатации и позиционируется как полностью стабильный продукт.

Разгадка высокой производительности VoltDB кроется в непохожей на традиционные схемы внутренней архитектуре, комбинирующей хранение данных в памяти с концепцией распределенной организации и разбиением содержимого БД по разделам (партицирование). Производительность VoltDB увеличивается почти линейно при добавлении дополнительных серверов в кластер. Каждый однопоточный раздел работает в автономном режиме, что исключает необходимость в блокировках и фиксации операций. Данные автоматически реплицируются внутри кластера, что позволяет добиться высокой доступности и исключает необходимость ведения журнала. Все данные каждого узла полностью прокэшированы в ОЗУ, что обеспечивает максимальную пропускную способность и исключает необходимость буферизации.

На одном сервере запускается несколько узлов VoltDB, каждый из которых привязывается к отдельному ядру CPU. Для сохранения данных на диск используется концепция снапшотов, отражающих срез данных, актуальных на момент создания снапшота. Работа с данными осуществляется через хранимые процедуры на языке Java, копии которых прикрепляются к каждому из разделов (ODBC/JDBC и прямое выполнение SQL-операторов для всей базы не поддерживается). При выполнении запроса, затрагивающего несколько разделов, в каждом из нужных разделов вызывается хранимая процедура, а затем результаты агрегируются.

Среди новшеств, добавленных в VoltDB 3.0:

  • Переработана архитектура координации выполнения транзакций, что позволило минимизировать обмен данными между узлами в процессе выполнения запроса. В результате была увеличена пропускная способность и уменьшена задержка выполнения запросов. По сравнению с VoltDB 2.x версия 3.0 позволяет выполнить на том же оборудовании гораздо больше транзакций и существенно снизить задержки для работающих в синхронном режиме клиентов, в которых выполнение продолжается только после завершения каждого запроса (в асинхронном режиме управление передаётся дальше не дожидаясь выполнения запроса, готовность которого оценивается через обработку событий);
  • Для упрощения разработки высокопроизводительных приложений добавлена поддержка шаблона project.xml для размещения данных в кластере и команды compile для автоматической компиляции схемы. Расширены возможности изменения схемы БД на лету, добавлены команды для создания и изменения индексов, применимые для работающего кластера;
  • Расширен поддерживаемый синтаксис SQL, добавлена возможность использования выражения UNION и операторов LIKE/NOT LIKE, подготовлен полный набор строковых и числовых функций. Реализована поддержка определения индексов с использованием функций, работающих на уровне столбцов;
  • Реализован интерфейс для доступа к данным с использованием формата JSON. Указанная возможность позволяет гибко управлять и менять схему хранения, которая теперь может задаваться в произвольном виде. Для манипуляции со структурированными JSON-данными, прикреплёнными к столбцу, представлена новая функция field();
  • Новые средства для импорта и экспорта данных. Добавлены модули для импорта данных из лога Apache и из CSV-файлов. Переработана поддержка экспорта, отмечается, что новая реализация экспортирует данные в 20 раз быстрее прежней. Добавлен JDBC-коннектор для экспорта данных в СУБД PostgreSQL, Oracle и MySQL;
  • Новая утилита voltadmin с реализация интерфейса командной строки для централизованного управления всем кластером VoltDB;
  • Добавлен переработанный высокопроизводительный драйвер для PHP и новые драйверы для Node.js и Google Go.


  1. Главная ссылка к новости (http://blog.voltdb.com/introdu...)
  2. OpenNews: АНБ передаёт код БД Accumulo в руки фонда Apache
  3. OpenNews: Представлен первый стабильный релиз СУБД SciDB
  4. OpenNews: Проект NewSQL призван решить проблемы, с которыми столкнулся Facebook, используя MySQL
  5. OpenNews: Первый релиз NoSQL БД OrientDB
  6. OpenNews: Представлена новая NoSQL БД Hibari, созданная для больших хранилищ данных
Лицензия: CC-BY
Тип: Интересно / Программы
Ключевые слова: voltdb, database
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Аноним (-), 21:48, 25/01/2013 [ответить] [показать ветку] [···]    [к модератору]
  • +7 +/
    Какая-то просто сказка а не СУБД...
     
     
  • 2.2, o (?), 21:55, 25/01/2013 [^] [ответить]    [к модератору]
  • –14 +/
    на java. отсяюда и сказки и росказни про недорого.
     
     
  • 3.7, thelamon (ok), 01:53, 26/01/2013 [^] [ответить]    [к модератору]
  • +3 +/
    хейтер детектед?сам не пробовал, но осудить всегда рад?
     
  • 2.18, VoDA (ok), 12:49, 26/01/2013 [^] [ответить]    [к модератору]
  • +4 +/
    > Какая-то просто сказка а не СУБД...

    Похоже она не реляционная, оттуда и бонусы.

     
     
  • 3.35, Grammar Nazi (?), 10:03, 27/01/2013 [^] [ответить]    [к модератору]
  • –7 +/
    нереляционная
     
  • 1.3, Аноним (-), 22:10, 25/01/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • +6 +/
    Все данные каждого узла полностью прокэшированы в ОЗУ...
    Не слишком ли жирно?
     
     
  • 2.4, Аноним (-), 22:35, 25/01/2013 [^] [ответить]     [к модератору]  
  • –1 +/
    Время сейчас такое, оперативная память стоит не дорого, вот и оптимизация идет з... весь текст скрыт [показать]
     
     
  • 3.23, XoRe (ok), 14:52, 26/01/2013 [^] [ответить]     [к модератору]  
  • +/
    SSD не панацея Неоптимальные алгоритмы могут свести на нет любые бонусы от желе... весь текст скрыт [показать]
     
     
  • 4.27, Аноним (-), 18:59, 26/01/2013 [^] [ответить]     [к модератору]  
  • +3 +/
    Так кодируют только м даки ... весь текст скрыт [показать]
     
     
  • 5.39, Аноним (-), 12:38, 28/01/2013 [^] [ответить]     [к модератору]  
  • +/
    А закон Амдала и когерентность кэша тоже так-то никто не отменял ... весь текст скрыт [показать]
     
  • 5.41, slowpoke (?), 14:51, 29/01/2013 [^] [ответить]    [к модератору]  
  • +3 +/
    >Так кодируют только м*даки.

    зато они очень плодовиты, написали уже pulseaudio, systemd...

     
  • 2.8, Аноним (-), 02:45, 26/01/2013 [^] [ответить]    [к модератору]  
  • +2 +/
    MapReduce ведь для лохов
     
     
  • 3.24, Whoiswho (?), 14:53, 26/01/2013 [^] [ответить]    [к модератору]  
  • –1 +/
    Сам то понял, что сказал и при чем тут это?
     
     
  • 4.34, Grammar Nazi (?), 10:02, 27/01/2013 [^] [ответить]    [к модератору]  
  • –2 +/
    Сам-то
     
     
  • 5.42, Чел (?), 09:00, 30/01/2013 [^] [ответить]    [к модератору]  
  • +/
    Учить до посинения.
    http://ru.wikipedia.org/wiki/MapReduce
     
  • 1.5, жабабыдлокодер (ok), 23:31, 25/01/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    Прочитав "JDBC не поддерживается" крайне удивился: все-таки на Java написано... Взаимоисключающие параграфы?
    Посмотрел на сайте - ничего подобного, поддерживается, есть нормальные примеры. Ошибка в новости?
     
     
  • 2.45, шестиклассник (?), 18:08, 31/01/2013 [^] [ответить]    [к модератору]  
  • +/
    Не поддерживается напрямую для всей БД. Вместо этого агрегация результатов выполнения на узлах.
     
  • 1.6, pro100master (ok), 00:08, 26/01/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • +2 +/
    а в чем подвох? Бесплатная производительность только в сказках у Жуля, нашего, Верна.
     
     
  • 2.9, rshadow (ok), 03:17, 26/01/2013 [^] [ответить]    [к модератору]  
  • –1 +/
    Все очень просто ... на одной машинке с 64Гб хватит памяти чтоб сохранить 10000 записей. Хочешь больше, ставь больше машинок.
     
     
  • 3.10, Аноним (-), 07:05, 26/01/2013 [^] [ответить]    [к модератору]  
  • +/
    хочешь сохранить пару миллионов записей, ставь зоопарк?
     
  • 3.22, Аноним (-), 13:28, 26/01/2013 [^] [ответить]    [к модератору]  
  • +/
    Вы не поняли части об оперативной памяти.
     
     
  • 4.28, Аноним (-), 19:00, 26/01/2013 [^] [ответить]    [к модератору]  
  • +/
    > Вы не поняли части об оперативной памяти.

    А вы поняли? Как вы себе представляете ПОЛНОЕ кэширование 1 Тб? А ведь в промышленных реляционных системах это МАЛЕНЬКАЯ база, даже не средняя.

     
  • 2.21, all_glory_to_the_hypnotoad (ok), 13:26, 26/01/2013 [^] [ответить]    [к модератору]  
  • +/
    не нужно иметь много мозгов, чтобы показывать большие tps на контенте в оперативной памяти
     
     
  • 3.29, Аноним (-), 19:01, 26/01/2013 [^] [ответить]     [к модератору]  
  • +/
    Покажи мне TPC-D на этой базе Угумс С штатными 32 Тб базы И полной спецификац... весь текст скрыт [показать]
     
  • 2.37, grammatik polizei (?), 06:25, 28/01/2013 [^] [ответить]    [к модератору]  
  • –1 +/
    > а в чем подвох? Бесплатная производительность только в сказках у Жуля, нашего,
    > Верна.

    "Жюля".

     
  • 1.11, Аноним (-), 10:21, 26/01/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • +6 +/
    >Все данные каждого узла полностью прокэшированы в ОЗУ

    Что? Нужна БД на терабайт - накидай терабайт оперативы? Джававыродки такие милашки.

     
     
  • 2.38, Аноним (-), 12:36, 28/01/2013 [^] [ответить]     [к модератору]  
  • +/
    Я что-то не припомню, чтобы хоть в каком-нибудь боксе столько памяти видал Той ... весь текст скрыт [показать]
     
  • 1.13, anonymous (??), 11:26, 26/01/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    то ли такой хитрый пиар джавы то ли ответление от имеющегося nosql-направления в самом postgresql.

    Неожиданно.

     
     
  • 2.15, Аноним (-), 11:42, 26/01/2013 [^] [ответить]     [к модератору]  
  • –6 +/
    Какой к черту пиар джавы Вы бы себя со стороны слышали By design гнилая технол... весь текст скрыт [показать]
     
     
  • 3.17, anonymous (??), 12:19, 26/01/2013 [^] [ответить]    [к модератору]  
  • +/
    > Какой к черту пиар джавы? Вы бы себя со стороны слышали. By
    > design гнилая технология, предназначавшаяся для погроммирования кофеварок переучившимися
    > индусскими таксистами. Ни один пиарщик жабу из ее гнойного болота не
    > вытащит.

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

     
  • 1.16, Аноним (-), 12:06, 26/01/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Не совсем понятно что будет если пара узлов упадёт.
     
     
  • 2.19, VoDA (ok), 12:51, 26/01/2013 [^] [ответить]    [к модератору]  
  • +/
    > Не совсем понятно что будет если пара узлов упадёт.

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

     
     
  • 3.40, Аноним (-), 12:39, 28/01/2013 [^] [ответить]     [к модератору]  
  • +/
    Из этой фразы ничего не следует Репликация вообще к надежности кластера никаког... весь текст скрыт [показать]
     
  • 3.44, Aleks Revo (ok), 23:12, 30/01/2013 [^] [ответить]    [к модератору]  
  • +/
    Об этом стоит прочитать подробней не из новости, а из документации
    В целом VoltDB - это "in memory" система (а таковые обычно изначально ориентированы на кластер ради надёжности) с минимально возможным количеством блокировок - даже на одной машине поднимается кластер по числу ядер и между ними делается распределение данных и нагрузки на уровне протокола. Скорость работы и линейность масштабирования достигается за счёт распределения данных между узлами и того самого фирменного сетевого протокола, которым авторы, наверно справедливо, гордятся и который позволяет реализовать ACID в кластере, которого все так боятся, ибо "медленно"..  
     
  • 1.20, all_glory_to_the_hypnotoad (ok), 13:18, 26/01/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    приверно как  это http://habrahabr.ru/post/133435/ только на гогнояве
     
  • 1.26, piteri (ok), 15:40, 26/01/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • +2 +/
    Таак-c.
    Явахейтеры увидели в новости слово "java"
    Нищеброды увидели в новости предложение "Все данные каждого узла полностью прокэшированы в ОЗУ"
    Ваши мнения безусловно интересны.
    Но всё же хотелось бы услышать тех, кто видел этот вольт вживую.
     
  • 1.31, anonymous (??), 21:16, 26/01/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    >Все данные каждого узла полностью прокэшированы в ОЗУ
    >запускается несколько узлов VoltDB, каждый из которых привязывается к отдельному ядру CPU

    оптимизация такая оптимизация

     
     
  • 2.32, Аноним (-), 23:09, 26/01/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    OpenMP перевернулся в гробу
     
  • 1.36, Pilat (ok), 17:16, 27/01/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    Ответы на многие вопросы типа "Как вы себе представляете ПОЛНОЕ кэширование 1 Тб?" есть в FAQ, наверно такого рода вопросы постоянно встречаются у людей, не понимающих, что если серьёзные люди взялись за такую задачу, то не просто ради развлечения.

    What is VoltDB's scaling model?

    VoltDB automatically partitions frequently accessed database tables across the available cluster nodes. Both the capacity and performance of the database can be increased by adding nodes to the cluster. Upon changes to cluster size, VoltDB automatically redistributes the partitions to the new configuration when you reload the data. VoltDB also allows tables with infrequently-changing data to be replicated to each node to further optimize performance.

    Короче говоря, хотите получить терабайтную базу - ставьте 10-15 машин по 128 гигабайт. И получите пол-миллиона TPC.

     
     
  • 2.43, Whoiswho (?), 15:57, 30/01/2013 [^] [ответить]    [к модератору]  
  • +/
    frequently accessed database tables

    это здесь ключевое

     

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


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