Wednesday, November 6, 2013

Oracle vs Hana


 Посетив на днях семинар по HANA, хочу поделиться своими выводами.

Сила ХАНЫ заключается в следующих вещах:
- хранение таблиц в формате столбцевой компрессии (коэффициент сжатия SAP считает около 6)
- хранение данных в оперативной памяти (предполагается, что в сочетании со сжатием все данные должны поместиться в оперативную память. Пропорция для расчета: 64Г оперативной памяти на каждые 300Г исходных пользовательских данных. при чтении одной строки из таблицы вся таблица/партиция читается в оперативную память)
- кроме того, SAP внедрили в ХАНУ обычный row-store движок (надо полагать, это кусочек от ранее купленного Sybase), который позволяет работать с таблицами в обычном строчном row-формате. Этот формат хранения предназначается для OLTP-приложений.

В результате, получилась забавная гибридная СУБД, способная работать как с DWH-приложениями так и OLTP. Справедливости ради надо сказать, что все современные OLTP-движки – DB2, MSSQL, Sybase, Postgress – значительно уступают OLTP-движку от Оракла, т.е. для тяжелого OLTP они просто не подходят по причине роста блокировок.


Поэтому Оракл немедленно взялся за Database-In-Memory Option, которая по сути есть НСС не привязанное к системе хранения, иными словами, Оракл повторно, с 5-летним опозданием, анонсирует свою НСС-опцию:




Oracle Database In-Memory leverages a new in-memory column store format

Oracle Database In-Memory option accelerates the performance of analytic queries by storing data in a highly optimized columnar in-memory format.

A unique "dual-format" approach ensures outstanding performance and complete data consistency for all workloads.

Oracle Database In-Memory automatically maintains data in both the existing Oracle row format for OLTP operations, and a new purely in-memory column format optimized for analytical processing. Both formats are simultaneously active and transactionally consistent.



Для тех кто не в курсе: Оракл имеет HCC с 2008 года, когда вышла первая Экзадата. Но Оракл разрешил HCC только для своих собственных систем хранения: Exadata Storage Cell, Pillar Axiom, ZFS Storage Appliance. Вот если бы Оракл изначально объявил этот функционал своей опцией, доступной на всех платформах, то мы бы сейчас видели бурный всплеск продаж СУБД.

Столбцевое хранение данных на сегодняшний тень также реализовано в MS SQL, IBM DB2 & Netezza. Таким образом, можно сделать вывод, что современные СУБД все больше становятся гибридными, т.е.  способными хранить/обрабатывать оба типа данных.

2 comments:

  1. Мне кажется (хотя пока не известны детали), что HCC это больше про хранение данных, а InMemory Option - про обработку в памяти. И что хотя и там и там как бы колонки, реализация будет совсем разная.

    ReplyDelete
  2. >> Вот если бы Оракл изначально объявил этот функционал своей опцией, доступной на всех платформах...

    +100500, но время ещё не пришло, мы же понимаем, есть ещё Exadata на складах)

    а про In-Memory Option согласен с Андреем, судя по анонсам, метод хранения данных не изменится никак, а вот в Shared Pool для кэширования данных кроме стандартного Buffer Cache появится доп.область с оптимизированным поколоночным хранением, про компрессию упоминаний не видел. Так что HCC - отдельно, IMDO - отдельно, по частям - всегда дороже, первый закон рынка :)

    ReplyDelete

cellcli -e list diskmap

The interesting LIST DISKMAP command in the storage cells links all views to hard disks: PCI bus address as Name 252:5, OS name (/dev/sdh,...