Вы находитесь на странице: 1из 4

Перевод: английский - русский - www.onlinedoctranslator.

com

Современные системы баз данных основной памяти

Автор: Пер°-Аке Ларсон, Джастин Левандоски


Microsoft Research palarson@acm.org , justin.levandoski@microsoft.com

АБСТРАКТНЫЙ

В этой статье представлен обзор последних разработок в области систем баз данных с основной памятью. С ростом
объема памяти и снижением стоимости памяти в 10 раз каждые 5 лет данные, имеющие «основной дом» в памяти,
теперь стали реальностью. Базы данных в основной памяти избегают многих традиционных архитектурных принципов
систем реляционных баз данных, которые оптимизированы для данных, находящихся на диске.
Инновационные подходы к таким фундаментальным вопросам, как управление параллелизмом и обработка запросов,
необходимы для раскрытия полного потенциала производительности баз данных в оперативной памяти. Статья посвящена
вопросам проектирования и выбора архитектуры, которые необходимо сделать при построении высокопроизводительной
системы баз данных, оптимизированной для оперативной памяти: хранение и индексирование данных, контроль параллелизма,
методы устойчивости и восстановления, обработка запросов и компиляция, поддержка высокой доступности, и способность
поддерживать гибридные транзакционные и аналитические рабочие нагрузки. Это будет проиллюстрировано примерами
решений, взятых из четырех современных систем: HStore/VoltDB, Hekaton, HyPeR и SAP HANA. В статье также будут освещены
текущие и будущие направления исследований.

1. ОБЗОР
За последние несколько лет известные исследовательские системы, такие как H-Store [4] и HyPer [5], вдохнули новую жизнь в исследования основной памяти и многоядерной обработки данных. У

большинства крупных поставщиков баз данных сейчас есть решения для баз данных в оперативной памяти, такие как SAP HANA [15] и Microsoft SQL Server Hekaton [2]. Кроме того, ряд стартапов, таких

как VoltDB [16] и MemSQL, заняли свою нишу среди поставщиков баз данных. Это первое поколение исследовательских и производственных систем предлагает очень интересный спектр вариантов

дизайна и реализации, которые обеспечивают высокую производительность при работе с данными, привязанными к памяти. В этой статье представлен обзор современного состояния систем с

основной памятью. Организация статьи следующая. Мы начнем с обзора истории и тенденций в системах баз данных с оперативной памятью. Основная часть статьи посвящена ряду вопросов и

архитектурных решений, которые необходимо сделать при построении базы данных, оптимизированной для памяти, с акцентом на новых опубликованных работах в каждой области. Мы опишем эти

темы ниже. Разрешение на изготовление цифровых или печатных копий всей или части этой работы для личного использования или использования в классе предоставляется бесплатно при условии,

что копии не изготавливаются и не распространяются с целью получения прибыли или коммерческой выгоды, и что на копиях есть это уведомление и полная цитата на первой странице. . Чтобы

копировать иным образом, переиздавать, размещать на серверах или распространять в списках, требуется предварительное специальное разрешение и/или плата. Статьи из этого тома были

приглашены для представления своих результатов на 42-й Международной конференции по очень большим базам данных, сентябрь 2016 г., Нью-Дели, Индия. Труды фонда VLDB, Vol. 9, № 13

сосредоточив внимание на новых опубликованных работах в каждой области. Мы опишем эти темы ниже. Разрешение на изготовление цифровых или печатных копий всей или части этой работы для

личного использования или использования в классе предоставляется бесплатно при условии, что копии не изготавливаются и не распространяются с целью получения прибыли или коммерческой

выгоды, и что на копиях есть это уведомление и полная цитата на первой странице. . Чтобы копировать иным образом, переиздавать, размещать на серверах или распространять в списках, требуется

предварительное специальное разрешение и/или плата. Статьи из этого тома были приглашены для представления своих результатов на 42-й Международной конференции по очень большим базам

данных, сентябрь 2016 г., Нью-Дели, Индия. Труды фонда VLDB, Vol. 9, № 13 сосредоточив внимание на новых опубликованных работах в каждой области. Мы опишем эти темы ниже. Разрешение на

изготовление цифровых или печатных копий всей или части этой работы для личного использования или использования в классе предоставляется бесплатно при условии, что копии не

изготавливаются и не распространяются с целью получения прибыли или коммерческой выгоды, и что на копиях есть это уведомление и полная цитата на первой странице. . Чтобы копировать иным образом, переиздавать, размеща

1.1 История и тенденции


В этой части статьи представлен краткий обзор более ранних исследований (до 2005 г.) баз данных с оперативной памятью и
тенденций, которые привели к нынешнему возрождению систем баз данных с оперативной памятью. Мы охватываем ранние
исследовательские системы, такие как MM-DBMS из Университета Висконсина [8], вплоть до ранних производственных систем,
таких как P*Time [1], которые являются предшественниками современных основных механизмов памяти.

1.2 Проблемы и архитектурные тенденции

В этом разделе кратко представлены ключевые вопросы и варианты архитектуры, которые необходимо решить при
построении системы баз данных в оперативной памяти. Затем каждый вопрос будет рассмотрен более подробно, как
указано в подразделах ниже.

1.2.1 Хранение данных в памяти

1
Эта проблема связана с тем, как записи базы данных представлены в памяти. Базы данных в основной памяти не ограничены
форматами на диске и могут хранить данные в формате, наиболее подходящем для достижения целей производительности и
проектирования системы. Одной из репрезентативных тенденций в этой области является отказ от кластеризации записей в
соответствии с первичным индексом, как это часто делается в реляционных системах на основе дисков. Например, Hekaton
предпочитает хранить отдельные записи в памяти в формате, ориентированном на строки, где один или несколько индексов
указывают на запись в памяти. В качестве другого примера HANA хранит данные как в формате строк, так и в формате столбцов,
чтобы поддерживать рабочие нагрузки в стиле OLTP и OLAP.

1.2.2 Проектирование индексации и структуры данных


Современные системы с оперативной памятью вызвали новый интерес к высокопроизводительным методам
индексирования. В то время как эффективность кэш-памяти (давняя проблема исследования) остается важной [9],
многоядерная масштабируемость и поддержка NUMA стали не менее важными. Сегодня базы данных в оперативной
памяти работают на процессорах с ошеломляющим уровнем параллелизма, и с каждым поколением процессоров число
ядер увеличивается еще больше. Внимание к параллелизму особенно важно для OLTP-систем, поскольку индексация —
это быстрый путь для обновлений и поиска.
На самом деле многоядерная масштабируемость выходит за рамки индексирования всех критически важных структур данных в системе

(например, таблицы транзакций, журналов устойчивости и т. д.). Как мы увидим, системы с основной памятью обеспечивают

многоядерную масштабируемость несколькими способами. Некоторые разбивают систему (назначая поток для каждого раздела) [4], в то

время как другие используют высокопараллельные структуры данных «без защелок» [10].

1.2.3 Управление параллелизмом


Базы данных в основной памяти, работающие на современном оборудовании, должны поддерживать
высокий уровень реального параллелизма при сохранении согласованности транзакций. Многие системы
нацелены на улучшение пропускной способности и задержки на порядок по сравнению с дисковыми
архитектурами. Это достигается за счет использования новых подходов к управлению параллелизмом.
Большинство современных систем больше не полагаются на «пессимистическую» двухфазную
блокировку, которая блокирует потоки в случае конфликта. Вместо этого был предложен ряд новых
подходов, позволяющих разблокировать высокий параллелизм на уровне потоков, доступный в
современных ЦП. В идеале эти методы никогда не будут блокировать считыватели и не будут
ограничивать длительные транзакции чтения, при этом поддерживая все уровни изоляции ANSI.
Современные системы с основной памятью сильно различаются по методам управления параллелизмом.

1.2.4 Долговечность и восстановление


Энергонезависимая оперативная память является основным хранилищем данных в системах с основной памятью. Тем не менее, база

данных должна по-прежнему обеспечивать надежность и гарантии восстановления в случае отключения или сбоя системы (D в ACID).

Использование ведения журнала и восстановления в стиле ARIES редко используется в современных системах с оперативной памятью из-

за снижения производительности. Вместо этого они используют новые методы устойчивости, которые оптимизируют производительность

на критическом пути транзакций [2, 11].

1.2.5 Обработка запросов и компиляция


Поскольку системы с оперативной памятью больше не страдают от длительных узких мест ввода-вывода на основном пути обработки,

традиционные методы обработки запросов, такие как интерпретация и модель итератора, становятся большими накладными расходами.

В идеале обработка запросов в системах с оперативной памятью полностью исключает эти накладные расходы. Поскольку данные

находятся в памяти, при обработке запросов необходимо максимально избегать косвенного обращения. Несколько современных систем с

оперативной памятью достигают производительности за счет компиляции запросов и хранимых процедур непосредственно в машинный

код [3, 13].

1.2.6 Поддержка аналитики в реальном времени

Современные конвейеры бизнес-аналитики нацелены на выполнение запросов в стиле OLAP к представлению операционных данных в

режиме реального времени (в стиле OLTP). Базы данных в оперативной памяти становятся де-факто действующими

2
хранилища данных для обработки рабочих нагрузок OLTP, важно, чтобы они соответствовали конвейеру аналитики в реальном
времени. Как правило, современные системы с оперативной памятью поддерживают аналитику в реальном времени в двух
формах. Такие системы, как HyPeR и HANA, поддерживают рабочие нагрузки в стиле OLTP и OLAP в одном механизме. Другие
системы, такие как Hekaton, реализуют высокопроизводительный конвейер для аналитического механизма (например,
механизма columnstore) [6].

1.2.7 Высокая доступность


Многие системы с основной памятью используются в критических ситуациях с высокой производительностью. Это требует поддержки высокой

доступности и аварийного переключения на «горячие» резервы. Большинство рассматриваемых нами систем в той или иной форме поддерживают

высокую доступность. Например, H-Store/VoltDB естественным образом реплицирует свои данные на K разных серверов для достижения k-

безопасности [16]. Hekaton полагается на решение высокой доступности SQL Servers AlwaysOn для отправки журнала повторного выполнения на

вторичные отказоустойчивые серверы [2].

1.2.8 Кластеризация и распределение


Основной архитектурный выбор заключается в том, будет ли система работать распределенным образом или нет. Такие
системы, как H-Store/VoltDB, созданы с нуля для работы на кластере машин без общего доступа и обработки большей нагрузки за
счет масштабирования. Между тем, такие системы, как HyPeR, Hekaton и HANA, созданы для работы на отдельных машинах и
могут масштабироваться до более крупных многопроцессорных машин с большой оперативной памятью (в настоящее время
размером в терабайты), а HyPer недавно обеспечил масштабирование на стороне OLAP. 12]. Для этого архитектурного выбора
нет правильного ответа, но этот выбор влияет на многие подходы к достижению высокой производительности, от обработки
запросов до управления параллелизмом.

1.3 Активные исследования и будущие направления

Статья завершается обзором текущих и перспективных направлений исследований. Темы в этой части будут охватывать
управление холодными данными (что делать с редко используемыми данными), использование энергонезависимой
оперативной памяти, аппаратной транзакционной памяти и аппаратного ускорения.

2. ССЫЛКИ
[1] С.К. Ча и С. Сонг. P*TIME: масштабируемая СУБД OLTP для управления потоковыми рабочими нагрузками с интенсивным
обновлением. В VLDB, страницы 1033–1044, 2004 г.
[2] C. Diaconu и соавт. Hekaton: механизм OLTP для SQL Server, оптимизированный для памяти. В SIGMOD, страницы 1243–1254,
2013 г.
[3] К. Фридман, Э. Исмерт и П. Ларсон. Компиляция в Microsoft SQL Server Hekaton Engine. Бюллетень
IEEE Data Engineering, 37(1):22–30, 2014 г.
[4] Р. Каллман и др. H-store: высокопроизводительная распределенная система обработки транзакций в
основной памяти. ПВЛДБ, 1(2):1496–1499, 2008.
[5] А. Кемпер и Т. Нейманн. HyPer: гибридная система баз данных основной памяти OLTP и OLAP, основанная на моментальных
снимках виртуальной памяти. В ICDE, страницы 195–206, 2011 г.
[6] П. Ларсон, А. Бирка, Э. Н. Хэнсон, В. Хуанг, М. Новакевич и В. Пападимос. Аналитическая обработка в
реальном времени с помощью SQL Server. ПВЛДБ, 8(12):1740–1751, 2015.
[7] П. Ларсон, С. Бланас, К. Дьякону, К. Фридман, Дж. М. Патель и М. Цвиллинг. Высокопроизводительные
механизмы управления параллелизмом для баз данных в основной памяти. ПВЛДБ, 5(4):298–309, 2011.
[8] Т. Дж. Леман и М. Дж. Кэри. Обработка запросов в системах управления базами данных с оперативной памятью. В
ICDE, страницы 239–250, 1986 г.
[9] В. Лейс, А. Кемпер и Т. Нейманн. Адаптивное базисное дерево: индексирование ARTful для баз данных в основной
памяти. В ICDE, страницы 38–49, 2013 г.
[10] Дж. Левандоски, Д.Б. Ломет и С. Сенгупта. Bw-дерево: B-дерево для новых аппаратных платформ. В
ICDE, страницы 302–313, 2013 г.
[11] Н. Мальвия, А. Вайсберг, С. Мэдден и М. Стоунбрейкер. Переосмысление восстановления основной памяти
OLTP. В ICDE, страницы 604–615, 2014 г.

3
[12] Т. Мюльбауэр, В. Родигер, А. Райзер, А. Кемпер и Т. Нойманн. ScyPer: эластичная пропускная способность
OLAP для транзакционных данных. В ДанаК, 2013.
[13] Т. Нейманн. Эффективное составление эффективных планов запросов для современного оборудования. ПВЛДБ, 4(9):539–
550, 2011.
[14] Т. Нейманн, Т. Мюльбауэр и А. Кемпер. Быстрый сериализуемый многоверсионный контроль параллелизма для
систем баз данных в основной памяти. В SIGMOD, страницы 677–689, 2015 г.
[15] В. Сикка, Ф. Фарбер, В. Ленер, С. К. Ча, Т. Пех и К. Борнховд. Эффективная обработка транзакций в базе
данных SAP HANA: конец мифа о столбцовом хранилище. В SIGMOD, страницы 731–742, 2012 г.
[16] М. Стоунбрейкер и А. Вайсберг. СУБД оперативной памяти VoltDB. Бюллетень IEEE Data Engineering,
36(2):21–27, 2013. 1610

Источник: Foundations and Trends® in Databases > Vol 8 > Issue 1-2
Интернет-ISSN: 1931-7891
Всего: 11846 знаков

Вам также может понравиться