Конец архитектурной эпохи

         

Все популярные реляционные СУБД берут


Все популярные реляционные СУБД берут свое начало от системы System R, разработанной в 70-е годы прошлого века. Например, СУБД DB2 является прямой наследницей System R, и на первый выпуск этой системы оказала сильнейшее влияние подсистема RDS System R. Аналогично, MS SQL Server – это непосредственный наследник Sybase System 5, на разработку которой очень сильно повлияла System R. Наконец, в первом выпуске Oracle был напрямую реализован пользовательский интерфейс System R.
Все три перечисленные системы были построены более 25 лет тому назад, когда характеристики аппаратуры существенно отличались от тех, которые имеются сегодня. Процессоры обладают тысячекратно большей мощностью, а память – тысячекратно большей емкостью. Невероятно возросли объемы дисковой памяти, позволяющие теперь долговременно сохранять все, что заблагорассудится. Однако пропускная возможность канала между диском и основной памятью растет гораздо медленнее. Можно было ожидать, что скорость развития компьютерных технологий в последней четверти минувшего столетия приведет к существенным изменениям архитектуры систем баз данных, но, как это не странно, архитектура большинства СУБД, по существу, остается идентичной архитектуре System R.
Кроме того, в то время, когда задумывались реляционные СУБД, существовал единственный рынок СУБД – рынок систем обработки бизнес-данных. За прошедшие 25 лет образовался ряд других рынков: хранилищ данных, обработки текстовых данных, обработки потоковых данных. В этих областях имеются совсем другие требования, чем в области обработки бизнес-данных.
Наконец, во времена разработки РСУБД основным устройством, поддерживающим интерфейс с конечными пользователями, являлся алфавитно-цифровой терминал, и в качестве конечных пользователей производители имели в виду операторов, вводящих в интерактивном режиме запросы по приглашению, появляющемуся на экране терминала. Теперь конечные пользователи имеют дело с мощными персональными компьютерами, подключенными к Web.
На Web-сайтах, на которых используются транзакционные СУБД, редко выполняются интерактивные транзакции, а их пользователям вряд ли предоставляются интерфейсы на основе SQL.
Итак, существующие сегодня РСУБД разрабатывались в расчете на рынок обработки бизнес-данных в то время, когда имелись совсем другие интерфейсы пользователей, а аппаратура обладала совсем другими характеристиками. Эти РСУБД обладают рядом архитектурных черт, унаследованных от System R:

  • структуры хранения данных и индексов, ориентированные на дисковую память;
  • использование многопотоковости для сокрытия временных задержек;
  • механизмы управления параллельным доступом на основе блокировок;
  • восстановление на основе журналов.

Конечно, с годами в этих архитектурах появились некоторые расширения, включающие поддержку сжатия данных, параллельное управление данными с использованием общей дисковой памяти, битовые индексы (bitmap index), поддержка определяемых пользователями типов данных и операций и т.д. Однако ни одна система не разу не подверглась полному перепроектированию после ее исходного изготовления. В данной статье авторы утверждают, что пришло время полностью переписывать СУБД.
В статье [SBC+07] приводились результаты тестовых испытаний, в ходе которых основные РСУБД показали производительность, на два порядка уступающую производительности специализированных программных средств в нескольких прикладных областях:

  • в области управления текстовыми данными (специализированные программные средства от Google, Yahoo и т.д.);
  • в области хранилищ данных (системы с хранением данных по столбцам, такие как Vertica, Monet [Bon02] и т.д.);
  • в области обработки потоковых данных (системы обработки потоковых данных, такие как StreamBase и Coral8);
  • научные базы данных (системы хранения массивов данных, такие как MATLAB и ASAP [SBC+07]).

Эти результаты позволили одному из авторов (по всей видимости, Майклу Стоунбрейкеру) придти к следующим выводам:

  1. РСУБД разрабатывались в расчете на рынок обработки бизнес-данных, и именно эта область является их лакомым куском;
  2. их производительность можно превзойти почти в любой другой области, которая является достаточно широкой для того, чтобы можно было гарантированно окупить тщательную разработку специализированных программных средств.



В данной статье авторы дополняют результаты, представленные в [SBC+07], демонстрируя, что сегодняшние архитектуры РСУБД не подходят даже и для обработки бизнес-данных. Для этого используется методология, аналогичная той, которая применялась в [SBC+07]. Авторами разрабатывается новая СУБД H-Store, предназначенная для OLTP. H-Store уже работает достаточно устойчиво, чтобы позволить сравнить ее производительность с производительностью популярных РСУБД. Результаты экспериментов показывают, что H-Store на эталонном тестовом наборе TPC-C работает в 82 раза быстрее РСУБД.
Поскольку удается превзойти производительность РСУБД почти на два порядка на стандартном тестовом наборе OLTP, не остается рынка, на котором РСУБД являются конкурентоспособными. К этим системам теперь следует относиться, как унаследованной технологии с возрастом более четверти века, следующим шагом по отношению к которой является полное перепроектирование.
Во втором разделе данной статьи обсуждаются архитектурные соображения, которые удалось использовать для достижения упомянутого показателя 82 на тестовом наборе TPC-C. В разд. 3 приводятся характеристики приложений, на поддержку которых ориентировано данное специализированное программное средство. В разд. 4 описываются некоторые детали разработки H-store. В разд. 5 содержатся экспериментальные данные, полученные при прогоне тестового набора TPC-C на H-Store и одной из популярных РСУБД. Наконец, в заключительном шестом разделе статьи приводятся некоторые радикальные предложения по поводу текущих исследовательских задач сообщества баз данных.

Содержание раздела