OLTP в Зазеркалье

         

Аннотация


Системы баз данных, поддерживающие приложения оперативной обработки транзакций (Online Transaction Processing, OLTP), обладают рядом свойств (B-деревья, поддерживаемые во внешней памяти, файлы с неупорядоченными данными, управление параллелизмом на основе блокировок, поддержка многопотокового режима), которые были оптимизированы в конце 1970-х гг. Достижения в областях процессоров, систем основной памяти и сетей привели к тому, что сегодняшние компьютеры чрезвычайно сильно отличаются от компьютеров 30-летней давности, так что многие базы данных OLTP могут теперь размещаться в основной памяти, и большинство OLTP-транзакций может выполняться в пределах миллисекунд или еще быстрее. Однако архитектура систем баз данных практически не изменилась.

Основываясь на этом наблюдении, авторы занимаются поиском интересных вариантов модификации традиционных систем баз данных, которые можно было бы произвести с использованием современных тенденций в области аппаратуры, и размышляют об их эффективности на основе детального (на уровне команд) анализа основных компонентов, входящих в систему баз данных обработки транзакций (Shore), на которой выполняется подмножество тестового набора TPC-C. Авторы не просто профилировали Shore, а постепенно модифицировали эту систему таким образом, что после каждого удаления или оптимизации некоторой возможности получалась более быстрая работающая система, полностью поддерживающая заданную рабочую нагрузку. В общем и целом удалось выявить накладные расходы и оптимизационные приемы, которые объясняют двадцатикратное превосходство Shore над традиционными системами баз данных категории OLTP. Авторы также демонстрируют, что современные (с хранением данных в основной памяти) системы баз данных могут демонстрировать высокую производительность далеко не только за счет отсутствия обменов с дисками; в традиционных системах существенное время тратится на журнализацию, организацию критических участков, блокировки, поддержку B-деревьев и управление буферами основной памяти.



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