apache ignite persistence: зачем persistence для in-memory, и как он работает...
TRANSCRIPT
Зачем Persistence для In-Memory, икак он работает?
Артем Шитов
Solution Architect, [email protected]
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
strongconsistency
RDBMS
вертикальноемасштабирование
SQL
strongconsistency
RDBMS
вертикальноемасштабирование
SQL
strongconsistency
NoSQL
горизонтальное масштабирование
NoSQL
горизонтальное масштабирование
strongconsistency
NoSQL
горизонтальное масштабирование
SQLstrongconsistency
NoSQL
горизонтальное масштабирование
strongconsistency SQL
In-Memory Data Grids
горизонтальное масштабирование
SQL
In-Memory Data Grids
горизонтальное масштабирование
strongconsistency SQL
In-Memory Data Grids
горизонтальное масштабирование
strongconsistency SQL
Что предлагает Apache Ignite?
Apache Ignite
горизонтальное масштабирование
strongconsistency
ApacheIgnite
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, …
INSERTUPDATEDELETE
Checkpoints
Persistence
Распределенный SQL
FROM,
WHERE,
JOIN
FROM,
WHERE,
JOIN
FROM,
WHERE,
JOIN
FROM,
WHERE,
JOIN
GROUP BY,
HAVING
JDBCODBC
ApacheIgnite
ApacheIgnite
ApacheIgnite
ApacheIgnite
Apache Ignite
• Горизонтально масштабируется
• Позволяет использовать SQL
• Колоцирует вычисления и данные
• Работает с данными со скоростью In-Memory
• Безопасно хранит данные на дисках• Full SQL
• Lazy Run