Изучение функций Oracle In-Memory и SQL in Silicon в процессоре M7
СХД, СРК СХД, СРК

Одной из существенных инноваций процессора M7 является возможность переноса части SQL-логики на специальные сопроцессоры DAX (Data Analytics Accelerator). Эта технология получила название SQL in Silicon.

Главная>СХД, СРК>Изучение Oracle In-Memory и SQL in Silicon
СХД, СРК Обзор

Изучение Oracle In-Memory и SQL in Silicon

Дата публикации:
04.07.2016
Посетителей:
456
Просмотров:
387
Время просмотра:
2.3

Авторы

Автор
Алексей Струченко Руководитель группы оптимизации СУБД и приложений компании «Инфосистемы Джет»
Одной из существенных инноваций процессора M7 является возможность переноса части SQL-логики на специальные сопроцессоры DAX (Data Analytics Accelerator). Эта технология получила название SQL in Silicon. На сегодняшний день доступ к DAX открыт для разработчиков через специальные библиотеки, а база данных Oracle использует эту технологию для ускорения работы Database In-Memory в версии 12c. Отметим, что Database In-Memory – одна из самых обсуждаемых опций новой версии Oracle Database 12c. Несколько слов о том, что она из себя представляет.

 

 

Традиционные базы (в том числе Oracle Database) используют строчное хранение данных (Row Database) как в памяти, так и на дисках. Принято считать, что такое хранение оптимально для транзакционных систем класса OLTP, а вот в хранилищах класса DWH определенные аналитические запросы могут работать гораздо быстрее при колоночном хранении. Базы данных, реализующие такое хранение (Columnar Database), достаточно активно развиваются, в том числе в направлении колоночного хранения в памяти.

 

Появившаяся в Oracle Database 12c опция Database In-Memory реализует колоночное хранение данных в памяти дополнительно к традиционному строчному хранению. Такое хранение возможно благодаря специальной области памяти, в которой администратор Oracle Database может кэшировать данные как целых таблиц, так и отдельных колонок либо партиций в колоночном формате. Эти данные поднимаются в In-Memory кэш при старте экземпляра Oracle и затем поддерживаются в консистентном состоянии с данными обычного буферного кэша Oracle и с данными на дисках.

Такое дополнительное колоночное хранение данных в памяти является прозрачным для приложения, при этом у оптимизатора Oracle появляется возможность выбора из памяти нужных данных как в строчном, так и в колоночном представлении. То есть в Oracle Database реализовано уникальное сочетание строчного и колоночного хранения данных в памяти.

 

При этом опция In-Memory – это не просто работа с данными в памяти в новом для Oracle колоночном формате, это еще и новые математические подходы: доработанные алгоритмы сжатия, механизмы быстрого определения минимальных и максимальных значений, Bloom фильтры. В результате использование In-Memory в ряде случаев может приводить к серьезному ускорению SQL-запросов (прежде всего аналитических).

При построении хранилищ и витрин данных мы регулярно применяем «шинный» подход к архитектуре, при котором одни и те же справочники используются для разных витрин и разрезов данных. Использование In-Memory для таких справочников позволит значительно ускорить работу бизнес-приложений, в том числе аналитических систем. Например, в банковском секторе скорость и качество обслуживания клиентов во многом зависят от доступности сервисов – от скорости предоставления информации, будь то выписка по счету, список уже приобретенных клиентом услуг или консультации по новым продуктам. Применение In-Memory гарантирует оперативные предоставление и анализ требуемых данных.

Мы неоднократно знакомили оракловое сообщество с результатами, полученными в наших тестированиях работы In-Memory, в частности, мы разработали методику, эмулирующую работу систем класса DWH. В таблицу базы данных Oracle были сложены случайным образом сгенерированные данные о жителях Европы и их зарплатах, а роль аналитика эмулировал запрос, считающий сумму всех зарплат жителей конкретной европейской страны.

 

На этом запросе нам удалось получить ускорение в сотни и даже тысячи раз при чтении данных из In-Memory кэша в сравнении с чтением данных с дисков. При этом по сравнению с чтением из буферного кэша чтение из кэша In-Memory оказалось быстрее почти в 4 раза (0,51 секунды против 1,9 секунды). Результат значительного ускорения по сравнению с чтением с дисков очевиден, а вот 4-кратное ускорение по сравнению со строчным форматом, на наш взгляд, является заслугой заложенных в In-Memory математических подходов. Этот результат демонстрирует Print Screen из Enterprise Manager, приведенный на рис. 1. Для исследования работы In-Memory мы использовали хинт оптимизатора /* +no_inmemory(имя_таблицы) */, в явном виде запрещающий оптимизатору Oracle использовать In-Memory кэш.

 

 

Enterprise Manager: демонстрация работы In-Memory
Рисунок 1. Enterprise Manager: демонстрация работы In-Memory

 

Поскольку заложенная Oracle в новые процессоры SPARC M7 технология SQL in Silicon на сегодняшний день может ускорять работу именно In-Memory, важной частью тестирования серверов T7-2 стала проверка на них работы опции In-Memory по уже отлаженной методике (в ее основе лежит аналитический запрос, считающий суммарную зарплату).

 

Для таких тестов крайне важно было научиться явно включать возможности сопроцессора DAX на уровне как OS (соответствующие патчи Solaris), так и Oracle Database (специальный параметр экземпляра), а также правильно мониторить работу DAX. Команда busstat вполне адекватно показывает участие сопроцессоров DAX в работе основного процессора с точки зрения OS: на рис. 2 и 3 приведены выводы команды busstat в сравнении с выключенным и включенным параметром экземпляра.

 

Вывод busstat с отключенным DAX
Рисунок 2. Вывод busstat с отключенным DAX

 

Вывод busstat с включенным DAX
Рисунок 3. Вывод busstat с включенным DAX

 

Итак, запрос, суммирующий зарплату жителей всех европейских стран на букву R (Россия и Румыния), в наших тестах показал 1,95 секунды при традиционной работе Oracle Database и 0,51 секунды при настройке опции In-Memory и поднятии части данных (колонка с зарплатой) в специальный In-Memory кэш. Включение дополнительных возможностей сопроцессоров DAX (SQL in Silicon) дало результат 0,39 секунды, т.е. дополнительное ускорение на 30% сверх 4-кратного ускорения в In-Memory. Эти результаты сведены в табл. 1.

 

Табл. 1. Ускорение работы In - Memory с помощью сопроцессора DAX

 

Работа запроса

Время исполнения, сек

OS: busstat -w dax

без In-Memory (обычный кеш)

1,95

0

с In-Memory и выключенным DAX

0,51

0 (Рис.2)

с In-Memory и включенным DAX

0,39

Восемь строк >0 (Рис.3 )

 

Много это или мало? С одной стороны, параллельно исследованию SQL in Silicon мы провели тестирование работы сопроцессоров DAX с помощью специально созданного приложения. Это приложение использовало DAX напрямую (через открытые Oracle библиотеки) и показало ускорение в 4–6 раз стандартных математических операций по преобразованию множеств. На фоне этого ускорение работы In-Memory выглядит скромнее. С другой стороны, работа опции In-Memory сама по себе достаточно оптимизирована, и ускорение в 4 раза по сравнению с буферным кэшем наглядно это подтверждает.

 

Тем не менее вполне возможно, что продуктивные аналитические запросы наших заказчиков смогут ускориться за счет DAX более существенно, поэтому технология SQL in Silicon заслуживает тщательного тестирования на реальных данных реальными аналитическими запросами.

Уведомления об обновлении тем – в вашей почте

Защита систем дистанционного банковского обслуживания на базе решения Oracle Adaptive Access Manager

Информатизация практически всех банковских услуг и консолидация управления счетами в одном бизнес-приложении, доступ к которому осуществляется через интернет, определили рост объемов операций, совершаемых через сервисы удаленного обслуживания. При этом критичным фактором защищенности операций ДБО стал показатель безопасности среды выполнения платежных транзакций.

Современные технологии создания программного обеспечения (обзор)

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

Автоматизация программ лояльности и маркетинга компании «Рив Гош»

Компании «Рив Гош», «Инфосистемы Джет» и представительство Oracle завершили проект по автоматизации программ лояльности и маркетинга на основе решений Oracle Siebel CRM и Oracle BI. Проект охватил более 220 магазинов «Рив Гош» по всей России – от Калининграда до Петропавловска-Камчатского.

М.Видео. Аутсорсинг Oracle Siebel CRM

С 2005 года компанияИнфосистемы Джет является партнером М.Видео по обслуживанию ИТ-инфраструктуры. В 2008 году, после внедрения системы управления взаимоотношениями с клиентами Oracle Siebel CRM Loyalty, руководство ритейлера приняло решение передать на аутсорсинг эксплуатацию данной бизнес-системы вместе с программно-аппаратной базой, на которой она была развернута.

О Сервисном центре от первого лица

Российский рынок ИТ-услуг продолжает динамично развиваться. Возникают новые тренды, смещаются акценты, компании все чаще начинают смотреть в сторону аутсорсинга бизнес систем. Все это время активным участником и одним из законодателей тенденций рынка являлась компания "Инфосистемы Джет".

MDM помогает управлять информацией

Все чаще среди ИТ-специалистов и бизнес-пользователей информационных систем звучит аббревиатура MDM (Master Data Management).

Интеграционные решения Oracle: обзор важнейших направлений

Когда речь заходит об интеграции, в голове обычного представителя ИТ-профессии начинает проноситься куча понятий: сервисы, шина данных, единый интерфейс, консолидация данных, сквозные процессы, единая точка входа и т.д.

Отчитаться на раз

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

На чем стоим

Реализация вычислительного комплекса, сочетающего в себе оперативность, гибкость и надежность предоставляемых ИТ-сервисов, была непростой задачей

Спасибо!
Вы подписались на обновления наших статей
Предложить
авторский материал






    Спасибо!
    Вы подписались на обновления наших статей
    Подписаться
    на тему



      Выберите тему





      Спасибо!
      Вы подписались на обновления наших статей
      Оформить
      подписку на журнал








        Спасибо!
        Вы подписались на обновления наших статей
        Оформить
        подписку на новости








          Спасибо!
          Вы подписались на обновления наших статей
          Задать вопрос
          редактору









            Оставить заявку

            Мы всегда рады ответить на любые Ваши вопросы

            * Обязательные поля для заполнения

            Спасибо!

            Благодарим за обращение. Ваша заявка принята

            Наш специалист свяжется с Вами в течение рабочего дня