34

Oracle database In-Memory - новая технология обработки в памяти

Embed Size (px)

Citation preview

Page 1: Oracle database In-Memory - новая технология обработки в памяти
Page 2: Oracle database In-Memory - новая технология обработки в памяти

Oracle Database In-Memory -новая технология обработки в памяти

Игорь МельниковВедущий консультант

Oracle СНГ

2 Декабря, 2014 г.

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Page 3: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

План

Введение

Использование Oracle Database In-Memory

In-Memory Advisor

Oracle Database In-Memory и Oracle TimesTen

Опыт использования

1

2

3

4

5

Page 4: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

ВведениеУвеличение объемов памяти в системах

4

Page 5: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Оперативная память: тенденции и влияниеСегодня память быстрее, дешевле и ее объем больше

Объемы памяти растут

2002 256 MB/DIMM

2012 16 GB/DIMM

Стоимость падает

2002 $0.2/MB

2012 $0.009/MB

Память значительно

быстрее

Disk5ms – скорость

доступа

DRAM100ns –скорость доступа

64x больше емкости 25x дешевле 50,000х быстрее

Ускорение OLTP и DW приложений, больше пользователей, больше данных

DRAM:

2012 $0.0005/MB2012 100 GB/DOM Flash

0.25ms –скорость доступа

400x больше емкости 400x дешевле 20x быстрееFlash:

Page 6: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Oracle In-Memory DatabaseЛучшие технологии для работы в памяти

12c Release 1

• Big Memory Cluster

& 2x more index compression on

Exadata

• Rowset Processing

• In-Memory Column Store for

Unstructured Data

• OLTP Wide Table Compression

• HCC Row Level Locking

Приложение

работает с

памятью без

изменений!

Приложение

работает с

памятью без

изменений!

Комбинация DRAM, Flash и HDD

Быстрой памяти и стоимости дисков

Без ограничений на размер БД

Комбинация DRAM, Flash и HDD

Быстрой памяти и стоимости дисков

Без ограничений на размер БД

2007 2012Pre-2007 20092008

• 20+ years of scale-up

optimizations

• 10+ years of scale-out

optimizations

• Prefix Index Compression

• Bitmap Index Compression

• Basic & IOT Table

Compression

• And much more

• In-Memory Parallel Query

• OLTP Compression

• Unstructured Data

Compression

• Client SQL/PL/SQL Result

Cache

• Server SQL/PL/SQL Result

Cache

• In-Memory Column Store for

DW

• Columnar Compression

• Columnar Processing

• Cache Fusion Optimizations

• In-Memory Parallel Query

Optimizations

• In-Memory Storage Index on

Exadata Storage

Page 7: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Приходится выбирать один формат и идти на компромиссы

Противоречие которое длится десятилетияСтрочный формат и поколоночный

Row

� OLTP-операции работают быстрее со

строчным форматом

– Быстрая обработка нескольких строк, много колонок

Column

� Аналитика работает быстрее с

колоночным форматом

– Отчет о сумме продаж по штату– Быстрая обработка нескольких колонок, много строк

ORDER

SALES

SALES

S

T

A

T

E

Page 8: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Oracle Database In-MemoryНовая технология обработки в памяти

8

Page 9: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Oracle In-Memory Columnar Сache

DRAM

Pure Columnar

� Данные в представлении по

колонкам без генерации

redo-информации

� Минимальные затраты на

изменения – даже для OLTP-

транзакций

� Данные загружаются в кэш

при старте экземпляра БД

� Данные в представлении по

колонкам без генерации

redo-информации

� Минимальные затраты на

изменения – даже для OLTP-

транзакций

� Данные загружаются в кэш

при старте экземпляра БД

Page 10: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Oracle In-Memory: отдельный кэш в SGA

Instance

SGA

Redo logbuffer cache

Shared pool

Data Dict.cache

Library

cache

DBWRSMONPMON CKPTLGWR Others

Databasebuffer cache

SQL> ALTER SYSTEM SET inmemory_size=32G SCOPE=SPFILE;

Instance

SGA

Redo logbuffer cache

Shared pool

Data Dict.cache

Library

cache

DBWRSMONPMON CKPTLGWR Others

In-rowbuffer cache

In-Memory

Columnar

Cache

• Динамический параметр INMEMORY_SIZE

Page 11: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

� И строчный и поколоночный

формат хранения в памяти для

одних и тех же данных/таблиц

� Данные одновременно активны и

транзакционно согласованы

� В 100 раз быстрее аналитика &

отчетность: поколоночный формат

� В 2 раза быстрее OLTP: строчный

формат

� И строчный и поколоночный

формат хранения в памяти для

одних и тех же данных/таблиц

� Данные одновременно активны и

транзакционно согласованы

� В 100 раз быстрее аналитика &

отчетность: поколоночный формат

� В 2 раза быстрее OLTP: строчный

формат

In-Memory Option: Оба формата в памяти СУБД

Column

Format

Memory

Row

Format

Memory

AnalyticsOLTPSales Sales

Page 12: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Почему сканирование в In-Memory быстрее чем в буферном кэше?

SELECT COL4 FROM MYTABLE;

12

XXXXX

РЕЗУЛЬТАТ

Строчный формат

Буферный кэш

Page 13: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

SELECT COL4 FROM MYTABLE;

13

RESULT

Колоночный формат

In-Memory кэш

РЕЗУЛЬТАТ

XXXX

Почему сканирование в In-Memory быстрее чем в буферном кэше?

Page 14: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Включение columnar-кэширования для таблицы или mview

• Включение columnar-кэширования для группы столбцов таблицы

• Кэшироваться может не вся таблица, а только часть столбцов!

SQL> ALTER TABLE cities

INMEMORY

INMEMORY (Id, Name, Country_Id, Time_Zone)

NO INMEMORY (Created, Modified, State);

Table altered.

SQL> ALTER MATERIALIZED VIEW cities_mv INMEMORY;

Materialized view altered.

•Служебные столбцы – не участвуют в отчетах: нужны только для бизнес-логики

Page 15: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Изменение плана запросаSQL-оптимизатор перестраивает план запроса

SQL> SELECT count(*) FROM cities;

Execution Plan

----------------------------------------------------------

Plan hash value: 2756775702

---------------------------------------------------------------------

| Id | Operation | Name | Rows | Cost (%CPU)|

---------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 1 | 0 (0)|

| 1 | SORT AGGREGATE | | 1 | |

| 2 | TABLE ACCESS INMEMORY FULL| CITIES | 1 | |

---------------------------------------------------------------------

Page 16: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Сканирование миллиарда строк в секунду на процессорном ядре

SIMD

Compare all

values in 1

cycle

Сравнение всех

значений за один цикл

Загрузка значений

множества штатов V

ect

or

Re

gis

ter

In-Memory Column Store

State columnSales

Пример: Найти все продажи в штате CA

“CA”

более чем в 100 раз быстрее

• Каждое процессорное ядро

сканирует одну колонку

� При сканировании

используются быстрые

векторные SIMD-инструкции

� Миллиарды строк в секунду

сканируются одним ядром

• Каждое процессорное ядро

сканирует одну колонку

� При сканировании

используются быстрые

векторные SIMD-инструкции

� Миллиарды строк в секунду

сканируются одним ядром CPU

Page 17: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Сканирование и объединение данных из нескольких таблиц

ПродажиМагазины

Type=outlet

Пример: Найти все продажи в outlet-магазинах

T

Y

P

E

Storeid

in

15,38,64

S

T

O

R

E

I

D

A

M

O

U

N

T

� Конвертирует join в

быстрые сканы колонок

� Joins выполняются в 10 раз

быстрее

� Конвертирует join в

быстрые сканы колонок

� Joins выполняются в 10 раз

быстрее

Sum

Page 18: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Мгновенная генерация отчетов: доли секунд

In-Memory

Report Outline

Пример: Показать тенденции продаж обуви в outlet магазинах

Stores

Products

Sales

Sales

� Динамически создает в

памяти объект-отчет

� Объект заполняется во время

сканирования таблицы

продаж

� Отчеты строятся в 20 раз

быстрее без заранее

созданных кубов

� Динамически создает в

памяти объект-отчет

� Объект заполняется во время

сканирования таблицы

продаж

� Отчеты строятся в 20 раз

быстрее без заранее

созданных кубов

Page 19: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Cжатие столбцов в columnar-кэше

Метод сжатия Описание

• NO MEMCOPRESS • Данные не сжимаются

• MEMCOMPRESS FOR DML • Метод сжатия оптимизированный для DML-операций

• MEMCOMPRESS FOR QUERY LOW • Метод по умолчанию.

• MEMCOMPRESS FOR QUERY HIGH

• MEMCOMPRESS FOR CAPACITY HIGH

• MEMCOMPRESS FOR CAPACITY LOW

Page 20: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

OLTP работает медленно из-за аналитических индексов

Таблица

1 - 3

OLTP

индекса

10 - 15

аналитических

индексов� Большинство индексов в OLTP

(например, в ERP) базах строится

только для аналитических запросов

� Индексы хорошо подходят для

предсказуемых запросов (и в

памяти, и на диске)

� Вставка одной строки в таблицу

приводит к обновлению 10-15

аналитических индексов:

Медленно!

� Большинство индексов в OLTP

(например, в ERP) базах строится

только для аналитических запросов

� Индексы хорошо подходят для

предсказуемых запросов (и в

памяти, и на диске)

� Вставка одной строки в таблицу

приводит к обновлению 10-15

аналитических индексов:

Медленно!

Поколоночное

хранение в памяти

Поколоночное

хранение в памяти

Поколоночное

хранение в памяти

Page 21: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Oracle In-Memory – высокая доступность

� Представление по столбцам в

памяти не влияет на формат данных

на диске: datafiles, logging, backup,

recovery, и т.д.

� Все технологии, в том числе ASM,

RAC, DG, GG работают прозрачно

для In-Memory Option

� Защита от любых видов ошибок

� На уровне железа

� Логические ошибки

приложения (Flashback)

� Представление по столбцам в

памяти не влияет на формат данных

на диске: datafiles, logging, backup,

recovery, и т.д.

� Все технологии, в том числе ASM,

RAC, DG, GG работают прозрачно

для In-Memory Option

� Защита от любых видов ошибок

� На уровне железа

� Логические ошибки

приложения (Flashback)

RAC

ASM

RMAN

Data Guard & GoldenGate

Page 22: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Oracle In-Memory в RAC

• Управление распределением объектов в кэше между узлами RAC:

– AUTO DISTRIBUTE – синхронизацией кэша управляет СУБД (поведение по умолчанию)

– DUPLICATE – (exa-only) кэши принудительно синхронизируются между узлами RAC (2 копии chunk-а кластер)

– DUPLICATE ALL – (exa-only) кэши одинаковы на всех узлах RAC

– DISTRIBUTE BY ROWID RANGE, DISTRIBUTE BY

PARTITION, DISTRIBUTE BY SUBPARTITION

SQL> ALTER TABLE cites INMEMORY

DUPLICATE;

Table altered.

In Memory

Column Store

In Memory

Column

Store

In Memory

Column Store

In Memory

Column Store

Page 23: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Полный синтаксис кэширования таблицыМощный и гибкий синтаксис

SQL> ALTER TABLE cities

INMEMORY

PRIORITY CRITICAL

DUPLICATE

INMEMORY MEMCOMPRESS FOR CAPACITY HIGH (Country_Id, Time_Zone)

INMEMORY MEMCOMPRESS NO (Id, Name, Name_Eng)

NO INMEMORY (Created, Modified, State);

Table altered.

Page 24: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

� Хранит минимальное

и максимальное

значение столбца в

каждом экстенте

памяти кэша

� Прозрачно исключает

ненужные

сканирования

столбцов, например:

WHERE prod_id > 14

AND prod_id < 29

Storage Index в In-Memory Columnar Store

Page 25: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

� Space Manager

� Управляет памятью в In-Memory Column Store(create, extend, drop)

� Загружает данные в кэш

� Transaction Manager

� Обеспечивает согласованность данных в In-Memory Column Store с буферным кэшем

� Обеспечивает версионность

In-Memory Option - архитектура

Page 26: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Для каких приложений подходит In-Memory Option?

• Если в приложении есть много запросов сканирующих много строк с фильтрами такими как: “=, <, >, и IN”

• Запрашивает всего лишь несколько столбцов, напр: 5 столбцов из 100 столбцов таблицы

• Приложение часто делает соединение большой факторной таблицы с таблицей измерений, с фильтром по таблице измерений

• Типы приложений предпочтительные для использования In-Memory Option: хранилища данных (DataWarehouse) и cмешанного типа (Mixed Application)

Page 27: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Oracle Database In-Memory и TimesTen

Application

Application

Application

TimesTen In-Memory Database

• Встраиваемая БД для приложений

• Экстремальная быстрая производительность

для OLTP-нагрузки (время ответа -

микросекунды)

• Адаптивный кэш для интегрированной системы

Oracle Exalytics

Oracle Database In-Memory Option

• Масштабируемая обработка данных в памяти

для любых видов нагрузки, в том числе и

смешанной (OLTP и DWH)

Page 28: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

OEM Cloud Control 12c R4 - IMC Store Central

Public

Page 29: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Oracle In-Memory AdvisorСоветчик настройки Oracle In-Memory

29

Page 30: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 30

M6-32 – ЕКС Online для 7 терр. банков

Page 31: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 31

Крупный российский заказчик – внутренняя финансовая система (в 162 раза!)

http://www.comdi.com/Oracle/OracleDay2014/

Page 32: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 32

Крупный российский системный интегратор – (в 1157 раза!)

http://www.comdi.com/Oracle/OracleDay2014/

Page 33: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Заключение: Oracle Database In-Memory

• Экстремальная производительность для OLTP и хранилищ данных на актуальных данных

• Прозрачное масштабирование по CPU и RAM

• Прозрачно для всех технологий СУБД Oracle

Все преимущества обработки в памяти

без изменения кода приложений!

Page 34: Oracle database In-Memory - новая технология обработки в памяти

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 34