Байтоадресуемая
энергонезависимая память
и СУБД
Андрей Николаенко (IBS)
Отказ от ответственности
Представлено исключительно частное мнение и
личные оценки
• За постановки экспериментов и интерпретации отвечает лично
автор, но не аффилированные с ним институты
• Цель: только товарищеский обмен мнениями
Все экономические показатели – личные
умозрительные подсчёты
• Цены и оценки стоимости тех или иных компонентов взяты из
условно надёжных открытых и независимых от вендоров
источников (периодика, отчёты профессиональных аналитиков)
Память и накопитель
Память
Дорогая
Неёмкая
Энергозависимая
Байтоадресуемая
Сверхотзывчивая
Load/Store
Накопитель
Недорогой
Ёмкий
Энергонезависимый
Блочный
Неотзывчивый
Ввод-вывод через очереди
NAND-флэш
Память со свойствами накопителя
Память
Дорогая
Неёмкая
Энергозависимая
Байтоадресуемая
Сверхотзывчивая
Load/Store
Storage-class
memory
Не очень дорогая
Достаточно ёмкая
Энергонезависимая
Байтоадресуемая
Отзывчивая
Load/Store
Накопитель
Недорогой
Ёмкий
Энергонезависимый
Блочный
Неотзывчивый
Ввод-вывод через очереди
Материальная классификация
Флэш-
защита
NVDIMM-F NVDIMM-P
NVDIMM-N
Фазовый
переход
3D XPoint
Micron
QuantX
Intel Optane
Резистивная
память
STT-RAM
(спинтроника)
Everspin Crocus
Crocus -
Nano
ReRAM
Panasonic
Crossbar
MRAM
Samsung
HPE
Memristor
+Исторические: магнитоэлектронная, сегнетоэлектрическая, …
+Перспективные: беговая (Racetrack), на нанотрубках, …
Виды памяти: характеристики
DRAM NVDIMM-N NVDIMM-F XPoint-DIMM XPoint-NVMe STT-RAM ReRAM MRAM 3D NAND
Интерфейс DIMM DIMM DIMM DIMM PCI Express DIMM DIMM DIMM PCI Express
Энергонеза-
висимость
Нет Да Да Да Да Да Да Да Да
Адресуемость Байтовая Байтовая Блочная Байтовая Байтовая Байтовая Байтовая Байтовая Блочная
Энергия доступа,
пДж
2 2 10000 2 2 0,02 100 100 10000
Задержка на чтение,
нс
100 100 20000 250 10000* 20 100 ? 100? 25000
Задержка на запись,
нс
100 100 250000 250 10000* 20 100? 100? 300000
Ёмкость модуля, ГБ 128 32 512 512 1536 4 ? 0,0625 16000
Стойкость, DWPD ↑ ↑ 10 100 100 ↑ 40? ↑ 3
Стоимость, k$/ТБ 10 20 2 4? 2,4 ↑ ↑ ↑ 0,8
* блочный тест
NVDIMM-N
Изображение:Micron,2018
NVDIMM-N и 3D XPoint DIMM
DRAM + NAND + батарейка Энергонезависимое хранение
Изображения:Intel,Agigea,2018
NVDIMM в BIOS
Изображение:De--EMC,2018
PCI Express
•10 µs на 3D XPoint – это блочный бенчмарк
(fio)
Linux Kernel PCIe
generic latency
meter: 1,5 µs
•в AMD Epyc – PCIe-линии и
межпроцессорные линии
конфигурируются из одной Infinity Fabric
PCI Express и
межпроцессорный
интерконнект
•MIMO-режим для байтового доступа
•Load/Store с процессорных инструкций
Протокол NVMe
Выбор SAP Hana: «только DIMM»
Байтовая адресуемость
ассоциируется только с
DDR (DIMM form-factor)
Intel Optane PCIe
2 × Intel Optane P4800X, 375 GB
₽94800 в российском розничном интернет-магазине
за каждый ($4313/TB)
Изображения: Intel, 2018
Серия блочных тестов для Oracle Database
Влияние грануляции (размера сектора,
размера блока базы) на производительность
Влияние LVM, программного RAID и файловой
системы на работу БД
Адаптация бенчмарка orion в условиях
экстремального ввода-вывода
Влияние грануляции
+ASM, external redundancy
Параметры для
дальнейших тестов
Влияние LVM, программного RAID, ФС
Работает в один поток, не может
использовать все возможности
экстремального ввода-вывода
При одновременном запуске даёт
аддитивные показатели
Оптимум – число одновременных
запусков, равных количеству
аппаратных потоков процессора
Инструмент интересен для
измерения пишущих нагрузок
(CALIBRATE_IO = READONLY)
•Максимумы в одиночных
запусках не превосходят
350 kIOPS
•но даёт всплески по задержкам
•oltp, 100% writes: 1014 kIOPS
•… но задержки выходят всё равно
большие: avg lat = 42.728 μs
•но результаты с одновременным
запуском пока нельзя считать
надёжными
АДАПТАЦИЯ БЕНЧМАРКА ORION
Redis Enterprise Flash на Optane
Источник:RedisLabs,2017
Связующие подсистемы
Представить как обычную память
• ScaleMP (Intel Memory Drive Toolkit)
Отдать в «слойку» из памяти и блочных устройств
• Plexistor (поглощён NetApp)
Отдать с файловой системой
• И использовать возможности DAX, которые даёт файловая
система
Созданы специально для DAX + SCM
NOVA PMFS SCMFS Aerie OctopusFS UnistorFS
Замена XIP (execute-in-place)
ext4-dax xfs-dax
DAX: файловые системы
– есть на Github
ScaleMP (IMDT)
•NVMe – в том числе по сети
Пул из DDR и
NVMe-устройств
представить
памятью
•дающий возможность
перезаказа по DRAM-памяти
в ~10 раз
По сути –
многоуровневая
память (ещё один
уровень кэша)
IMDT/ScaleMP: два NUMA-шаблона
0 1 2 0 1
0 83,2 141,6 116,5 0 112 119,8
1 140,2 81,8 103,5 1 113 110,3
0 1 2 0 1
0 34,5 29,4 45,5 0 46,5 42,7
1 29,3 34,7 46,3 1 37,6 46,3
Пропускная способность, Гбайт/c
Отклик, нс
NUMA+1 1+1
*Результаты получены выполнением утилиты mlc (Intel Memory Latency Checker)
Arenadata Grid на Optane: yardstick
IMDT
•64 ГБ DRAM + 700 ГБ Optane = 500 ГБ ОЗУ
48 логических серверов
•1 нагрузочный клиент на той же машине
~200 ГБ off-heap
•Пики потребления – 248 ГБ ОЗУ
Yardstick: выбор NUMA-шаблона
kops
Выбор NUMA-шаблона: отзывчивость
мс
Yardstick: сравним с DRAM
DRAM-
платформа
3D-XPoint-
платформа
Отключить 36
потоков
Но L3-кэш
вчетверо
больше
Yardstick: атомарные операции
kops
Yardstick: SQL-операции
kQps
Yardstick: стоимость операции
k$2,4/ТБ k$10/ТБ
Размер и стоимость кластера
на 100 ТБ полезной ёмкости (млн $)
512 ГБ DRAM
6 ТБ PCIE 3D
XPoint
5 ГБ
полезной
ОЗУ
1024 ГБ
DRAM
1 ТБ
полезной
ОЗУ
Недостатки постановки
Нетипичная серверная конфигурация
• 48 серверов – издержки реализации yardstick
Никакого тюнинга
• Сборка взята как есть
• Yardstick из сборки «из коробки» (фактически оригинал от Ignite)
Задачи по результатам
• Выбор бенчмарка с явной зависимостью от размера базы
• NUMA-тюнинг
Есть опубликованные результаты с менее значимой деградацией
Memcached на IMDT, tps
Источник:Intel,336655-002US,2018
Memcached на IMDT, отклик
Источник:Intel,336655-002US,2018
Apache Spark на IMDT
Источник:Intel,33669001,2018
Модель программирования SCM
• 2014–2017
• через mmap() над файловой системой с DAX
SNIA SCM Programming model
• github.com/pmem
PMDK (Pmem.io) – образцовая реализация
Модель программирования SCM
Изображение:SNIA,2016
Программирование SCM: тонкости
Изображение,текст:Рудоф,;login:,2017
СУБД в новой модели программирования
ALTER TABLE orders ON_NVM EXCLUDE (order_tax);
Peloton
Руководитель – Эндрю
Павло из Университета
Карнеги – Меллон
HTAP SQL Начало – 2014 год Использует DAX
pmemkv
pmem.io ключ – значение
Поддерживает
device DAX
Persistent memcached
9th USENIX Workshop on Hot Topics in Storage and File Systems
(HotStorage’17)
Oracle Labs попыталась
«честно» портировать
memcached на API для
байтоадресуемой
энергонезависимой
памяти
Pmemcached: lessons learned
•Кроме центральной хэш-таблицы memcached, пришлось считать персистентными
множество связанных структур
•Определить, какие структуры требуют персистентности – нетривиально
Персистентность заразна
•Отказ от транзакционности может приводить к потере целостности
Атомарная транзакционность становится необходимой
•Переписано около 40% функций memcached
Дублирование кода неизбежно
•mmap() не гарантирует, что данный файл всегда будет связан с указанным диапазоном
виртуальной памяти
Персистентные указатели – ненадёжны
Pmemcached: lessons learned (2)
• Сессионные объекты, связанные с базой данных…
Персистентные и неперсистентные объекты
взаимодействуют неожиданным образом
Совместная инициализация персистентных и
семантически неперсистетных данных нетривиальна
• Реализация compare-and-swap в Pmemcached потребовала
дополнительной критической секции
Глубина атомарности требует переосмысления
Критические секции могут создавать серьёзные
проблемы
Pmemcached: YCSB
Источник: Oracle Labs, 2017
Исследования и возможности
для СУБД
База с нулевым временем прогрева
•Joy Arulraj, Matthew Perron, and Andrew Pavlo. 2016. Write-behind logging. Proc. VLDB Endow. 10, 4
(November 2016), 337-348. DOI: https://doi.org/10.14778/3025111.3025116
Write-behind logging
•Wook-Hee Kim, Jinwoong Kim, Woongki Baek, Beomseok Nam, and Youjip Won. NVWAL: Exploiting NVRAM in
Write-Ahead Logging. SIGPLAN Not. 51, 4 (March 2016), 385-398. DOI: https://doi.org/10.1145/2954679.2872392
WAL на NVRAM (+доставка по фабрике)
•Tianzheng Wang and Ryan Johnson. Scalable logging through emerging non-volatile memory. Proc. VLDB
Endow. 7, 10 (June 2014), 865-876. DOI: http://dx.doi.org/10.14778/2732951.2732960
Буфер на запись на NVRAM вместо WAL
Альтернативные версионники
С. Д. Кузнецов
Новые устройства хранения данных
и их влияние на технологии баз данных
Резидентные СУБД, возможно,
менее пригодны для переноса
на SCM
Принципиально
одноуровневая иерархия
Отказ от блочной структуры
хранения во всём
Использование порций
произвольного размера
для всех целей
Пересмотр функций и
грануляции логического и
физического журнала
Пример с VoltDB
(которая без WAL, но с
журналом выполнения)
// 198-й семинар Московской секции SIGMOD, http://synthesis.ipi.ac.ru/sigmod/seminar/s20171228.html
// Citforum, http://citforum.ru/database/articles/scm/
Сеть: Persistent Memory over Fabrics
Современные
потолки
200 Гбит/c
90 нс на
коммутацию
Возможности
сетей
(Infiniband, RoCE,
Omnipath)
RDMA
CPU offload*
NVMe-over-
Fabrics
Пока
поддерживается
только блочная
семантика
Принципиально
операции с
памятью могут
быть включены в
протокол
Реализации сети
с семантикой
памяти
pNFS+RDMA
(Крис Хельвиг)
OctopusFS
(DAX+RDMA)
librpmem c
RDMA
(pmem.io)
Агрегация терабайтов на одном узле
Разделяемая между узлами память
Защита (зеркало), репликация
Программно-определяемая память
Gen-Z
• Консорциум IBM,
Dell, HPE, Micron,
Mellanox….,
создающий
свободный протокол
сетевого
межсоединения «с
семантикой памяти»
•[без NVidia, Cisco, Intel]
HPE The
Machine
•Прототип со 160 ТБ в
одной системе на
мемристорах
•“Memory-centric rack-
scale architecture”
Путь Silicon
Photonics (Intel)
• Межсоединение
на кремниевой
фотонике
• Optane
•«Программно-
определяемая
инфраструктура»
… в конструкциях будущего
Итоги
Но наибольший эффект можно получить только при существенной переработке на
стороне самой СУБД
Альтернативные архитектурные
решения
•журналирование и репликация
•буферы, кэши, индексы, связанные структуры
•прогрев…
Возможно, для разных таймингов –
разные решения
•NVDIM-N vs XPoint
•DIMM vs PCIe
Даже без переработок можно получить заметные эффекты
Для СУБД, самостоятельно
работающих с блочным
устройством
Для резидентных СУБД, получающих
эффект от агрегации большого
объёма памяти на одном узле
(Обозримая доработка?):
журнал на
энергонезависимую память
Энергонезависимая память открывает океан
возможностей для СУБД

More Related Content

PDF
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
PDF
Архитектура HAWQ / Алексей Грищенко (Pivotal)
PPTX
Пишем самый быстрый хеш для кэширования данных
PDF
Семантическое ядро рунета - высоконагруженная сontent-based рекомендательная ...
PPTX
Тестируем производительность распределённых систем, Александр Киров (Parallels)
PDF
My talk at Highload++ 2015
PPTX
Производительность Unity3D: подводные камни / Алексей Чубарь (BIT.GAMES)
PPTX
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
Архитектура HAWQ / Алексей Грищенко (Pivotal)
Пишем самый быстрый хеш для кэширования данных
Семантическое ядро рунета - высоконагруженная сontent-based рекомендательная ...
Тестируем производительность распределённых систем, Александр Киров (Parallels)
My talk at Highload++ 2015
Производительность Unity3D: подводные камни / Алексей Чубарь (BIT.GAMES)
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...

What's hot (20)

PDF
Денис Иванов
PPTX
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
PDF
Uawebchallenge.yandex.tank
PDF
Базы данных. MongoDB
PDF
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...
PPTX
Многопоточность в играх. Игорь Лобанчиков. CoreHard Spring 2019
PDF
Григорий Липин: Автоматизация нагрузочного тестирования
PDF
Веб-сервер Phantom
PDF
Нагрузочное тестирование с помощью Яндекс.Танка
PPTX
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
PDF
Алексей Федоров
PPTX
Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)
PDF
Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)
PDF
Выжимаем из сервера максимум (Андрей Паньгин)
PDF
андрей паньгин
PPTX
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)
PDF
Незаурядная Java как инструмент разработки высоконагруженного сервера
PDF
Олесь Писаренко "Открываем Яндекс.Танк"
PDF
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
PPTX
SPCUA - Virtual SharePoint (Russian version)
Денис Иванов
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
Uawebchallenge.yandex.tank
Базы данных. MongoDB
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...
Многопоточность в играх. Игорь Лобанчиков. CoreHard Spring 2019
Григорий Липин: Автоматизация нагрузочного тестирования
Веб-сервер Phantom
Нагрузочное тестирование с помощью Яндекс.Танка
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Алексей Федоров
Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)
Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)
Выжимаем из сервера максимум (Андрей Паньгин)
андрей паньгин
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)
Незаурядная Java как инструмент разработки высоконагруженного сервера
Олесь Писаренко "Открываем Яндекс.Танк"
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
SPCUA - Virtual SharePoint (Russian version)
Ad

Similar to Байтоадресуемая энергонезависимая память и СУБД (20)

PDF
Метаданные для кластера: гонка key-value-героев / Руслан Рагимов, Светлана Ла...
PDF
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
 
PDF
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
PDF
Машины баз данных: концентрированное обозрение
PPTX
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
PDF
Машины баз данных на Web-scale IT — 2017 (РИТ++)
PDF
Машины баз данных: таксономия, анатомия, эволюция, ареал, воспроизведение / А...
PDF
Новости и анонсы конференции Oracle Open World 2013
PDF
DB-Technologies-2017 Keynote (Strategy and tactics for db evaluation)
PDF
IBM FlashSystem-Бескомпромиссность в каждом байте
PDF
IBM FlashSystem-Бескомпромиссность в каждом байте
PDF
MySQL NDB Cluster
PPTX
Обзор TimesTen In-Memory Database
PDF
Новости и анонсы Oracle Open World 2014
PPTX
IBM Technology Day 2013 Sy Storage
PPTX
Выбираем СУБД для хранения временных рядов / Павел Филонов (Лаборатория Каспе...
PDF
Дмитрий Еманов — Под капотом серверного ПО
PPTX
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
PDF
Db in-memory-overview 2015-10_14
PDF
Short Infrastructure Overview ru hpe Vertica
Метаданные для кластера: гонка key-value-героев / Руслан Рагимов, Светлана Ла...
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
Машины баз данных: концентрированное обозрение
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Машины баз данных на Web-scale IT — 2017 (РИТ++)
Машины баз данных: таксономия, анатомия, эволюция, ареал, воспроизведение / А...
Новости и анонсы конференции Oracle Open World 2013
DB-Technologies-2017 Keynote (Strategy and tactics for db evaluation)
IBM FlashSystem-Бескомпромиссность в каждом байте
IBM FlashSystem-Бескомпромиссность в каждом байте
MySQL NDB Cluster
Обзор TimesTen In-Memory Database
Новости и анонсы Oracle Open World 2014
IBM Technology Day 2013 Sy Storage
Выбираем СУБД для хранения временных рядов / Павел Филонов (Лаборатория Каспе...
Дмитрий Еманов — Под капотом серверного ПО
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
Db in-memory-overview 2015-10_14
Short Infrastructure Overview ru hpe Vertica
Ad

More from Andrei Nikolaenko (13)

PDF
Нереляционный SQL
PDF
DBMS Benchmarks in a Nutshell
PDF
Инструменты больших данных: от конкуренции — к интеграции
PDF
Эталонные тесты производительнсоти СУБД: обзор и тенденции
PDF
DBMS benchmarking overview and trends for Moscow ACM SIGMOD Chapter
PDF
Note on hyperconvered infrastructure on CIPR
PDF
SQL+NoSQL: On the Way to Converged Data Management Platforms
PDF
DBMS benchmarking overview
PDF
NoSQL: issues and progress, current status and prospects
PDF
Cloud Databases, ACM SIGMOD Moscow Workshop, November, 2013
PDF
Rapid Deployment of Hadoop Development Environments
PDF
Introductory Keynote at Hadoop Workshop by Ospcon (2014)
PDF
IBS at IBM Fast Data (Moscow, 2014)
Нереляционный SQL
DBMS Benchmarks in a Nutshell
Инструменты больших данных: от конкуренции — к интеграции
Эталонные тесты производительнсоти СУБД: обзор и тенденции
DBMS benchmarking overview and trends for Moscow ACM SIGMOD Chapter
Note on hyperconvered infrastructure on CIPR
SQL+NoSQL: On the Way to Converged Data Management Platforms
DBMS benchmarking overview
NoSQL: issues and progress, current status and prospects
Cloud Databases, ACM SIGMOD Moscow Workshop, November, 2013
Rapid Deployment of Hadoop Development Environments
Introductory Keynote at Hadoop Workshop by Ospcon (2014)
IBS at IBM Fast Data (Moscow, 2014)

Байтоадресуемая энергонезависимая память и СУБД

  • 2. Отказ от ответственности Представлено исключительно частное мнение и личные оценки • За постановки экспериментов и интерпретации отвечает лично автор, но не аффилированные с ним институты • Цель: только товарищеский обмен мнениями Все экономические показатели – личные умозрительные подсчёты • Цены и оценки стоимости тех или иных компонентов взяты из условно надёжных открытых и независимых от вендоров источников (периодика, отчёты профессиональных аналитиков)
  • 4. Память со свойствами накопителя Память Дорогая Неёмкая Энергозависимая Байтоадресуемая Сверхотзывчивая Load/Store Storage-class memory Не очень дорогая Достаточно ёмкая Энергонезависимая Байтоадресуемая Отзывчивая Load/Store Накопитель Недорогой Ёмкий Энергонезависимый Блочный Неотзывчивый Ввод-вывод через очереди
  • 5. Материальная классификация Флэш- защита NVDIMM-F NVDIMM-P NVDIMM-N Фазовый переход 3D XPoint Micron QuantX Intel Optane Резистивная память STT-RAM (спинтроника) Everspin Crocus Crocus - Nano ReRAM Panasonic Crossbar MRAM Samsung HPE Memristor +Исторические: магнитоэлектронная, сегнетоэлектрическая, … +Перспективные: беговая (Racetrack), на нанотрубках, …
  • 6. Виды памяти: характеристики DRAM NVDIMM-N NVDIMM-F XPoint-DIMM XPoint-NVMe STT-RAM ReRAM MRAM 3D NAND Интерфейс DIMM DIMM DIMM DIMM PCI Express DIMM DIMM DIMM PCI Express Энергонеза- висимость Нет Да Да Да Да Да Да Да Да Адресуемость Байтовая Байтовая Блочная Байтовая Байтовая Байтовая Байтовая Байтовая Блочная Энергия доступа, пДж 2 2 10000 2 2 0,02 100 100 10000 Задержка на чтение, нс 100 100 20000 250 10000* 20 100 ? 100? 25000 Задержка на запись, нс 100 100 250000 250 10000* 20 100? 100? 300000 Ёмкость модуля, ГБ 128 32 512 512 1536 4 ? 0,0625 16000 Стойкость, DWPD ↑ ↑ 10 100 100 ↑ 40? ↑ 3 Стоимость, k$/ТБ 10 20 2 4? 2,4 ↑ ↑ ↑ 0,8 * блочный тест
  • 8. NVDIMM-N и 3D XPoint DIMM DRAM + NAND + батарейка Энергонезависимое хранение Изображения:Intel,Agigea,2018
  • 10. PCI Express •10 µs на 3D XPoint – это блочный бенчмарк (fio) Linux Kernel PCIe generic latency meter: 1,5 µs •в AMD Epyc – PCIe-линии и межпроцессорные линии конфигурируются из одной Infinity Fabric PCI Express и межпроцессорный интерконнект •MIMO-режим для байтового доступа •Load/Store с процессорных инструкций Протокол NVMe
  • 11. Выбор SAP Hana: «только DIMM» Байтовая адресуемость ассоциируется только с DDR (DIMM form-factor)
  • 12. Intel Optane PCIe 2 × Intel Optane P4800X, 375 GB ₽94800 в российском розничном интернет-магазине за каждый ($4313/TB) Изображения: Intel, 2018
  • 13. Серия блочных тестов для Oracle Database Влияние грануляции (размера сектора, размера блока базы) на производительность Влияние LVM, программного RAID и файловой системы на работу БД Адаптация бенчмарка orion в условиях экстремального ввода-вывода
  • 14. Влияние грануляции +ASM, external redundancy Параметры для дальнейших тестов
  • 16. Работает в один поток, не может использовать все возможности экстремального ввода-вывода При одновременном запуске даёт аддитивные показатели Оптимум – число одновременных запусков, равных количеству аппаратных потоков процессора Инструмент интересен для измерения пишущих нагрузок (CALIBRATE_IO = READONLY) •Максимумы в одиночных запусках не превосходят 350 kIOPS •но даёт всплески по задержкам •oltp, 100% writes: 1014 kIOPS •… но задержки выходят всё равно большие: avg lat = 42.728 μs •но результаты с одновременным запуском пока нельзя считать надёжными АДАПТАЦИЯ БЕНЧМАРКА ORION
  • 17. Redis Enterprise Flash на Optane Источник:RedisLabs,2017
  • 18. Связующие подсистемы Представить как обычную память • ScaleMP (Intel Memory Drive Toolkit) Отдать в «слойку» из памяти и блочных устройств • Plexistor (поглощён NetApp) Отдать с файловой системой • И использовать возможности DAX, которые даёт файловая система
  • 19. Созданы специально для DAX + SCM NOVA PMFS SCMFS Aerie OctopusFS UnistorFS Замена XIP (execute-in-place) ext4-dax xfs-dax DAX: файловые системы – есть на Github
  • 20. ScaleMP (IMDT) •NVMe – в том числе по сети Пул из DDR и NVMe-устройств представить памятью •дающий возможность перезаказа по DRAM-памяти в ~10 раз По сути – многоуровневая память (ещё один уровень кэша)
  • 21. IMDT/ScaleMP: два NUMA-шаблона 0 1 2 0 1 0 83,2 141,6 116,5 0 112 119,8 1 140,2 81,8 103,5 1 113 110,3 0 1 2 0 1 0 34,5 29,4 45,5 0 46,5 42,7 1 29,3 34,7 46,3 1 37,6 46,3 Пропускная способность, Гбайт/c Отклик, нс NUMA+1 1+1 *Результаты получены выполнением утилиты mlc (Intel Memory Latency Checker)
  • 22. Arenadata Grid на Optane: yardstick IMDT •64 ГБ DRAM + 700 ГБ Optane = 500 ГБ ОЗУ 48 логических серверов •1 нагрузочный клиент на той же машине ~200 ГБ off-heap •Пики потребления – 248 ГБ ОЗУ
  • 25. Yardstick: сравним с DRAM DRAM- платформа 3D-XPoint- платформа Отключить 36 потоков Но L3-кэш вчетверо больше
  • 29. Размер и стоимость кластера на 100 ТБ полезной ёмкости (млн $) 512 ГБ DRAM 6 ТБ PCIE 3D XPoint 5 ГБ полезной ОЗУ 1024 ГБ DRAM 1 ТБ полезной ОЗУ
  • 30. Недостатки постановки Нетипичная серверная конфигурация • 48 серверов – издержки реализации yardstick Никакого тюнинга • Сборка взята как есть • Yardstick из сборки «из коробки» (фактически оригинал от Ignite) Задачи по результатам • Выбор бенчмарка с явной зависимостью от размера базы • NUMA-тюнинг Есть опубликованные результаты с менее значимой деградацией
  • 31. Memcached на IMDT, tps Источник:Intel,336655-002US,2018
  • 32. Memcached на IMDT, отклик Источник:Intel,336655-002US,2018
  • 33. Apache Spark на IMDT Источник:Intel,33669001,2018
  • 34. Модель программирования SCM • 2014–2017 • через mmap() над файловой системой с DAX SNIA SCM Programming model • github.com/pmem PMDK (Pmem.io) – образцовая реализация
  • 37. СУБД в новой модели программирования ALTER TABLE orders ON_NVM EXCLUDE (order_tax); Peloton Руководитель – Эндрю Павло из Университета Карнеги – Меллон HTAP SQL Начало – 2014 год Использует DAX pmemkv pmem.io ключ – значение Поддерживает device DAX
  • 38. Persistent memcached 9th USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage’17) Oracle Labs попыталась «честно» портировать memcached на API для байтоадресуемой энергонезависимой памяти
  • 39. Pmemcached: lessons learned •Кроме центральной хэш-таблицы memcached, пришлось считать персистентными множество связанных структур •Определить, какие структуры требуют персистентности – нетривиально Персистентность заразна •Отказ от транзакционности может приводить к потере целостности Атомарная транзакционность становится необходимой •Переписано около 40% функций memcached Дублирование кода неизбежно •mmap() не гарантирует, что данный файл всегда будет связан с указанным диапазоном виртуальной памяти Персистентные указатели – ненадёжны
  • 40. Pmemcached: lessons learned (2) • Сессионные объекты, связанные с базой данных… Персистентные и неперсистентные объекты взаимодействуют неожиданным образом Совместная инициализация персистентных и семантически неперсистетных данных нетривиальна • Реализация compare-and-swap в Pmemcached потребовала дополнительной критической секции Глубина атомарности требует переосмысления Критические секции могут создавать серьёзные проблемы
  • 42. Исследования и возможности для СУБД База с нулевым временем прогрева •Joy Arulraj, Matthew Perron, and Andrew Pavlo. 2016. Write-behind logging. Proc. VLDB Endow. 10, 4 (November 2016), 337-348. DOI: https://doi.org/10.14778/3025111.3025116 Write-behind logging •Wook-Hee Kim, Jinwoong Kim, Woongki Baek, Beomseok Nam, and Youjip Won. NVWAL: Exploiting NVRAM in Write-Ahead Logging. SIGPLAN Not. 51, 4 (March 2016), 385-398. DOI: https://doi.org/10.1145/2954679.2872392 WAL на NVRAM (+доставка по фабрике) •Tianzheng Wang and Ryan Johnson. Scalable logging through emerging non-volatile memory. Proc. VLDB Endow. 7, 10 (June 2014), 865-876. DOI: http://dx.doi.org/10.14778/2732951.2732960 Буфер на запись на NVRAM вместо WAL Альтернативные версионники
  • 43. С. Д. Кузнецов Новые устройства хранения данных и их влияние на технологии баз данных Резидентные СУБД, возможно, менее пригодны для переноса на SCM Принципиально одноуровневая иерархия Отказ от блочной структуры хранения во всём Использование порций произвольного размера для всех целей Пересмотр функций и грануляции логического и физического журнала Пример с VoltDB (которая без WAL, но с журналом выполнения) // 198-й семинар Московской секции SIGMOD, http://synthesis.ipi.ac.ru/sigmod/seminar/s20171228.html // Citforum, http://citforum.ru/database/articles/scm/
  • 44. Сеть: Persistent Memory over Fabrics Современные потолки 200 Гбит/c 90 нс на коммутацию Возможности сетей (Infiniband, RoCE, Omnipath) RDMA CPU offload* NVMe-over- Fabrics Пока поддерживается только блочная семантика Принципиально операции с памятью могут быть включены в протокол Реализации сети с семантикой памяти pNFS+RDMA (Крис Хельвиг) OctopusFS (DAX+RDMA) librpmem c RDMA (pmem.io) Агрегация терабайтов на одном узле Разделяемая между узлами память Защита (зеркало), репликация
  • 45. Программно-определяемая память Gen-Z • Консорциум IBM, Dell, HPE, Micron, Mellanox…., создающий свободный протокол сетевого межсоединения «с семантикой памяти» •[без NVidia, Cisco, Intel] HPE The Machine •Прототип со 160 ТБ в одной системе на мемристорах •“Memory-centric rack- scale architecture” Путь Silicon Photonics (Intel) • Межсоединение на кремниевой фотонике • Optane •«Программно- определяемая инфраструктура» … в конструкциях будущего
  • 46. Итоги Но наибольший эффект можно получить только при существенной переработке на стороне самой СУБД Альтернативные архитектурные решения •журналирование и репликация •буферы, кэши, индексы, связанные структуры •прогрев… Возможно, для разных таймингов – разные решения •NVDIM-N vs XPoint •DIMM vs PCIe Даже без переработок можно получить заметные эффекты Для СУБД, самостоятельно работающих с блочным устройством Для резидентных СУБД, получающих эффект от агрегации большого объёма памяти на одном узле (Обозримая доработка?): журнал на энергонезависимую память Энергонезависимая память открывает океан возможностей для СУБД