НовостиОбзорыСобытияIT@WorkРеклама
Идеи и практики автоматизации:

Блог

SQL + NoSQL = NewSQL

1,6 млн. транзакций в сек. -- такой результат показала СУБД VoltDB, запущенная на 39 серверах (300 ядер). Этот показатель оказался в 45 раз эффективнее характеристики типовой РСУБД, а озвучен был на конференции NoSQL Now, прошедшей на прошлой неделе в Сан-Хосе.

Создал VoltDB Майкл Стоунбрейкер, автор Ingres и Postgres. Он также был одним из сооснователей Vertica (сверхбыстрое хранилище данных), которую в этом году купила HP.

[spoiler]Выступление Майка свелось к тому, что проблема современных РСУБД отнюдь не в том, что SQL -- плохой язык, а в архитектуре этих СУБД, которая не меняется уже 30 лет. Ранее они хорошо обрабатывали классические таблички учетных систем, существенно ограниченные внутрикорпоративными объемами, но вот сегодня, с экспоненциальным увеличением объемом цифровых ресурсов и возникновением систем на десятки миллионов пользователей масштабируются, мягко говоря, плоховато.
Например, IBM на днях ухитрилась создать кластер на 120 петабайтов из 200 тыс. жестких дисков, файловая система General Parallel File System ежесекундно позволяет обрабатывать 30 тыс. файлов. Базы на миллиарды записей и терабайты неструктурированных данных -- как можно смасштабировать standalone-сервер на такие параметры? А если все же пытаться развернуть БД на кластере, то операции наподобие join начинают выполняться крайне неэффективно. А реализация блокировок на уровне полей, например, съедает подчас 95% ресурсов сервера.

Альтернатива -- NoSQL, нереляционные, документо-ориентированные безсхемные  СУБД. Они отлично масштабируются (точнее, лучше всего подходят как раз для BigData и многопроцессорных систем) и очень гибкие. Но NoSQL проигрывают при исполнении сложных и хорошо структурированных запросов, потому что в их основу не заложен развитый математический аппарат (реляционная алгебра -- в РСУБД). Другой существенный минус -- несовместимость интерфейсов. А главное, NoSQL не обеспечивают четыре принципа ACID (атомарность, согласованность, изолированность, долговечность), реализовывать которые приходится на уровне приложения.

Стоунбрейкер предложил воплощенную в VoltDB концепцию NewSQL -- новое поколение РСУБД, которые выполнены в архитектуре NoSQL, но поддерживают SQL и реализуют ACID. Исходники VoltDB свободно доступны разработчикам под лицензией GPL3.

Другие интересные технологии, представленные на конференции:

-- MarkLogic Server -- СУБД для работы с неструктурированной информацией, метаданными, включает развитый поисковый механизм. В 2009-м, 2010-м и 2011-м MarkLogic стабильно зарабатывала награду CODiE за лучшее Database Management Solution от Американской ассоциации продавцов софта Software & Information Industry Association.
Free-версия доступна для некоммерческого использования.

Графо-ориентированные СУБД для поддержки масштабных социальных сетей:

- InfiniteGraph -- Java-СУБД;

- FlockDB от создателей Twitter. На базе в 13 млрд. узлов выполняет 20 тысяч записей и 100 тысяч считываний в секунду.