The OpenNET Project / Index page

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

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

25.01.2013 21:01

Представлен релиз инновационной открытой СУБД 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 3.0
Короткая ссылка: https://opennet.ru/35927-voltdb
Ключевые слова: voltdb, database
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (41) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 21:48, 25/01/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Какая-то просто сказка а не СУБД...
     
     
  • 2.2, o (?), 21:55, 25/01/2013 [^] [^^] [^^^] [ответить]  
  • –15 +/
    на java. отсяюда и сказки и росказни про недорого.
     
     
  • 3.7, thelamon (ok), 01:53, 26/01/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    хейтер детектед?сам не пробовал, но осудить всегда рад?
     
  • 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 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Все данные каждого узла полностью прокэшированы в ОЗУ...
    > Не слишком ли жирно?

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

     
     
  • 3.23, XoRe (ok), 14:52, 26/01/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > На мой взгляд, и SSD уже не такое
    > дорогое удовольствие, так что теперь ПО теперь можно оптимизировать только за
    > счет железа.

    SSD не панацея.
    Неоптимальные алгоритмы могут свести на нет любые бонусы от железа.
    Например, если для получения ФИО одного юзера, вы делаете select * from users;

     
     
  • 4.27, Аноним (-), 18:59, 26/01/2013 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >> На мой взгляд, и SSD уже не такое
    >> дорогое удовольствие, так что теперь ПО теперь можно оптимизировать только за
    >> счет железа.
    > SSD не панацея.
    > Неоптимальные алгоритмы могут свести на нет любые бонусы от железа.
    > Например, если для получения ФИО одного юзера, вы делаете select * from
    > users;

    Так кодируют только м*даки.

     
     
  • 5.39, Аноним (-), 12:38, 28/01/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >>> На мой взгляд, и SSD уже не такое
    >>> дорогое удовольствие, так что теперь ПО теперь можно оптимизировать только за
    >>> счет железа.
    >> SSD не панацея.
    >> Неоптимальные алгоритмы могут свести на нет любые бонусы от железа.
    >> Например, если для получения ФИО одного юзера, вы делаете select * from
    >> users;
    > Так кодируют только м*даки.

    А закон Амдала и когерентность кэша тоже так-то никто не отменял.

     
  • 5.41, slowpoke (?), 14:51, 29/01/2013 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >Так кодируют только м*даки.

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

     
  • 2.8, Аноним (-), 02:45, 26/01/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    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 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    а в чем подвох? Бесплатная производительность только в сказках у Жуля, нашего, Верна.
     
     
  • 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 [^] [^^] [^^^] [ответить]  
  • +/
    > не нужно иметь много мозгов, чтобы показывать большие tps на контенте в
    > оперативной памяти

    Покажи мне TPC-D на этой базе. Угумс? С штатными 32 Тб базы. И полной спецификацией, как положено по TPC.

     
  • 2.37, grammatik polizei (?), 06:25, 28/01/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > а в чем подвох? Бесплатная производительность только в сказках у Жуля, нашего,
    > Верна.

    "Жюля".

     

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

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

     
     
  • 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 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Не совсем понятно что будет если пара узлов упадёт.

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

     
     
  • 3.40, Аноним (-), 12:39, 28/01/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Не совсем понятно что будет если пара узлов упадёт.
    > Исходя из фразы данные реплицируются, можно сделать вывод, что кластер выживет.

    Из этой фразы ничего не следует. Репликация вообще к надежности кластера никакого отношения не имеет, смекаешь?

     
  • 3.44, Aleks Revo (ok), 23:12, 30/01/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Об этом стоит прочитать подробней не из новости, а из документации
    В целом VoltDB - это "in memory" система (а таковые обычно изначально ориентированы на кластер ради надёжности) с минимально возможным количеством блокировок - даже на одной машине поднимается кластер по числу ядер и между ними делается распределение данных и нагрузки на уровне протокола. Скорость работы и линейность масштабирования достигается за счёт распределения данных между узлами и того самого фирменного сетевого протокола, которым авторы, наверно справедливо, гордятся и который позволяет реализовать ACID в кластере, которого все так боятся, ибо "медленно"..  
     
     
  • 4.46, Аноним (46), 10:14, 06/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Какая разница сколько там чего на одной машине запущено !
    Упала железяка и нет кластера и нет ваших данных в памяти...
     

  • 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 [^] [^^] [^^^] [ответить]  
  • +2 +/
    OpenMP перевернулся в гробу
     

  • 1.36, Pilat (ok), 17:16, 27/01/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Ответы на многие вопросы типа "Как вы себе представляете ПОЛНОЕ кэширование 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:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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