Те, кто интересуются темой Exadata и Database Machine уже, конечно, знают о том, что вчера Larry Ellison из Oracle и John Fowler из Sun выступили с презентацией новой версии Exadata и DB Machine на платформе Sun.

Database Machine – это специализированный аппаратно-программный комплекс на основе Oracle Database, Exadata Software и железа Sun, разработанный для обеспечения высочайшей производительности, по сравнению с \”обычными\” архитектурами, на которых обычно разворачивается Oracle Database.

Получилась немного маркетинговая фраза, но, по-сути, верная.

Что же нового там появилось, по сравнению с первой версией, выпущенной год назад?

1. В отличие от первой Exadata, где использовалось железо HP, теперь используется железо от Sun. Что, на мой взгляд, не удивительно, в свете грядущего возможного объединения компаний Oracle и Sun.

2. Как и в первой версии используются процессоры Intel и Oracle Enterprise Linux. Я уже видел ехидные коментарии на тему, что не используется Solaris и процессоры Sun. Но, на мой взгляд, поскольку DB Machine это решение, то какая там начинка не так уж важно. Так как самостоятельный апргрейд железа не предполагается. Возможно Exadata 3 будет использовать совсем другое железо, если будет этому повод.

3. Почти вся аппаратная начинка улучшена. Используется DDR3 RAM, более емкие диски, более быстрые процессоры и т.д. Что не удивительно. За год в железе произошел некий прогресс. Про улучшения в процентах можно прочитать тут.

4. Чего не было в Exadata 1 и что появилось в Exadata 2, так это, так называемая, технология Sun FlashFire. Теперь каждая ячейка Exadata оснащается флеш-картой (не SSD диском) емкостью 384Gb. На базе этой флеш карты организуется флеш кеш. Детали его работы пока не совсем ясны (мне), но суть вот в чем:

В современных СУБД для хранения данных используются жесткие диски и оперативная память. Диски относительно медленные, но емкие и дешевые. К тому же, данные там могут храниться долго, независимо есть питание или нет.

Оперативная-же память очень быстрая, но дорогая, и ее обычно меньше. К тому же, для хранения данных в оперативной памяти нужно питание. Если питание выключить – данные стираются.

И вот разработчики СУБД делают очень много для того, чтобы использовать одновременно преимущества дисков и оперативной памяти для того, чтобы с одной стороны хранить и обрабатывать много данных, а с другой стороны делать это быстро. Отсюда различные алгоритмы кеширования, индексирования и т.д.

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

Технология FlashFire позволяет организовать на ячейке Exadata кеширование часто используемых блоков данных на флеш-памяти и засчет этого появляется возможность значительно ускорить OLTP операции. Говорится о 20-кратном ускорении для OLTP операций.

И тут важное отличие от Exadata 1. Exadata 1 позиционировалась как решение в основном для хранилищ данных. Так как для OLTP не давала никаких особых преимуществ перед обычными архитектурами. Exadata 2 может использоваться и для OLTP задач.

5. Еще одно важное нововведение новой версии DB Machine – использование Hybrid Columnar Compression. Гибридного колоночного сжатия.

Давно ведутся разговоры о том, что лучше – БД с колоночным хранением данных (ярким представителем является Sybase IQ) или традиционные. И там и там есть плюсы и минусы. В Exadata 2 впервые появилась возможность использовать колоночное сжатие данных для Oracle Database 11gR2. Наверное алгоритмы, используемые в Oracle, отличаются от алгоритмов того же Sybase, но основные преимущества тут в том, что вы можете использовать все возможности Oracle Database, а если для чего-то вам нужно организовать таблицу в колоночном виде – можете это сделать.

Обычно, специализированные СУБД имееют какие-то очень интересные возможности (ради которых и создавались), но при этом страдают от отсутствия огромного количества возможностей униваерсальных СУБД, которые развивались десятилетиями.

Гибридная колоночная компрессия дает преимущества прежде всего по объему места, занимаемого данными на диске. Говоится о сжатии до 50 раз. И плюс ускоряются запросы засчет того, что надо читать меньше данных с диска.

Кстати говоря, когда Oracle Database 11gR2 была в режиме бета версии, можно было попробовать это колоночное сжатие. Жаль, что в релизе эта возможность работает только в Exadata. Я пробовал на своих таблицах. 50-кратного сжатия у меня не получилось (так как степень сжатия зависит от многих факторов), но одна таблица сжалась в 18 раз. И скорость запросов увеличилась в несколько раз.

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

Специальный индекс для Exadata позволяет уменьшить число Full Scan-ов за счет того, что он хранит некую статистическую информацию о данных, лежащих в Exadata. Например, максимальное и минимальное значение для какого-то поля таблицы в данном блоке. Поэтому, если нужно выбрать все строки, где значение A>100, то по этому индексу можно понять, что блоки, в которых значения A больше 10, но меньше 90 сканировать не надо. Эта возможность позволяет еще больше ускорить работу запросов в DB Machine.

7. Заявлено, что Oracle Data Mining теперь может обсчитывать модели прямо на ячейках Exadata. Детали я пока не знаю.

8. Еще одно нововведение связано с лицензированием. Exadata 1 позиционировалась как решение для хранилищ данных, причем для сверхбольших хранилищ, где нужна высочайшая производительность из-за того, что данных много.

Как следствие, потенциальными клиентами Exadata 1 были только обладатели очень больших хранилищ. Ну и, соответсвенно, цена на решение начианалась от нескольких миллионов долларов.Так как для хранения и обработки такого объема данных нужно много дорого железа и софта. Сейчас, в силу возможности использования Exadata 2 для OLTP задач, появилась возможность покупать ее в нескольких конфигурациях, самая скромная из которых состоит из одной ячейки Exadata и одного сервера Oracle Database. Цена на такое решение уже начинается от нескольких сотен тысяч, а не от нескольких миллионов. Конечно, для сверхбольших хранилищ Exadata 2 можно и нужно использовать, но и цена будет гораздо выше.

Пока многие детали (как работает, лицензирование, когда можно купить в России и т.п.) нового решения не ясны. Со временем информация появится. Но уже сейчас понятно, что решение интересное и потенциально может быть применимо гораздо шире, чем DB Machine и Exadata версии 1.

Дополнительную информацию можно почерпнуть по этим ссылкам:

Пресс-релиз
Сайт Database Machine
Сайт Exadata

__________________________________
Читайте также:
А еще можно почитать мой твиттер @apivovarov