Oracle Database In-Memory. Part 1

10 Июня Ларри презентовал Oracle Database In-Memory.

Часть 1 - об общей архитектуре и месте данного продукта среди конкурентов и уже имеющихся продуктов Oracle. Следующие части будут чуть более техническими, насколько это возможно без документации и самого продукта.

На самом деле Ларри  не сказал ничего нового, по сравнению с тем, что рассказывали на OpenWorld, за исключением того, что эта опция будет доступна в следующем месяце.

Привожу слайд с OOW - где в одном слайде рассказано 90% презентации Ларри.

Итак, появляется возможность указать что таблица, или партиция должна быть постоянно в памяти в columnar формате (со сжатием, алгоритм отличается от того что есть в Exadata).  Для хранения этих  columnar таблиц вы сами определяете размер памяти. Данные хранятся только в памяти и попадают туда на старте БД или при первом обращении. Важно, что с оригинальной таблицей, которая хранится в raw based виде, ничего не происходит - она остается неизменной, а значит ваше приложение продолжает работать неизменно. Напротив, аналитическая часть, вместо чтения диска начинает обращаться к данным в памяти, что драматически ускоряет отчетность.

Ларри упомянул, что OLTP часть также ускоряется при использовании In-Memory - это правда, при условии, что вы удалите индексы, которые были необходимы для поддержки отчетности.

Ничего удивительного, что Oracle сразу же атаковал SAP HANA. Для SAP HANA сегодня это ключевой продукт, от его успеха или не успеха, во многом зависит успех компании. Для того, чтобы вы смогли использовать In-Memory с SAP потребуется сертификация SAP…которую придется подождать. Ту же самую шутку с сертификацией SAP уже проделала с IBM и DB2 BLU технологией - если я не ошибаюсь ждать пришлось год.

Что мне очень понравилось, так это то, что In-Memory полностью совместима с технологией RAC. После выступления Ларри была демонстрация, на которой один и тот же отче гоняли на 8 нодах Exadata и M6-32. M6 конечно работал быстрее (там межпроцессорные связи побыстрее infiniband), но не драматически. При этом, оказалось, что в RAC (или это Exa специальная возможность, не понятно) данные дублируются на двух узлах, и выход одного узла Exadata не привел к отказу системы.

По моему мнению, основное предназназначение In-Memory - это ERP системы, в которых по традиции намешано всего понемного, и OLTP и отчетность. Было бы круто понять, а можно ли использовать эту возможность только на standby. Многие же гоняют отчетность по active data guard, представляете как бы там все ускорилось без влияния на production…Я пока ответа не знаю.

Какие то дальнейшие заключения сложно делать не зная стоимости опции. Да, ускорение отчетов до 100 раз вполне возможно, вопрос сколько за это придется заплатить. 

Ларри также пообещал, что опция будет поддерживаться на всех платформах, на которых поддерживается Oracle и ..даже повторил - и Linux & Solaris -). Если не будет поддержки AIX - это будет очень сильный ход -) 

Список отрытых вопросов: (если кто то знает ответы - напишите пожалуйста в комментарии)

1. Eсли я хочу загрузить и сжать 10Tb on-startup это же сколько времени у меня займет этот самый startup СУБД?

2. Если я по недаразумению запущу update по своей таблице ведь чтобы отразить изменения мне придется заново сжать всю таблицу в памяти? Это должно быть весьма затратно по процессорным ресурсам

Update 1. Совсем забыл написать про TimesTen In-Memory. Изначально, TT предназначен для ускорения именно OLTP части, в отличии от Database In-Memory. Однако, в версии для Exalytics, в TT добавили аналитические функции, и возможность хранить данные в по-колоночном (columnar)  виде и поддерживается компрессия. Возникает интересный вопрос - если у Oracle уже была In-Memory, зачем же еще одна? Будет ли Oracle поддерживать оба продукта или один прекратит?  У меня пока ответов нет.  Из истории Oracle мы знаем, что всегда побеждает продукт, непосредственно внедренный в ядро СУБД, поэтому у меня впечатление, что Exalytics прекратит свое развитие. Ну действительно, если Exadata сможет делать все тоже самое, зачем отдельный продукт?

7 комментариев:

  1. у меня еще вопрос:
    как обстоят дела с блокировками? в том же хекатоне если уж инмемори взлетело то улетело в космос. Не будет ли тут latch cache buffers chains ?

    ОтветитьУдалить
  2. Судя по прайс-листу, заплатить за Database InMemory придётся столько же сколько за RAC :)

    ОтветитьУдалить
  3. Я вижу прайс лист от 11 июня и не вижу в нем цены. Я чего то не вижу или меня забанили в гугле? -)

    ОтветитьУдалить
    Ответы
    1. Наверное, скоро выложат новый - в партнёрской части прайс от 11 июня (со всеми изменениями, что и открытый: переименованиями опций, подорожанием Diagnostic Pack ) и с Database InMemory (Priced in Advance of Availability).

      Удалить
  4. Наверное, сказывается путаница с названиями: "TimesTen In­Memory Database".

    ОтветитьУдалить
  5. Наверное, сказывается путаница с названиями: "TimesTen In­Memory Database".

    ОтветитьУдалить
    Ответы
    1. коллега написал выше - партнерский прайс уже содержит цену. Публичный - пока нет.

      Удалить