Зачем Persistence для In-Memory, и
как он работает?
Артем Шитов
Solution Architect, GridGain
artem@gridgain.com
persistence
Зачем Persistence для In-Memory?
• Растущие объемы данных — растущая проблема
• Вычислительные мощности
• Подходы к хранению и доступу
• In-Memory: преимущества и проблемы
• Что предлагает Apache Ignite?
• Memory-Centric SQL MPP Database
• Скорость и надежность
• Как это работает внутри?
• Страничная организация памяти
• Выделение памяти
• Дисковое хранилище
• Распределенный SQL
Зачем Persistence для In-Memory?
• Растущие объемы данных — растущая проблема
• Вычислительные мощности
• Подходы к хранению и доступу
• In-Memory: преимущества и проблемы
• Что предлагает Apache Ignite?
• Memory-Centric SQL MPP Database
• Скорость и надежность
• Как это работает внутри?
• Страничная организация памяти
• Выделение памяти
• Дисковое хранилище
• Распределенный SQL
Зачем Persistence для In-Memory?
• Растущие объемы данных — растущая проблема
• Вычислительные мощности
• Подходы к хранению и доступу
• In-Memory: преимущества и проблемы
• Что предлагает Apache Ignite?
• Memory-Centric SQL MPP Database
• Скорость и надежность
• Как это работает внутри?
• Страничная организация памяти
• Выделение памяти
• Дисковое хранилище
• Распределенный SQL
Растущие объемы данных —
растущая проблема
Как мы справляемся с ростом данных?
• Более мощный процессор
• гонка гигагерц, Pentium IV — 3.8 Ghz
• Больше ядер в процессоре
• гонка ядер, Xeon Phi 7210 — 64 ядра
• multithreading, parallel computing
• Больше машин в кластере
• гонка кластеров, Alibaba FuxiSort — 3 377 машин
• distributed computing
• горизонтальная (и эластичная) масштабируемость
• Больше кластеров
Как мы справляемся с ростом данных?
• Более мощный процессор
• гонка гигагерц, Pentium IV — 3.8 Ghz
• Больше ядер в процессоре
• гонка ядер, Xeon Phi 7210 — 64 ядра
• multithreading, parallel computing
• Больше машин в кластере
• гонка кластеров, Alibaba FuxiSort — 3 377 машин
• distributed computing
• горизонтальная (и эластичная) масштабируемость
• Больше кластеров
Как мы справляемся с ростом данных?
• Более мощный процессор
• гонка гигагерц, Pentium IV — 3.8 Ghz
• Больше ядер в процессоре
• гонка ядер, Xeon Phi 7210 — 64 ядра
• multithreading, parallel computing
• Больше машин в кластере
• гонка кластеров, Alibaba FuxiSort — 3 377 машин
• distributed computing
• горизонтальная (и эластичная) масштабируемость
• Больше кластеров
Как мы справляемся с ростом данных?
• Более мощный процессор
• гонка гигагерц, Pentium IV — 3.8 Ghz
• Больше ядер в процессоре
• гонка ядер, Xeon Phi 7210 — 64 ядра
• multithreading, parallel computing
• Больше машин в кластере
• гонка кластеров, Alibaba FuxiSort — 3 377 машин
• distributed computing
• горизонтальная (и эластичная) масштабируемость
• Больше кластеров
RDBMS
SQL
strong
consistency
RDBMS
вертикальное
масштабирование
SQL
strong
consistency
RDBMS
вертикальное
масштабирование
SQL
strong
consistency
NoSQL
горизонтальное масштабирование
NoSQL
горизонтальное масштабирование
strong
consistency
NoSQL
горизонтальное масштабирование
SQLstrong
consistency
NoSQL
горизонтальное масштабирование
strong
consistency SQL
In-Memory Data Grids
горизонтальное масштабирование
SQL
In-Memory Data Grids
горизонтальное масштабирование
strong
consistency SQL
In-Memory Data Grids
горизонтальное масштабирование
strong
consistency SQL
Что предлагает Apache Ignite?
Apache Ignite
горизонтальное масштабирование
strong
consistency
Apache
Ignite
SQL
Предсказуемое
потребление
памяти
Полная
транзакционность
(WAL)
Быстрый
перезапуск
Автоматическая
дефрагментация
Off-Heap
убирает паузы GC
Хранит
надмножество
данных
Apache Ignite
ориентированная на память платформа,
которая устойчива к отказам,
строго консистентна и высоко доступна,
имеет SQL, Key-Value API, а также
возможностью колоцированной
обработки данных
Apache Ignite
масштабируется на тысячи узлов,
в том числе на разных континентах,
дает скорость in-memory и надежность диска,
применяется крупнейшими компаниями
Как это работает внутри?
Что внутри?
• Переработанная архитектура хранения
• адаптирована под прозрачное хранение данных как в off-heap памяти,
так и на диске
• Собственное дисковое хранилище с WAL и checkpointing
• H2 для разбора SQL, оптимизации и подготовки плана
выполнения
• Собственное исполнение SQL по плану поверх высоко
распределенного окружения
Архитектура памяти
• Страницы
• Выделение памяти
• Сегменты (единица выделения памяти)
• Регионы
• Чтение данных
Страницы (Pages)
Страницы: выделение памяти
Страницы: выделение памяти
горячие
данные
холодные
данные
Страницы: выделение памяти
Сегменты
Регионы
B.get(X)
Affinity: K -> shard -> [Node]
Диск
• WAL
• Checkpoints
• Distributed storage
WAL
entriy, entry, …
INSERT
UPDATE
DELETE
Checkpoints
Persistence
Распределенный SQL
FROM,
WHERE,
JOIN
FROM,
WHERE,
JOIN
FROM,
WHERE,
JOIN
FROM,
WHERE,
JOIN
GROUP BY,
HAVING
JDBC
ODBC
Apache
Ignite
Apache
Ignite
Apache
Ignite
Apache
Ignite
Apache Ignite
• Горизонтально масштабируется
• Позволяет использовать SQL
• Колоцирует вычисления и данные
• Работает с данными со скоростью In-Memory
• Безопасно хранит данные на дисках
• Full SQL
• Lazy Run
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает / Артем Шитов (GridGain)

Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает / Артем Шитов (GridGain)