Архитектура HAWQ / Алексей Грищенко (Pivotal)Ontico
HAWQ — один из лучших на рынке движков SQL-on-Hadoop, который не раз доказывал свою лидирующую позицию в открытых тестированиях. Что еще более интересно, в конце сентября этого года Pivotal открыл его исходный код под лицензией Apache, а также разместил сам проект в инкубаторе Apache (http://hawq.incubator.apache.org), что делает этот инструмент доступным большому кругу пользователей и намного более привлекательным для компаний — лидеров интернет-индустрии.
Работая в Pivotal, я участвовал в развитии и внедрении этого продукта с первого дня его существования.
В этой презентации я раскрою следующие темы:
+ Что такое HAWQ и зачем он был создан.
+ Кластерная архитектура HAWQ.
+ Принципы работы HAWQ.
+ Внутреннее устройство процессов HAWQ.
+ Интеграция с внешними системами.
+ Альтернативные решения.
Пишем самый быстрый хеш для кэширования данныхRoman Elizarov
Типичный случай — приложению работающему с БД некоторые объекты нужны так часто, то их необходимо кэшировать в памяти. В этом случае их кладут в структуру данных типа хэш. Однако, бывают случаи, когда даже поиск в этом хэше становится узким местом приложения и решения из стандартных библиотек перестают устраивать по своей производительности.
Основной упор доклада будет не на конкретный алгоритм, а на та техниках дизайна быстрых алгоритмов — на что надо обращать внимание, как вообще подходить к решению подобных задач.
В докладе мы поделимся опытом создания content-based рекомендательной системы для электронной коммерции, работающей на семантическом ядре рунета (десятки миллионов профилей). Расскажем, как организовали централизованный сбор и обработку информации о посещении пользователями более 100 000 сайтов различной направленности на основе Amazon Kinesis. Поделимся опытом многопоточной онлайн-индексации потоков данных в Lucene. Продемонстрируем используемые базовые алгоритмы ранжирования и формирования персональных рекомендаций для посетителей более 20 000 интернет-магазинов.
Поговорим о плюсах и минусах лямбда-архитектур и обоснуем выбранное нами архитектурное решение. Отдельно остановимся на тонкостях технической реализации многопоточных алгоритмов и особенностях обеспечения реального времени - поступившая информация о действиях посетителя практически мгновенно учитывается рекомендательным движком, обеспечивая максимальную конверсию.
Производительность Unity3D: подводные камни / Алексей Чубарь (BIT.GAMES)Ontico
Unity3D - это внушительный набор средств для кроссплатформенной разработки игр и 3D-приложений. Однако ряд его особенностей может привести к внезапному падению производительности продукта на мобильных платформах.
Где же прячутся подводные камни? Как обеспечить оптимальный user experience на старом смартфоне? Каких "граблей" стоит избегать при написании кода и подготовке графики? Рассмотрим на примере RPG "Гильдия Героев" для Android и iOS.
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...Ontico
Общие принципы оптимизации производительности мобильных приложений:
- работа с длинными списками — таблицы, коллекции;
- графика — загрузка из сети, кэширование;
- ленивая загрузка частей приложения.
Работа с периодически обновляемыми структурированными данными.
- как передавать данные с сервера на клиент: запросы, объем, формат, десериализация;
- как хранить полученные данные на клиенте — виды хранилищ: от плоских файлов до NoSQL.
Практический кейс. "Едадил": как мы ускоряли работу приложения для Android.
Архитектура HAWQ / Алексей Грищенко (Pivotal)Ontico
HAWQ — один из лучших на рынке движков SQL-on-Hadoop, который не раз доказывал свою лидирующую позицию в открытых тестированиях. Что еще более интересно, в конце сентября этого года Pivotal открыл его исходный код под лицензией Apache, а также разместил сам проект в инкубаторе Apache (http://hawq.incubator.apache.org), что делает этот инструмент доступным большому кругу пользователей и намного более привлекательным для компаний — лидеров интернет-индустрии.
Работая в Pivotal, я участвовал в развитии и внедрении этого продукта с первого дня его существования.
В этой презентации я раскрою следующие темы:
+ Что такое HAWQ и зачем он был создан.
+ Кластерная архитектура HAWQ.
+ Принципы работы HAWQ.
+ Внутреннее устройство процессов HAWQ.
+ Интеграция с внешними системами.
+ Альтернативные решения.
Пишем самый быстрый хеш для кэширования данныхRoman Elizarov
Типичный случай — приложению работающему с БД некоторые объекты нужны так часто, то их необходимо кэшировать в памяти. В этом случае их кладут в структуру данных типа хэш. Однако, бывают случаи, когда даже поиск в этом хэше становится узким местом приложения и решения из стандартных библиотек перестают устраивать по своей производительности.
Основной упор доклада будет не на конкретный алгоритм, а на та техниках дизайна быстрых алгоритмов — на что надо обращать внимание, как вообще подходить к решению подобных задач.
В докладе мы поделимся опытом создания content-based рекомендательной системы для электронной коммерции, работающей на семантическом ядре рунета (десятки миллионов профилей). Расскажем, как организовали централизованный сбор и обработку информации о посещении пользователями более 100 000 сайтов различной направленности на основе Amazon Kinesis. Поделимся опытом многопоточной онлайн-индексации потоков данных в Lucene. Продемонстрируем используемые базовые алгоритмы ранжирования и формирования персональных рекомендаций для посетителей более 20 000 интернет-магазинов.
Поговорим о плюсах и минусах лямбда-архитектур и обоснуем выбранное нами архитектурное решение. Отдельно остановимся на тонкостях технической реализации многопоточных алгоритмов и особенностях обеспечения реального времени - поступившая информация о действиях посетителя практически мгновенно учитывается рекомендательным движком, обеспечивая максимальную конверсию.
Производительность Unity3D: подводные камни / Алексей Чубарь (BIT.GAMES)Ontico
Unity3D - это внушительный набор средств для кроссплатформенной разработки игр и 3D-приложений. Однако ряд его особенностей может привести к внезапному падению производительности продукта на мобильных платформах.
Где же прячутся подводные камни? Как обеспечить оптимальный user experience на старом смартфоне? Каких "граблей" стоит избегать при написании кода и подготовке графики? Рассмотрим на примере RPG "Гильдия Героев" для Android и iOS.
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...Ontico
Общие принципы оптимизации производительности мобильных приложений:
- работа с длинными списками — таблицы, коллекции;
- графика — загрузка из сети, кэширование;
- ленивая загрузка частей приложения.
Работа с периодически обновляемыми структурированными данными.
- как передавать данные с сервера на клиент: запросы, объем, формат, десериализация;
- как хранить полученные данные на клиенте — виды хранилищ: от плоских файлов до NoSQL.
Практический кейс. "Едадил": как мы ускоряли работу приложения для Android.
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...Ontico
Facebook использует MySQL в качестве основного хранилища данных. MySQL работает на десятках тысяч серверов в нескольких ЦОДах. В качестве дисков используются Flash-накопители. Они дают большую производительность, но дорогой ценой — MySQL хранит данные на диске в структуре B-tree, которая использует flash-диск неоптимальным образом. В масштабах Facebook'a цена вопроса измеряется миллионами долларов.
Для оптимального использования Flash-дисков в Facebook была разработана библиотека RocksDB. Она основана на LSM-деревьях и оптимизирована для работы в условиях высокой загрузки. Чтобы использовать ее из MySQL, [совместно с MariaDB] был разработан табличный движок — MyRocks.
Данный доклад посвящен RocksDB и MyRocks. Мы расскажем о принципах их работы и преимуществах, как их настраивать, и какие возможны подводные камни.
Авторы доклада — ведущие разработчики MyRocks от Facebook и MariaDB.
RocksDB и MyRocks доступны на GitHub для свободного использования, участие в разработке также приветствуется.
Григорий Липин: Автоматизация нагрузочного тестированияYandex
Доклад посвящен нагрузочному тестированию. Мы поделимся своим опытом и расскажем, как автоматизировать нагрузочное тестирование с помощью инструмента Яндекс.Танк.
При проектировании нагруженных систем приходится сталкиваться с тем, что разные типы запросов к веб-серверам затрачивают разное количество ресурсов, выполняются за разное количество времени и имеют разные приоритеты выполнения. Некоторые запросы «стоят» мало и должны выполняться как можно быстрее. Некоторые «стоят» дорого, и главное, чтобы они не блокировали обработку быстрых запросов. Существующие схемы приоритезации показались нам громоздкими и неудобными – при росте количества типов запросов конфигурация системы усложнялась в разы. Поэтому, чтобы решить эту проблему, а также для того, чтобы сделать ответы на запросы еще более быстрыми, мы написали свой веб-сервер – Phantom. Я расскажу вам, как он устроен, покажу, какие задачи можно решать с его помощью, а в завершение покажу на практике, как работает приоритезация разных типов запросов, используя для этого инструмент нагрузочного тестирования, основанный на Phantom.
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Ontico
В докладе рассмотрим нашу старую архитектуру пайплайна машинного обучения, обратим внимание на ее недостатки как с точки зрения инфраструктуры и автоматизации, так и с точки зрения настройки моделей машинного обучения и проведения экспериментов. Разберемся с архитектурой Apache Spark, и почему мы решили его использовать. Подробно ознакомимся с новой архитектурой нашего пайплайна и тем, как она позволила оптимизировать обнаружение и устранение проблем, ускорила и упростила работу data scientist'ов по проведению экспериментов и доведения их до продакшена. Также затронем вопросы написания тестов и процесса разработки ПО на больших данных.
Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)Ontico
Artisto - первое в мире мобильное приложение для обработки видео с помощью нейросетей в стиле картин художников и любых исходных изображений. Приложение вошло в топы AppStore и Google Play в США.
В рамках доклада расскажу:
- как научить нейросети рисовать, а, главное, красиво и быстро;
- про особенности переноса стиля на видео;
- про технологический стек.
WebGL многими воспринимается как API для "быстрого" рисования. Но на практике нередко случается, что решение на WebGL выходит медленным, иногда даже медленнее решений на других API.
В этом докладе мы попробуем взглянуть на проблемы производительности, встречающиеся в работе с WebGL, и их решения на примере движка Панорам Яндекс.Карт.
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)Ontico
Многие из вас, наверное, видели результаты тестов сравнения Tarantool с остальными СУБД, которые показывают, что Tarantool быстрее всех, оптимальней по памяти, обрабатывает наибольшее количество транзакций в секунду.
И, несмотря на то, что исходные коды всех тестов полностью открыты и хорошо откомментированы, позволяя всем желающим повторить тесты, все равно остаются вопросы - за счет чего Tarantool такой быстрый и оптимальный?
Я решил суммировать мои ответы на эти вопросы в докладе на Highload++.
Итак, почему Tarantool такой быстрый?
Краткий ответ: потому что он с самого начала разрабатывался и до сих пор разрабатывается во главе угла с производительностью/оптимальностью/минимальным потреблением всех ресурсов системы.
Более полный ответ я раскрою в своем выступлении. Приходите, будет интересно! :)
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...Ontico
Современные процессоры имеют на борту по нескольку вычислительных ядер, позволяющих запускать задачи на них параллельно. И, казалось бы, вот оно — счастье: бей большие задачи на куски, запускай эти куски параллельно на разных ядрах и радуйся.
Но не все так просто. Для того чтобы одновременный доступ к общим данным выполнялся корректно, современные системы используют разные примитивы синхронизации. В основе одних лежат блокировки (locks), в основе других — операции типа сравнение-с-обменом (compare-and-swap). Однако и у тех и у других есть свои слабые места. О них мы и поговорим.
Из доклада вы узнаете, чем блокирующие алгоритмы отличаются от неблокирующих, и какими достоинствами и недостатками обладает каждый из этих классов. Кроме того, будут показаны различные подводные камни тех и других решений: Deadlock, Livelock, Starvation, Mutable vs Immutable hype.
Про некоторые кейсы использования elasticsearch в современных проектах.
- С какими сложностями столкнулись
- Где успешо применили elasticsearch, а где был избыточен
Презентация с мероприятия https://habr.com/ru/company/odnoklassniki/blog/452978/
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...Ontico
Facebook использует MySQL в качестве основного хранилища данных. MySQL работает на десятках тысяч серверов в нескольких ЦОДах. В качестве дисков используются Flash-накопители. Они дают большую производительность, но дорогой ценой — MySQL хранит данные на диске в структуре B-tree, которая использует flash-диск неоптимальным образом. В масштабах Facebook'a цена вопроса измеряется миллионами долларов.
Для оптимального использования Flash-дисков в Facebook была разработана библиотека RocksDB. Она основана на LSM-деревьях и оптимизирована для работы в условиях высокой загрузки. Чтобы использовать ее из MySQL, [совместно с MariaDB] был разработан табличный движок — MyRocks.
Данный доклад посвящен RocksDB и MyRocks. Мы расскажем о принципах их работы и преимуществах, как их настраивать, и какие возможны подводные камни.
Авторы доклада — ведущие разработчики MyRocks от Facebook и MariaDB.
RocksDB и MyRocks доступны на GitHub для свободного использования, участие в разработке также приветствуется.
Григорий Липин: Автоматизация нагрузочного тестированияYandex
Доклад посвящен нагрузочному тестированию. Мы поделимся своим опытом и расскажем, как автоматизировать нагрузочное тестирование с помощью инструмента Яндекс.Танк.
При проектировании нагруженных систем приходится сталкиваться с тем, что разные типы запросов к веб-серверам затрачивают разное количество ресурсов, выполняются за разное количество времени и имеют разные приоритеты выполнения. Некоторые запросы «стоят» мало и должны выполняться как можно быстрее. Некоторые «стоят» дорого, и главное, чтобы они не блокировали обработку быстрых запросов. Существующие схемы приоритезации показались нам громоздкими и неудобными – при росте количества типов запросов конфигурация системы усложнялась в разы. Поэтому, чтобы решить эту проблему, а также для того, чтобы сделать ответы на запросы еще более быстрыми, мы написали свой веб-сервер – Phantom. Я расскажу вам, как он устроен, покажу, какие задачи можно решать с его помощью, а в завершение покажу на практике, как работает приоритезация разных типов запросов, используя для этого инструмент нагрузочного тестирования, основанный на Phantom.
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Ontico
В докладе рассмотрим нашу старую архитектуру пайплайна машинного обучения, обратим внимание на ее недостатки как с точки зрения инфраструктуры и автоматизации, так и с точки зрения настройки моделей машинного обучения и проведения экспериментов. Разберемся с архитектурой Apache Spark, и почему мы решили его использовать. Подробно ознакомимся с новой архитектурой нашего пайплайна и тем, как она позволила оптимизировать обнаружение и устранение проблем, ускорила и упростила работу data scientist'ов по проведению экспериментов и доведения их до продакшена. Также затронем вопросы написания тестов и процесса разработки ПО на больших данных.
Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)Ontico
Artisto - первое в мире мобильное приложение для обработки видео с помощью нейросетей в стиле картин художников и любых исходных изображений. Приложение вошло в топы AppStore и Google Play в США.
В рамках доклада расскажу:
- как научить нейросети рисовать, а, главное, красиво и быстро;
- про особенности переноса стиля на видео;
- про технологический стек.
WebGL многими воспринимается как API для "быстрого" рисования. Но на практике нередко случается, что решение на WebGL выходит медленным, иногда даже медленнее решений на других API.
В этом докладе мы попробуем взглянуть на проблемы производительности, встречающиеся в работе с WebGL, и их решения на примере движка Панорам Яндекс.Карт.
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)Ontico
Многие из вас, наверное, видели результаты тестов сравнения Tarantool с остальными СУБД, которые показывают, что Tarantool быстрее всех, оптимальней по памяти, обрабатывает наибольшее количество транзакций в секунду.
И, несмотря на то, что исходные коды всех тестов полностью открыты и хорошо откомментированы, позволяя всем желающим повторить тесты, все равно остаются вопросы - за счет чего Tarantool такой быстрый и оптимальный?
Я решил суммировать мои ответы на эти вопросы в докладе на Highload++.
Итак, почему Tarantool такой быстрый?
Краткий ответ: потому что он с самого начала разрабатывался и до сих пор разрабатывается во главе угла с производительностью/оптимальностью/минимальным потреблением всех ресурсов системы.
Более полный ответ я раскрою в своем выступлении. Приходите, будет интересно! :)
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...Ontico
Современные процессоры имеют на борту по нескольку вычислительных ядер, позволяющих запускать задачи на них параллельно. И, казалось бы, вот оно — счастье: бей большие задачи на куски, запускай эти куски параллельно на разных ядрах и радуйся.
Но не все так просто. Для того чтобы одновременный доступ к общим данным выполнялся корректно, современные системы используют разные примитивы синхронизации. В основе одних лежат блокировки (locks), в основе других — операции типа сравнение-с-обменом (compare-and-swap). Однако и у тех и у других есть свои слабые места. О них мы и поговорим.
Из доклада вы узнаете, чем блокирующие алгоритмы отличаются от неблокирующих, и какими достоинствами и недостатками обладает каждый из этих классов. Кроме того, будут показаны различные подводные камни тех и других решений: Deadlock, Livelock, Starvation, Mutable vs Immutable hype.
Про некоторые кейсы использования elasticsearch в современных проектах.
- С какими сложностями столкнулись
- Где успешо применили elasticsearch, а где был избыточен
Презентация с мероприятия https://habr.com/ru/company/odnoklassniki/blog/452978/
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиIBS
Андрей Николаенко, системный архитектор в IBS, выступил на конференции HighLoad++ 2016.
Тезисы
В выпуске 4.8 ядра Linux появилась поддержка NVMf (NVM Express over Fabrics) — стандартизованной возможности присоединять по сети как блочные устройства твердотельные накопители, установленные в разъёмы PCI Express. NVMf лишён многих недостатков iSCSI, повторяющего по сети SCSI-команды со всеми их издержками времён дисковых накопителей, и главное — позволяет по полной использовать возможности сетей с прямым доступом к оперативной памяти (RDMA). Таким образом, можно под управлением одного узла собрать сверхбыстрый и сверхотзывчивый пул блочных устройств, не прибегая к покупке дорогого флэш-массива. Но как воспользоваться этим пулом, не загубив теоретические показатели программными обёртками?
В докладе будут рассмотрены варианты применения NVMf для различных конфигураций PostgreSQL, Oracle Database, Hadoop, файловых хранилищ, о разработках в направлении «программно-определяемой памяти» с применением NVMe-устройств, доступных по сети, обсуждены текущие проблемы, ограничения и перспективы. Особое внимание будет уделено практическим способам измерения производительности ввода-вывода с учётом задачи, решаемой подсистемой хранения.
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)Ontico
В выпуске 4.8 ядра Linux появилась поддержка NVMf (NVM Express over Fabrics) — стандартизованной возможности присоединять по сети как блочные устройства твердотельные накопители, установленные в разъёмы PCI Express. NVMf лишён многих недостатков iSCSI, повторяющего по сети SCSI-команды со всеми их издержками времён дисковых накопителей, и главное — позволяет по полной использовать возможности сетей с прямым доступом к оперативной памяти (RDMA). Таким образом, можно под управлением одного узла собрать сверхбыстрый и сверхотзывчивый пул блочных устройств, не прибегая к покупке дорогого флэш-массива. Но как воспользоваться этим пулом, не загубив теоретические показатели программными обёртками?
В докладе будут рассмотрены варианты применения NVMf для различных конфигураций PostgreSQL, Oracle Database, Hadoop, файловых хранилищ, о разработках в направлении «программно-определяемой памяти» с применением NVMe-устройств, доступных по сети, обсуждены текущие проблемы, ограничения и перспективы. Особое внимание будет уделено практическим способам измерения производительности ввода-вывода с учётом задачи, решаемой подсистемой хранения.
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...Ontico
РИТ++ 2017, HighLoad Junior
Зал Сингапур, 5 июня, 11:00
Тезисы:
http://junior.highload.ru/2017/abstracts/2683.html
Наш доклад описывает способ использования больших объемов памяти, которые стали доступны в последние годы. К сожалению, эта память обычно остается незадействованной в управляемых средах исполнения в связи с принудительной сборкой мусора. Разработчики прибегают к внешним хранилищам данных ( i.e Memcached), что несет дополнительные расходы.
...
Тест-драйв «Флеш в серверах: работа со скоростью вспышки» http://www.croc.ru/action/detail/29449/
Вадим Болотнов, менеджер по продвижению решений Департамента вычислительных систем КРОК
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)Ontico
Зачем мы каждый раз изобретаем велосипед, только потому что можем? Корпоративные СХД существуют более 25 лет и умеют очень многое.
Защита данных, качество обслуживания, многоуровневое хранение и кэширование на флэш-памяти. Система хранения данных - это не только гигабайт по минимальной цене, но так же и гарантированная производительность и отказоустойчивость.
Вы узнаете, как можно обеспечить своим данным высокую степень защиты, значительно сократив время реализации проекта. Или, наоборот, убедитесь в том, что СХД корпоративного класса вашему проекту не подходят.
Машинное обучение в электронной коммерции - практика использования и подводны...Ontico
РИТ++ 2017, секция ML + IoT + ИБ
Зал Белу-Оризонти, 5 июня, 16:00
Тезисы:
http://ritfest.ru/2017/abstracts/2532.html
Простыми словами расскажем о популярных, эффективных и используемых в нашей компании техниках применения машинного обучения для привлечения и удержания клиентов:
- кластеризации товарного каталога,
- классификации клиентов (готовых перейти на платный тариф, готовых уйти, способных принести прибыль),
- повышении релевантности e-mail-рассылок.
Особое внимание уделим технике использования популярных платформ и библиотек:
- Apache Spark,
- Spark MLlib,
- Hadoop,
- Amazon Kinesns.
Отдельно остановимся на особенностях обработки "больших данных", выборе и разработке параллельных алгоритмов.
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...Ontico
На примере нашей системы хранения фотографий мы хотим рассказать о проблемах, с которыми столкнулись в течение прошедших семи лет, связанных с ее программными и аппаратными компонентами, и о путях их решений.
В данном докладе речь пойдет о том, как сохранить независимость от поставщика и построить масштабируемую систему хранения с длительным сроком эксплуатации и способностью к оперативному внесению изменений в конфигурацию. Как сделать изменения на аппаратном уровне прозрачными для разработчиков, а также о том, как упростить развертывание и обслуживание.
В общих чертах изложен опыт и проблемы, которые мы получили в ходе эксплуатации классических мультиконтроллерных СХД. Основная тема - построение собственных хранилищ на базе общедоступных компонентов (полки, адаптеры, экспандеры, интерпозеры, диски, ЦПУ и т.д.) с потенциальной возможностью замены любого из выше перечисленного на другую модель. Дублирование критически важных узлов в рамках одной СХД. Обзор используемых транспортов - SRP, FC, iSCSI и описание того, каким образом можно быстро адаптировать такое хранилище под один или несколько транспортов, с минимальными вложениями. Обзор ПО для реализации СХД (SCST/LIO или проприетарные решения в области Software Defined Storage ). Автоматизация развертывания (инсталляция/управление с помощью Puppet). Тестирование перед вводом в эксплуатацию. Multipath I/O и упрощение именования экспортируемых блочных устройств. Политика составления наборов firmware для стабильной работы. Мониторинг. Расследование сбоев (Order of failure и т.п.).
Similar to Байтоадресуемая энергонезависимая память и СУБД (20)
DBMS benchmarking overview and trends for Moscow ACM SIGMOD ChapterAndrei Nikolaenko
This document discusses database benchmarking and provides an overview of trends and benchmarks. It begins with a discussion of the early TPC-A and TPC-B benchmarks and introduces the more complex TPC-C benchmark. It then summarizes several other TPC benchmarks including TPC-H, TPC-E, and proposed but obsolete benchmarks. It also discusses new types of benchmarks for workloads like MapReduce, graphs, and atomic operations. Finally, it briefly introduces some open-source "pocket tools" that can run simple benchmarks.
Cloud Databases, Database-as-a-Service: definition, architecture solutions, controversy, influence techonologies, tendencies, prospectives, history, taxonomy, vendors and service providers, research and researchers
Rapid Deployment of Hadoop Development EnvironmentsAndrei Nikolaenko
Development of Hadoop-related project in DevOps culture with Hadoop distributions, management and configuration tools and modern container virtualization capabatilites
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
* блочный тест
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 в условиях
экстремального ввода-вывода
16. Работает в один поток, не может
использовать все возможности
экстремального ввода-вывода
При одновременном запуске даёт
аддитивные показатели
Оптимум – число одновременных
запусков, равных количеству
аппаратных потоков процессора
Инструмент интересен для
измерения пишущих нагрузок
(CALIBRATE_IO = READONLY)
•Максимумы в одиночных
запусках не превосходят
350 kIOPS
•но даёт всплески по задержкам
•oltp, 100% writes: 1014 kIOPS
•… но задержки выходят всё равно
большие: avg lat = 42.728 μs
•но результаты с одновременным
запуском пока нельзя считать
надёжными
АДАПТАЦИЯ БЕНЧМАРКА ORION
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 раз
По сути –
многоуровневая
память (ещё один
уровень кэша)
29. Размер и стоимость кластера
на 100 ТБ полезной ёмкости (млн $)
512 ГБ DRAM
6 ТБ PCIE 3D
XPoint
5 ГБ
полезной
ОЗУ
1024 ГБ
DRAM
1 ТБ
полезной
ОЗУ
30. Недостатки постановки
Нетипичная серверная конфигурация
• 48 серверов – издержки реализации yardstick
Никакого тюнинга
• Сборка взята как есть
• Yardstick из сборки «из коробки» (фактически оригинал от Ignite)
Задачи по результатам
• Выбор бенчмарка с явной зависимостью от размера базы
• NUMA-тюнинг
Есть опубликованные результаты с менее значимой деградацией
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
Даже без переработок можно получить заметные эффекты
Для СУБД, самостоятельно
работающих с блочным
устройством
Для резидентных СУБД, получающих
эффект от агрегации большого
объёма памяти на одном узле
(Обозримая доработка?):
журнал на
энергонезависимую память
Энергонезависимая память открывает океан
возможностей для СУБД