Exadata Software
Рис. 1 – Архитектура Exadata.
Первой ключевой особенностью Exadata Software является Offloading или Smart Scan – возможность переноса части SQL-логики на уровень серверов хранения. Можно сказать, что Exadata включает в себя систему хранения данных, как бы «понимающую SQL».
Для объяснения процесса Offloading рассмотрим идеальную модель – пусть перед базой данных Oracle стоит задача прочитать миллиард блоков, обработать их и в результате обработки вернуть несколько строк. Традиционная архитектура справляется с этой задачей следующим образом – дисковые массивы читают миллиард блоков, передают их по сети на сервер баз данных, который обрабатывает эти блоки (как правило, в памяти) и выбирает нужные строки. Архитектура Exadata будет решать эту задачу по-другому (если конечно оптимизатор Oracle сочтет способ Offloading более эффективным) – серверы хранения будут параллельно обрабатывать миллиард блоков и посылать по сети отобранные строки на серверы баз данных. Если в системе есть задачи, похожие на эту идеальную модель (как правило, это тяжелые аналитические запросы в хранилищах класса DWH), то Exadata обещает значительный выигрыш в производительности.
Вторая важная особенность Exadata Software – специальный механизм сжатия Exadata Hybrid Column Compression. Здесь ключевое слово Column – данные сжимаются поколоночно, за счет чего достигается более высокая степень компрессии, чем при традиционном механизме сжатия Oracle (т.н. Basic). Этот механизм реализован в виде двух различных алгоритмов сжатия – Query Low/High (для часто используемых данных) и Archive Low/High (для редко используемых, архивных данных). На Oracle Open World 2010 были представлены результаты по компрессии баз данных турецкого Телеком-оператора Turkcell – согласно презентации, при миграции данных в Exadata различными способами удалось получить общее сжатие в 10 раз за счет Exadata Hybrid Column Compression. Нам практически удалось повторить этот впечатляющий результат для данных DWH-хранилища одного из наших заказчиков (Телеком). Большинство таблиц этого хранилища изначально были сжаты традиционным механизмом Basic в 2-2.5 раза – поверх этого данные были сжаты еще в 3.35 раза Exadata алгоритмом Query High, что дает общую степень компрессии в 6.7-8.3 раза!
И наконец, рассмотрим задачи, хорошо известные специалистам по оптимизации Oracle – задачи, в которых существуют критичные объекты по вводу-выводу (подобные задачи встречаются как среди систем OLTP, так и среди хранилищ). Серверы хранения в Exadata обладают собственным флеш-кэшем – Exadata Smart Flash Cache размером 384Гб. Комбинируя различные способы использования этого кэша (как кэш сервера хранения либо как дополнительные быстрые диски), можно добиться ускорения ввода-вывода для конкретных объектов базы данных и тем самым значительно повысить производительность системы в целом.
Принципы лицензирования Exadata
В Таб. 1 приведены различные конфигурации Exadata. В частности, в X2-2 Quarter Rack (конфигурация, развернутая в наших демо-центрах) входит 2 Database Server (всего 24 ядра Intel Xeon) и 3 Exadata Storage Server (всего 36 дисков High Performance).
- Стоимость лицензий стандартного Oracle Software определяется обычным прайс-листом Oracle. Минимальный набор лицензий Oracle Database Enterprise Edition, опции, включая Real Application Clusters, опциональны. Для лицензирования X2-2 Quarter Rack (24 ядра) необходимо 12 процессорных лицензий Oracle Software, при этом, если система мигрирует в Exadata, то существующие лицензии будут полностью или частично засчитаны.
- Стоимость лицензий специального Exadata Software определяется специальным документом «Exadata and Exalogic Price List». Данное ПО лицензируется per disk, для лицензирования X2-2 Quarter Rack необходимо 36 лицензий – по числу дисков.
- Стоимость собственно Oracle Exadata Hardware также приведена в документе «Exadata and Exalogic Price List».
По Таб. 1 также следует отметить наличие во всех конфигурациях Exadata (кроме Quarter Rack) третьего коммутатора InfiniBand, с помощью которого осуществляется связь нескольких Exadata между собой. Таким образом, можно не только масштабировать до восьми комплексов ПАК Exadata в единый комплекс, но и связывать Exadata c Exalogic.
Exalogic – это программно-аппаратный комплекс от Oracle, представляющий собой Application for Appliance. Oracle иногда употребляет термин «ЦОД XXI века» для того, чтобы охарактеризовать совместную работу Exadata и Exalogic – эти комплексы ставятся в ЦОД рядом и связываются по Infiniband, при этом Exadata консолидирует все базы данных заказчика, а Exalogic консолидирует все приложения.
Таб. 1 – Различные конфигурации Exadata.
Масштабирование в Oracle real Application Clusters
Согласно вышеизложенным принципам лицензирования, Oracle Database Enterprise Edition является минимальным набором при лицензировании серверов баз данных Exadata. Если рассматривать Exadata под задачи консолидации нескольких небольших баз, то можно обойтись без опции Oracle Real Application Clusters (далее RAC), однако работа одной базы данных на нескольких Database Server в Exadata возможна только с помощью RAC. Поэтому первые эксперименты на нашей Exadata были связаны с вопросами масштабирования в RAC.
На Рис. 2 приведен характерный результат масштабирования в RAC аналитической задачи одного из наших заказчиков. Для тестирования было обезличено 1.3Тб – часть крупного DWH-хранилища, при этом исследовалось среднее время исполнения характерных запросов.
Рис. 2 – Масштабирование в RAC отчетов DWH.
При достаточном количестве сессий (50 и более одновременно выполняемых запросов) два узла RAC отработали практически в 2 раза лучше одного – без какой-либо дополнительной оптимизации.
Exadata в сравнении с продуктивными системами
После исследования вопросов масштабирования в RAC была протестирована база данных размером 1.9Тб (задача класса OLTP от крупного Телеком-оператора). Исследовалось время работы процедуры перерасчета абонентской задолженности биллинговой системы. Процедура представляет собой многопоточный PL/SQL-код, обрабатывающий значительную часть центральной таблицы (аналогично банковской процедуре капитализации либо закрытия периода). На момент тестирования данная процедура в продуктиве длилась не менее 4 часов (240 минут) на 32-ядерном сервере, при этом из-за ограниченных возможностей СХД более четырех потоков запустить не удавалось.
В Таб. 2 приведены результаты сравнения работы процедуры перерасчета на Exadata и в продуктиве. На Exadata эту процедуру удалось запустить в 40 потоков, а после небольшой оптимизации под RAC, два узла Exadata (24 ядра) показали результат в 12 минут, что в 20 раз быстрее продуктива. Заметим, что полученный результат не изменился после сжатия основной таблицы алгоритмом Query High в четыре раза, при этом несколько выросла утилизация процессоров серверов баз данных.
Таб. 2 – Сравнение с продуктивом на реальной OLTP задаче.
На Рис. 3 показаны результаты сравнения продуктива и Exadata, полученного в рамках тестирования клиент-серверного приложения, обслуживающего хранилище класса DWH размером 400Гб. Общее время отклика складывалось из времени передачи команды от клиента серверу по сети (t1), времени работы базы данных (t2), времени передачи результатов от сервера клиенту по сети (t3) и времени обработки полученных данных на клиенте (t4).
Рис. 3 – Общее время исполнения в продуктиве и на Oracle Exadata.
Общее время отклика в среднем оказалось на Exadata в 2 раза меньше, чем на продуктиве. При этом если сравнить параметр t2 (собственно время работы базы данных), то Exadata показала себя в среднем в 15-16 раз производительнее текущей системы!
Рассмотренные результаты первых тестирований позволяют сделать вывод – на ряде задач, типичных для наших заказчиков, Exadata дает существенное повышение производительности Orасle Database. Кроме того реализованный в Exadata специальный механизм компрессии Oracle Exadata Hybrid Column Compression показывает сжатие данных до 8 раз при той же производительности. По итогам полугодового знакомства с Exadata мы сделали однозначный вывод: продукт заслуживает самого пристального внимания. Мы будем рады любым новым задачам по тестированию в нашем демо-центре по Oracle Exadata!