SlideShare a Scribd company logo
Байтоадресуемая
энергонезависимая память
и СУБД
Андрей Николаенко (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

What's hot

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

What's hot (20)

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

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

Где сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchГде сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearch
Илья Середа
 
HPC file systems (160761)
HPC file systems (160761)HPC file systems (160761)
HPC file systems (160761)
Vsevolod Shabad
 
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиАндрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
IBS
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
Ontico
 
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл КоринскийСравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл КоринскийFuenteovejuna
 
Multithreading in JS. Myth or reality?
Multithreading in JS. Myth or reality?Multithreading in JS. Myth or reality?
Multithreading in JS. Myth or reality?
Alexander Syrotenko
 
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
Ontico
 
Флеш в серверах: работа со скоростью вспышки
Флеш в серверах: работа со скоростью вспышкиФлеш в серверах: работа со скоростью вспышки
Флеш в серверах: работа со скоростью вспышки
КРОК
 
Violin Memory. Первая скрипка Huawei Dorado. Антикризисное решение
Violin Memory. Первая скрипка Huawei Dorado. Антикризисное решениеViolin Memory. Первая скрипка Huawei Dorado. Антикризисное решение
Violin Memory. Первая скрипка Huawei Dorado. Антикризисное решение
КРОК
 
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)Ontico
 
Aлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreetAлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreet
Ontico
 
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Ontico
 
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)
Ontico
 
[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoFAleksey Shipilev
 
Много данных, много вычислений: есть ли жизнь на Amazon'е
Много данных, много вычислений: есть ли жизнь на Amazon'еМного данных, много вычислений: есть ли жизнь на Amazon'е
Много данных, много вычислений: есть ли жизнь на Amazon'е
Alexander Byndyu
 
Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...
Ontico
 
CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...
CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...
CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...CodeFest
 
Oracle database In-Memory - новая технология обработки в памяти
Oracle database In-Memory - новая технология обработки в памятиOracle database In-Memory - новая технология обработки в памяти
Oracle database In-Memory - новая технология обработки в памятиAndrey Akulov
 
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...CodeFest
 
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
Ontico
 

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

Где сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchГде сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearch
 
HPC file systems (160761)
HPC file systems (160761)HPC file systems (160761)
HPC file systems (160761)
 
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиАндрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
 
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл КоринскийСравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
 
Multithreading in JS. Myth or reality?
Multithreading in JS. Myth or reality?Multithreading in JS. Myth or reality?
Multithreading in JS. Myth or reality?
 
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
 
Флеш в серверах: работа со скоростью вспышки
Флеш в серверах: работа со скоростью вспышкиФлеш в серверах: работа со скоростью вспышки
Флеш в серверах: работа со скоростью вспышки
 
Violin Memory. Первая скрипка Huawei Dorado. Антикризисное решение
Violin Memory. Первая скрипка Huawei Dorado. Антикризисное решениеViolin Memory. Первая скрипка Huawei Dorado. Антикризисное решение
Violin Memory. Первая скрипка Huawei Dorado. Антикризисное решение
 
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
 
Aлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreetAлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreet
 
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
 
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)
 
[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF
 
Много данных, много вычислений: есть ли жизнь на Amazon'е
Много данных, много вычислений: есть ли жизнь на Amazon'еМного данных, много вычислений: есть ли жизнь на Amazon'е
Много данных, много вычислений: есть ли жизнь на Amazon'е
 
Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...
 
CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...
CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...
CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...
 
Oracle database In-Memory - новая технология обработки в памяти
Oracle database In-Memory - новая технология обработки в памятиOracle database In-Memory - новая технология обработки в памяти
Oracle database In-Memory - новая технология обработки в памяти
 
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
 
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
 

More from Andrei Nikolaenko

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

More from Andrei Nikolaenko (16)

Машины баз данных: концентрированное обозрение
Машины баз данных: концентрированное обозрениеМашины баз данных: концентрированное обозрение
Машины баз данных: концентрированное обозрение
 
DB-Technologies-2017 Keynote (Strategy and tactics for db evaluation)
DB-Technologies-2017 Keynote (Strategy and tactics for db evaluation)DB-Technologies-2017 Keynote (Strategy and tactics for db evaluation)
DB-Technologies-2017 Keynote (Strategy and tactics for db evaluation)
 
Нереляционный SQL
Нереляционный SQLНереляционный SQL
Нереляционный SQL
 
DBMS Benchmarks in a Nutshell
DBMS Benchmarks in a Nutshell DBMS Benchmarks in a Nutshell
DBMS Benchmarks in a Nutshell
 
Инструменты больших данных: от конкуренции — к интеграции
Инструменты больших данных: от конкуренции — к интеграцииИнструменты больших данных: от конкуренции — к интеграции
Инструменты больших данных: от конкуренции — к интеграции
 
Машины баз данных на Web-scale IT — 2017 (РИТ++)
Машины баз данных на Web-scale IT — 2017 (РИТ++)Машины баз данных на Web-scale IT — 2017 (РИТ++)
Машины баз данных на Web-scale IT — 2017 (РИТ++)
 
Эталонные тесты производительнсоти СУБД: обзор и тенденции
Эталонные тесты производительнсоти СУБД: обзор и тенденцииЭталонные тесты производительнсоти СУБД: обзор и тенденции
Эталонные тесты производительнсоти СУБД: обзор и тенденции
 
DBMS benchmarking overview and trends for Moscow ACM SIGMOD Chapter
DBMS benchmarking overview and trends for Moscow ACM SIGMOD ChapterDBMS benchmarking overview and trends for Moscow ACM SIGMOD Chapter
DBMS benchmarking overview and trends for Moscow ACM SIGMOD Chapter
 
Note on hyperconvered infrastructure on CIPR
Note on hyperconvered infrastructure on CIPR Note on hyperconvered infrastructure on CIPR
Note on hyperconvered infrastructure on CIPR
 
SQL+NoSQL: On the Way to Converged Data Management Platforms
SQL+NoSQL: On the Way to Converged Data Management PlatformsSQL+NoSQL: On the Way to Converged Data Management Platforms
SQL+NoSQL: On the Way to Converged Data Management Platforms
 
DBMS benchmarking overview
DBMS benchmarking overviewDBMS benchmarking overview
DBMS benchmarking overview
 
NoSQL: issues and progress, current status and prospects
NoSQL: issues and progress, current status and prospectsNoSQL: issues and progress, current status and prospects
NoSQL: issues and progress, current status and prospects
 
Cloud Databases, ACM SIGMOD Moscow Workshop, November, 2013
Cloud Databases, ACM SIGMOD Moscow Workshop, November, 2013Cloud Databases, ACM SIGMOD Moscow Workshop, November, 2013
Cloud Databases, ACM SIGMOD Moscow Workshop, November, 2013
 
Rapid Deployment of Hadoop Development Environments
Rapid Deployment of Hadoop Development EnvironmentsRapid Deployment of Hadoop Development Environments
Rapid Deployment of Hadoop Development Environments
 
Introductory Keynote at Hadoop Workshop by Ospcon (2014)
Introductory Keynote at Hadoop Workshop by Ospcon (2014)Introductory Keynote at Hadoop Workshop by Ospcon (2014)
Introductory Keynote at Hadoop Workshop by Ospcon (2014)
 
IBS at IBM Fast Data (Moscow, 2014)
IBS at IBM Fast Data (Moscow, 2014)IBS at IBM Fast Data (Moscow, 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 Даже без переработок можно получить заметные эффекты Для СУБД, самостоятельно работающих с блочным устройством Для резидентных СУБД, получающих эффект от агрегации большого объёма памяти на одном узле (Обозримая доработка?): журнал на энергонезависимую память Энергонезависимая память открывает океан возможностей для СУБД