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
Читайте также:
- Oracle OpenWorld 2012. День 1.
- Заметки об Oracle OpenWorld 2013. Часть 1.
- Новости Oracle OpenWorld 2010. Воскресенье.
- Oracle OpenWorld 2012. Дни 2 и 3
- Про русификацию интерфейса Oracle BI EE
on 16 Sep 2009 at 5:40 pm 1.Apex said …
Небольшое уточнение по поводу гибридной компрессии. Сейчас сжатие происходит на уровне блока, для которого строится словарь значений в заголовке блока, а сами значения в строках подменяются ссылками на словарь, метод носит название Token-Based. Отсюда следует, что чем больше повторяющихся значений в блоке, тем лучше сжатие, поэтому бОльший размер блока и предварительная сортировка дают лУчший коэффициент сжатия. Новый тип компрессии по-сути работает точно так же, просто он умеет объединять несколько блоков в некий Compression Unit, для которого уже выполняется Token-Based Compression и возможно дополнительные методики сжатия. Таким образом говорить о том, что это колоночное хранение в том виде, в котором оно существует, например, в Sybase IQ или где-то еще – нельзя.
on 16 Sep 2009 at 6:01 pm 2.Андрей Пивоваров said …
Apex,
Ок. Наверное так и есть. Но если сравнивать по результату, то гибридная компрессия сжимает очень сильно лучше, чем старая, скажем, в Oracle 11.1.
На старой я не видел степени сжатия в 18 раз даже близко.
on 16 Sep 2009 at 6:25 pm 3.Андрей Пивоваров said …
И кстати, по словам того же Клоссона, слово “колоночный” здесь присутствует потому что алгоритм сжатия сканирует колонки, а не строки. То есть внтури Compression unit данные сжимаются и хранятся по колонкам. Видимо поэтому это называется гибридной колоночной компрессией. Алгоритм не такой как у Sybase, о чем я написал, но сжатие и хранение все таки колоночное, хоть и гибридное :)
on 17 Sep 2009 at 8:04 am 4.er said …
интересно а будут ли доступны триалы или вируталки с exadata 2 ?
а то работая с ораклом , привык вначале тестироваться , а потом верить “в новый прорыв”
on 17 Sep 2009 at 10:04 am 5.Андрей Пивоваров said …
er,
Пока не известно.
Но основные преимущества DB Machine лежат в области уменьшения трафика между ячейками Exadata и серверами Oracle. На эмуляторе это будет довольно сложно почувствовать.
on 17 Sep 2009 at 1:41 pm 6.Alex_D said …
Apex,
А Вы, в промышленных масштабах (на больших объемах) используете компресию с предварительной сортировкой данных? Смысл в том, что сортировка (мультипроходная сортировка) очень дорогое удовольствие для этапа загрузки данных.
on 22 Sep 2009 at 5:03 pm 7.Apex said …
Alex_D,
Мы используем, но у нас во-первых объем данных загружаемых раз в сутки небольшой, по крайней мере пока небольшой, во-вторых даже если мне нужно отсортировать месячный объем данных (например для подготовки агрегатов – чем не сортировка?), то это делается быстро за счет партиционирования и распараллеливания.
Если все сортировать\заливать\сжимать одним большим куском, то конечно дорогое, если предварительно разбить кусок на партиции (например по хэшу) и сортировать уже более мелкие куски в параллели, то будет гораздо легче.
on 23 Sep 2009 at 1:23 pm 8.Alex_D said …
Apex, Спасибо, примерно так и думал.