Андрей Юрьевич Опарин
Главный специалист по про--л^уЧ^Н граммному обеспечению
ПУ «СургутАСУнефть» ОАО «Сургутнефтегаз», аспирант Сургутского Бр^^И государственного университета, преподаватель курса «Система управления основными данными» магистерской программы базовой кафедры ОАО «Сургутнефтегаз» в Сургутском государственном университете.
ОТЛИЧИТЕЛЬНЫЕ ОСОБЕННОСТИ ТЕХНОЛОГИИ IN-MEMORY DATA MANAGEMENT (IMDM)
Управление жизненным циклом информационных бизнес-систем. Real-Time Enterprise 2.0
Согласно исследованиям EMC 2011 года мировой объем данных увеличивается более чем в два раза каждые 2 года [1]. Впервые оказался нарушен закон Мура, т. е. темпы роста объема данных превысили темпы роста числа транзисторов на кристалле.
Аналогичная ситуация наблюдается на корпоративном уровне. Например, на протяжении последних 15 лет объем данных, регистрируемых в информационных системах ОАО «Сургутнефтегаз», кратно увеличивается каждый год.
При этом все более сложные задачи, требующие хранения и обработки больших объемов информации, ложатся на СУБД общего назначения, что требует новых подходов к построению систем управления данными.
СОСТОЯНИЕ ТЕХНОЛОГИЙ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ И ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ СУБД
Переломным в развитии микропроцессорной техники стал 2000 год — его можно считать годом окончания гонки частот и уменьшения размеров транзисторов. В период с 2000 по 2005 год был достигнут предел тактовых частот на текущих технологиях, а также энергетический барьер и предел параллелизма на уровне команд.
Следствием оказался «технологический кризис», который заставил искать новые решения для повышения производительности вычислительных систем, такие как многоядерные архитектуры, многопроцессорные архитектуры, кластеризация. Кратко рассмотрим эти варианты.
Многоядерность
Современные микропроцессоры содержат от 1 до n ядер. Каждое ядро имеет собственный кэш первого (L1) и второго (L2) уровней. Кэш третьего уровня (L3), общий для всех ядер, первоначально появился как средство взаимодействия между ядрами и равнялся по объему сумме кэшей второго уровня всех ядер. Для непосредственно выполнения команды и данные должны быть в L1 кэше; если процессор их там не находит, происходит загрузка из L2 кэша, который, в свою очередь, загружает данные из L3 кэша. В случае если данных нет в L3 кэше, следует обращение к оперативной памяти. Данный процесс происходит автоматически, и для его оптимизации в современных микропроцессорах применяется множество технологий. Отдельно стоит отметить технологию SmartCache, которая автоматически перераспределяет объем L3 кэша в зависимости от интенсивности работы ядра с данными (интенсивности обращения к ОЗУ по требованию конкретного ядра). С появлением технологии SmartCache объем L3 кэша постоянно растет (до 24 Мб на современных процессорах).
Теоретически, многоядерность выглядит очень перспективной, но на деле оказывается, что размещение множества ядер на одном кристалле приводит к перегреву процессора. Единственный способ побороть этот эффект — снижать тактовую
А.Ю. Опарин. Отличительные особенности технологии У in-memory data management (IMDM) 'V
■ Число транзисторов, тыс. шт.
• Тактовая частота, МГц
• Энергопотребление, Вт
• Степень параллелизма на уровне инструкций
Рис. 1. Число транзисторов, тактовая частота, энергопотребление, степень параллелизма на уровне инструкций
частоту, что, в свою очередь, при решении задач общего назначения приводит к падению быстродействия. Именно поэтому современные серверные процессоры имеют 8-16 ядер, и это предел, дозволенный сегодняшними частотами и сегодняшними технологиями. Т. е. дальнейшее наращивание производительности за счет увеличения количества ядер невозможно.
Многопроцессорность
При размещении нескольких процессоров в одной ЭВМ каждый из них работает полностью независимо; ОЗУ при этом является разделяемым ресурсом. Обращение к ОЗУ происходит через общий для всех процессоров КДП (контроллер доступа к памяти). При активной работе всех процессоров с данными возникает эффект «бутылочного горлышка», когда процессоры и их ядра периодически простаивают в ожидании доступа к ОЗУ.
Управление жизненным циклом информационных бизнес-систем. Real-Time Enterprise 2.0
Процессор
Ядро 1 I Ядро n
32+32 Кб
Кэш первого И Кэш первого уровня ядра 1 щ уровня ядра n
Кэш второго уровня ядра 1
I
Кэш второго уровня ядра n
Кэш третьего уровня (с поддержкой Smart Cache)
Рис. 2. Многоядерные Кластеризация
процессоры и многопроцессорные ЭВМ Идея объединения нескольких ЭВМ в вычислитель-
ный кластер посредством сети и распределения нагрузки между ними возникла и реализуется на практике очень давно. Кластеры позволяют подключать дополнительные вычислительные ресурсы по мере необходимости. Теоретических порогов наращивания производительности кластеров не существует, но когда мы сталкиваемся с необходимостью обработки больших объемов данных, классические вычислительные кластеры теряют все свои плюсы. Сети передачи данных работают кратно медленнее внутренней памяти ЭВМ. Когда требуется обработать сравнительно простые запросы в применении к большим объемам данных, перемещение данных на соответствующий узел кластера занимает больше времени, чем обработка «на месте». Следовательно, для достижения оптимальных результатов данные уже должны находиться на узле кластера в момент обращения к ним. Именно поэтому универсальные кластеры нашли применение в вычислительно сложных задачах при сравнительно небольших объемах данных, т. е. в задачах, где время расчетов кратно превышает время, требуемое на передачу исходных данных по сети.
В условиях «технологического кризиса», когда адекватное росту нагрузки увеличение вычислительных мощностей невозможно, возникает вопрос: насколько эффективно СУБД общего назначения используют возможности современных ЭВМ в условиях действующих предприятий? Объемы информации, которые необходи-
А.Ю. Опарин. Отличительные особенности технологии У in-memory data management (IMDM) 'X
мо обрабатывать, растут ежегодно. Количество параметров, собираемых, например, системами АСУТП ОАО «Сургутнефтегаз», увеличилось за 15 лет с 80 тысяч до 5 миллионов, а средний период их поступления сократился с 30 минут до нескольких секунд (более чем в 7000 раз). В системах электронного документооборота каждые 2 секунды регистрируется новый документ (включая электронные копии). По примерным оценкам в единой информационной системе ОАО «Сургутнефтегаз» регистрируется несколько мегабайт данных каждую секунду 24 часа в сутки 365 дней в году.
Все эти массивы информации хранятся и обрабатываются СУБД общего назначения. Несмотря на то что СУБД работают на современных многоядерных и многопроцессорных серверах, время обработки информации не удовлетворяет запросам бизнеса. Часто возникает ситуация, когда решение определенных задач оказывается возможно лишь частично из-за больших объемов информации.
В 2000-2010 годах Michael Stonebraker с соавторами [2] и еще ряд независимых исследователей опубликовали работы, показывающие несостоятельность современных СУБД и подходов 1970-х годов, которые в них до сих пор действуют. Также была показана неэффективность современных СУБД при работе с большими массивами данных и использования современных ЭВМ на архитектуре х8б. Запросы с полным перебором на больших массивах простых данных (массив целых чисел) на алгоритмических языках низкого уровня работают в сотни и тысячи раз быстрее аналогичных запросов в современных СУБД общего назначения.
ПУТИ РЕШЕНИЯ ПРОБЛЕМ ОБРАБОТКИ БОЛЬШИХ ОБЪЕМОВ ДАННЫХ
Одним из способов справиться с обработкой больших объемов данных стали интернет-технологии — например, модель вычислений MapReduce. Что же делать на уровне корпораций, когда для решения прикладных задач необходимы СУБД общего назначения? Все исследователи единогласно пришли к выводу о том, что возможности современных корпоративных ИС ныне ограничивает именно универсальность СУБД. Необходимо искать новые подходы к программной реализации СУБД общего назначения, максимально учитывающие возможности и ограничения архитектуры современных ЭВМ.
СУБД в ОЗУ
В 200б году Jim Gray [3] представил доклад, в котором привел анализ всех типов внешней памяти ЭВМ. В данном докладе он показал, что стоимость 1 Кб ОЗУ, будучи в 100 раз выше стоимости 1 Кб дисковой памяти в какой-либо момент времени, примерно через 10 лет сравнивается с ней. При этом ОЗУ от 1000 до 10000 раз быстрее дисковых накопителей и всего в 100 раз медленнее L3 кэша процессора.
Управление жизненным циклом информационных бизнес-систем. Real-Time Enterprise 2.0
Рис. 3. Стоимость накопителей за период с 1975 по 2006 год
Jim Gray пришел к выводам:
1. Чтобы оптимально нагрузить процессор, данные должны находиться в кэше.
2. Обращения к ОЗУ должны быть оптимизированы за счет применения «особенных» структур данных и алгоритмов.
3. Становятся возможными СУБД в оперативной памяти.
Поколоночное (column) хранение
Основной эффект in-memory технологии дают благодаря применению поко-лоночного хранения данных. При поколоночном хранении данные одной колонки последовательно располагаются в ОЗУ. Большинство запросов в СУБД направлены на атомарные операции с отдельными колонками; при этом они (колонки) однородны, а значит, к ним применимы векторные операции современных процессоров, что позволяет оптимально использовать кэш процессора и нагружать ядра и процессоры по максимуму.
Сжатие данных
Все данные одной колонки относятся к одному типу. Это означает, что к ним можно эффективно применить алгоритмы сжатия. При этом выбираются «легкие» алгоритмы, не требующие предварительной распаковки до обращения к данным. Применение специальных алгоритмов позволяет сжать данные в 10 и более раз. Это позволяет не только эффективно использовать ОЗУ, снижая разницу в стоимости RAM и Disk от 100:1 до 10:1 (для систем в целом иногда до 1:1 и даже 1:п), но и загрузить данные в кэш процессора за меньшее количество шагов. Отдельная колонка или таблица может быть целиком размещена в L3 кэше!
А.Ю. Опарин. Отличительные особенности технологии S in-memory data management (IMDM) 'V
Таблица
Страна Продукт Продано
Строка 1 Индия Шоколад 1000
Строка 2 Индия Мороженое 2000
Строка 3 Германия Шоколад 4000
Строка 4 США Макароны 1000
Построчное хранение Поколоночное хранение
Индия Индия
Строка 1 Шоколад Страна Индия
1000 Германия
Индия США
Строка 2 Мороженое Шоколад
2000 Германия Продукт Мороженое Шоколад
Строка 3 Шоколад Макароны
4000 1000
Строка 4 США Макароны Продано 2000 4000
1000 1000
Разбиение данных
Рис. 4. Построчное и по-колоночное хранение
Распараллеливание на уровне данных обеспечивает практически линейный рост производительности с увеличением количества ядер, процессоров и узлов кластера. Но применение кластеров требует, чтобы данные уже находились на узле кластера в момент обращения к ним. Для этого необходимо конфигурировать кластер заранее, а данные размещать на соответствующем узле в момент их поступления. Простые алгоритмы распределения данных между узлами кластера по мере их поступления, а также возможность установить способ распределения данных в кластере индивидуально для каждой таблицы позволяют эффективно задействовать все узлы кластера.
Управление жизненным циклом информационных бизнес-систем. Real-Time Enterprise 2.0
ЗАКЛЮЧЕНИЕ
Применение поколоночного хранения данных в сочетании с «легкими» алгоритмами сжатия и разбиением данных по узлам кластера дает возможность использовать полностью in-memory СУБД, в которых Flash-диски и жесткие диски используются исключительно как резервное хранилище. Быстродействие таких СУБД в тысячи раз выше классических СУБД за счет эффективного использования всех возможностей архитектуры современных ЭВМ. Эффективная организация данных в оперативной памяти позволяет с большей отдачей задействовать доступные вычислительные ресурсы в задачах обработки больших массивов данных и открывает новые возможности для корпоративных информационных систем.
ЛИТЕРАТУРА
1. Extracting Value from Chaos [Электронный ресурс]. — http://www.emc.com/ collateral/analyst-reports/idc-extracting-value-from-chaos-ar.pdf (дата обращения: 12.03.2014).
2. The End of an Architectural Era (It’s Time for a Complete Rewrite) [Электронный ресурс]. — http://nms.csail.mit.edu/~stavros/pubs/hstore.pdf (дата обращения: 12.03.2014).
3. Tape is Dead Disk is Tape Flash is Disk Ram Locality is King [Электронный ресурс]. — http://www.docme.ru/doc/372722/tape-is-dead-disk-is-tape-flash-is-disk-ram-locality-is-king (дата обращения: 12.03.2014).
4. Plattner H. A Course in In-Memory Data Management: The Inner Mechanics of InMemory Databases // Springer Heidelberg, 2013.
5. Plattner H. A Common Database Approach for OLTP and OLAP Using an In-Memory Column Database/ed. by U. Cetintemel, S. Zdonik, D. Kossmann. — SIGMOD Conference. ACM, New York, 2009.