VoltDB
VoltDB — інноваційна відкрита СУБД, котра розвивається під керівництвом Майкла Стоунбрейкера (Mike Stonebraker), одного із засновників проектів Ingres і PostgreSQL.
Тип | реляційна система керування базами даних |
---|---|
Розробник | VoltDB Inc. |
Стабільний випуск | 6.0 (27 січня 2016 ) |
Версії | 10.0 (12 серпня 2020)[1] |
Репозиторій | github.com/VoltDB/voltdb |
Платформа | JVM |
Операційна система | Linux, Mac OS X |
Мова програмування | Java, C++ |
Ліцензія | GNU General Public License v3, власницька ліцензія VoltDB |
Вебсайт | voltdb.com |
СУБД VoltDB підтримує горизонтальне масштабування і орієнтована на обробку транзакцій в реальному часі (OLTP). На недорогому кластері, зібраному своїми силами зі звичайних серверів, СУБД здатна обробляти мільйони транзакцій в секунду. СУБД поширюється в двох варіантах: комерційному, із забезпеченням повноцінної підтримки, і вільному "Community Edition". Код опублікований під ліцензією AGPLv3.
VoltDB дозволяє досягти рівня продуктивності NoSQL-систем, зберігши при цьому підтримку виконання запитів на мові SQL і гарантовану транзакційну цілісність даних (ACID, атомарність і ізольованість транзакцій). Високу продуктивність VoltDB забезпечує несхожа на традиційні схема внутрішньої архітектури, що комбінує зберігання даних в пам'яті з концепцією розподіленої організації та розбиттям вмісту БД по розділах (партиціювання). Продуктивність VoltDB збільшується майже лінійно при залученні додаткових серверів у кластер. Кожен однонитевий розділ працює в автономному режимі, що виключає необхідність в блокуваннях і фіксації операцій. Дані автоматично реплікуються всередині кластера, що дозволяє добитися високої доступності і виключає необхідність ведення журналу. Всі дані кожного вузла повністю прокешовані в оперативній пам'яті, що забезпечує максимальну пропускну спроможність і виключає необхідність буферизації.
На одному сервері запускається кілька вузлів VoltDB, кожен з яких прив'язується до окремого ядра CPU. Для збереження даних на диск використовується концепція снапшотів, що відображають зріз даних, актуальних на момент створення снапшоту. Робота з даними здійснюється через збережені процедури на мові Java, копії яких прикріплюються до кожного з розділів (ODBC/JDBC і пряме виконання SQL-операторів для всієї бази не підтримується). При виконанні запиту, що зачіпає кілька розділів, в кожному з потрібних розділів викликається збережена процедура, а потім результати агрегуються.
При оцінці продуктивності в односерверній конфігурації СУБД VoltDB випередила традиційні OLTP СУБД в 45 разів, обробивши 53 тисяч транзакцій на секунду, у той час як інші СУБД на тому ж обладнанні могли виконати тільки 1155 транзакцій.[2] На 12-вузловому кластері СУБД VoltDB забезпечила виконання 560 тисяч транзакцій за секунду. При цьому, VoltDB вже досить давно використовується в промисловій експлуатації і позиціонується як повністю стабільний продукт.