Linux Forum Казахстан

Общий => Новости => Тема начата: Радость от 26 Мая 2010, 15:05

Название: VoltDB
Отправлено: Радость от 26 Мая 2010, 15:05
Анонсирована (http://www.voltdb.com/voltdb-launches-next-generation-open-source-oltp-dbms) новая открытая СУБД нового поколения - VoltDB (http://community.voltdb.com/), ориентированная на обработку транзакций в реальном времени (OLTP (http://ru.wikipedia.org/wiki/OLTP)) и продемонстрировавшая способность обрабатывать миллионы транзакций в секунду на недорогом кластере, собранном своими силами из обычных серверов. Проектирование и разработка VoltDB велось под руководством Майкла Стоунбрейкера (Mike Stonebraker), одного из основателей проектов Ingres и PostgreSQL. СУБД распространяется в двух вариантах: коммерческом, с обеспечением полноценной поддержки, и свободном "Community Edition". Исходные тексты доступны в рамках лицензии GPL.

Отмечено, что VoltDB опережает по производительности традиционные OLTP СУБД в односерверной конфигурации в 45 раз, но в отличие от высокопроизводительных БД проповедующих подход NoSQL, VoltDB поддерживает выполнение запросов на языке SQL и гарантирует транзакционную целостность данных (ACID (http://ru.wikipedia.org/wiki/ACID), атомарность и изолированность транзакций). По заявлению разработчиков, пре-релиз VoltDB можно рассматривать как стабильный, он уже несколько месяцев используется в компании Getco, бизнес которой связан с электронными финансовыми торгами, и продемонстрировал непревзойденные показатели производительности и масштабируемости. Другим примером внедрения VoltDB являются online-игры студии Eonblast, по данным которой производительности при использовании VoltDB опережает классические решения на базе MySQL с кешированием в Memcached.

Невероятного на первый взгляд роста производительности в VoltDB удалось добиться благодаря использованию совершенно непохожей на традиционные схемы внутренней архитектуры (http://community.voltdb.com/faq). Типичные современные OLTP СУБД используют те же приемы, что и 30 лет назад и очень трудно масштабируются при увеличении числа CPU или узлов в кластере. Исследование показало, что в таких СУБД более 90% времени тратится на такие операции, как ведение журнала, обеспечение блокировок, фиксацию изменений и управление буферизацией.

Суть архитектуры VoltDB в комбинации хранения всех данных в памяти с концепцией распределенной организации и разбиения БД по разделам (партицирование). СУБД VoltDB оптимизирована для работы на современных серверах, снабженных большим количеством ОЗУ и многоядерными CPU. Для сохранения данных на диск используется (http://community.voltdb.com/sites/default/files/UsingVoltDB.pdf) концепция снапшотов, отражающих срез данных, актуальных на момент создания снапшота. Работа с данными осуществляется через хранимые процедуры на языке Java, копии которых прикрепляются к каждому из разделов (ODBC/JDBC и прямое выполнение SQL-операторов для всей базы не поддерживается). При выполнении запроса, затрагивающего несколько разделов, в каждом из нужных разделов вызывается хранимая процедура, а затем результаты агрегируются.

Основные элементы архитектуры VoltDB:

Результаты измерения производительности:

Планы (http://community.voltdb.com/roadmap) на будущее:

# opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=26732)