Оригинал: Stavros Harizopoulos, Daniel J. Abadi, Samuel Madden, Michael Stonebraker. OLTP Through the Looking Glass, and What We Found There, Proceedings of the ACM SIGMOD International Conference on Management of Data, Vancouver, BC, Canada, June 2008
В статье, пересказ которой предлагается вашему вниманию, развивается тема, начатая авторами в статье Конец архитектурной эпохи, или Наступило время полностью переписывать системы управления данными, опубликованной в начале осени 2007 г. Напомню, что в этой статье речь шла о необходимости применения новых подходов для построения систем управления данных, обеспечивающих высокую эффективность в конкретных областях использования. В том числе, описывались основные черты исследовательской системы H-Store, которая продемонстрировала на тестовом наборе TPC-C производительность, превосходящую на два десятичных порядка производительность одной из ведущих SQL-ориентированных СУБД.
В данной статье, фактически, объясняется, почему в H-Store удалось добиться такой производительности. Авторы взяли не очень известную систему Shore с открытыми исходными текстами, сконфигурировали ее таким образом, чтобы требуемая для их экспериментов база данных полностью помещалась в основной памяти, и измерили производительность полученной системы базы данных на смеси двух транзакций из тестового набора TPC-C. Затем они последовательно стали удалять из состава Shore компоненты журнализации, синхронизации и управления буферным пулом, и в результате получили вариант системы с ограниченной функциональностью, которая показала на том же тестовом наборе производительность, в 20 раз большую, чем у исходной Shore.
Статья кажется мне очень интересной, поскольку, во-первых, в ней приводятся численные характеристики накладных расходов, порождаемых различными компонентами традиционных СУБД при выполнении рабочей нагрузки категории OLTP. Во-вторых, и это должно быть особенно интересно для молодежи, в статье описывается архитектура СУБД, которая, хотя и является традиционной, довольно сильно отличается от архитектуры систем, происходящих от System R. Наконец, чрезвычайно занимательны выводы авторов статьи относительно исследований, которые требуются для построения систем баз данных OLTP нового поколения.
Я постарался обеспечить в списке литературы ссылки на открытые источники почти всех содержащихся в нем статей. Хочу заметить, что список литературы очень качественный. Рекомендую им воспользоваться для дополнительного самообразования.
Сергей Кузнецов
Аннотация
Системы баз данных, поддерживающие приложения оперативной обработки транзакций (Online Transaction Processing, OLTP), обладают рядом свойств (B-деревья, поддерживаемые во внешней памяти, файлы с неупорядоченными данными, управление параллелизмом на основе блокировок, поддержка многопотокового режима), которые были оптимизированы в конце 1970-х гг. Достижения в областях процессоров, систем основной памяти и сетей привели к тому, что сегодняшние компьютеры чрезвычайно сильно отличаются от компьютеров 30-летней давности, так что многие базы данных OLTP могут теперь размещаться в основной памяти, и большинство OLTP-транзакций может выполняться в пределах миллисекунд или еще быстрее. Однако архитектура систем баз данных практически не изменилась.
Основываясь на этом наблюдении, авторы занимаются поиском интересных вариантов модификации традиционных систем баз данных, которые можно было бы произвести с использованием современных тенденций в области аппаратуры, и размышляют об их эффективности на основе детального (на уровне команд) анализа основных компонентов, входящих в систему баз данных обработки транзакций (Shore), на которой выполняется подмножество тестового набора TPC-C. Авторы не просто профилировали Shore, а постепенно модифицировали эту систему таким образом, что после каждого удаления или оптимизации некоторой возможности получалась более быстрая работающая система, полностью поддерживающая заданную рабочую нагрузку. В общем и целом удалось выявить накладные расходы и оптимизационные приемы, которые объясняют двадцатикратное превосходство Shore над традиционными системами баз данных категории OLTP. Авторы также демонстрируют, что современные (с хранением данных в основной памяти) системы баз данных могут демонстрировать высокую производительность далеко не только за счет отсутствия обменов с дисками; в традиционных системах существенное время тратится на журнализацию, организацию критических участков, блокировки, поддержку B-деревьев и управление буферами основной памяти.