Feed on Posts or Comments

Data Mining &Exadata &Oracle Database &Ликбез &Общее Андрей Пивоваров on 16 Sep 2009 04:15 pm

Sun Oracle Database Machine и Exadata версии 2

Те, кто интересуются темой 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

8 Responses to “Sun Oracle Database Machine и Exadata версии 2”

  1. on 16 Sep 2009 at 5:40 pm 1.Apex said …

    Небольшое уточнение по поводу гибридной компрессии. Сейчас сжатие происходит на уровне блока, для которого строится словарь значений в заголовке блока, а сами значения в строках подменяются ссылками на словарь, метод носит название Token-Based. Отсюда следует, что чем больше повторяющихся значений в блоке, тем лучше сжатие, поэтому бОльший размер блока и предварительная сортировка дают лУчший коэффициент сжатия. Новый тип компрессии по-сути работает точно так же, просто он умеет объединять несколько блоков в некий Compression Unit, для которого уже выполняется Token-Based Compression и возможно дополнительные методики сжатия. Таким образом говорить о том, что это колоночное хранение в том виде, в котором оно существует, например, в Sybase IQ или где-то еще – нельзя.

  2. on 16 Sep 2009 at 6:01 pm 2.Андрей Пивоваров said …

    Apex,

    Ок. Наверное так и есть. Но если сравнивать по результату, то гибридная компрессия сжимает очень сильно лучше, чем старая, скажем, в Oracle 11.1.
    На старой я не видел степени сжатия в 18 раз даже близко.

  3. on 16 Sep 2009 at 6:25 pm 3.Андрей Пивоваров said …

    И кстати, по словам того же Клоссона, слово “колоночный” здесь присутствует потому что алгоритм сжатия сканирует колонки, а не строки. То есть внтури Compression unit данные сжимаются и хранятся по колонкам. Видимо поэтому это называется гибридной колоночной компрессией. Алгоритм не такой как у Sybase, о чем я написал, но сжатие и хранение все таки колоночное, хоть и гибридное :)

  4. on 17 Sep 2009 at 8:04 am 4.er said …

    интересно а будут ли доступны триалы или вируталки с exadata 2 ?
    а то работая с ораклом , привык вначале тестироваться , а потом верить “в новый прорыв”

  5. on 17 Sep 2009 at 10:04 am 5.Андрей Пивоваров said …

    er,
    Пока не известно.
    Но основные преимущества DB Machine лежат в области уменьшения трафика между ячейками Exadata и серверами Oracle. На эмуляторе это будет довольно сложно почувствовать.

  6. on 17 Sep 2009 at 1:41 pm 6.Alex_D said …

    Apex,

    А Вы, в промышленных масштабах (на больших объемах) используете компресию с предварительной сортировкой данных? Смысл в том, что сортировка (мультипроходная сортировка) очень дорогое удовольствие для этапа загрузки данных.

  7. on 22 Sep 2009 at 5:03 pm 7.Apex said …

    Alex_D,

    Мы используем, но у нас во-первых объем данных загружаемых раз в сутки небольшой, по крайней мере пока небольшой, во-вторых даже если мне нужно отсортировать месячный объем данных (например для подготовки агрегатов – чем не сортировка?), то это делается быстро за счет партиционирования и распараллеливания.
    Если все сортировать\заливать\сжимать одним большим куском, то конечно дорогое, если предварительно разбить кусок на партиции (например по хэшу) и сортировать уже более мелкие куски в параллели, то будет гораздо легче.

  8. on 23 Sep 2009 at 1:23 pm 8.Alex_D said …

    Apex, Спасибо, примерно так и думал.

Trackback This Post | Subscribe to the comments through RSS Feed

Leave a Reply