Краткий ввод в реализацию технологии Coroutines в Perl. Понятие event-loop, интерфейс для работы с loop'ами - AnyEvent. Работа с данными в асинхронном режиме.
Checkpoint and Restore In Userspace: Готово или нет?OpenVZ
Доклад рассказывает о проекте CRIU (Checkpoint/Restore in Userspace) — сохранения (checkpoint) полного состояния работающих процессов с последующим их восстановлением (restore), реализованном по большей части как пользовательская (userspace) программа. Начинается он с истории о том, почему в ванильном ядре Linux до сих пор нет реализации checkpoint/restore, и как мы это побороли. В основной части доклада рассматриваются механизмы работы CRIU, в частности как сохраняются и восстанавливаются процессы, открытые файлы, память, сетевые соединения, терминалы и т.п. В заключении рассказывается о том, для чего можно использовать такой механизм (а это не только "живая" миграция), даётся текущий статус проекта и творческие планы разработчиков, и, конечно, демонстрация основных возможностей CRIU на живой системе.
https://events.yandex.ru/lib/talks/352/
Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»Tanya Denisyuk
В нашей компании есть система для запуска PHP-скриптов по расписанию, которая позволяет распределять нагрузку на множество узлов и обеспечивать отказоустойвость. И в этой системе необходимо уметь собирать логи скриптов с сотен (и даже тысяч) машин, желательно в режиме реального времени. У нас раньше была система сбора логов, собранная «на коленке», и выдающая относительно невысокую производительность. Производительности стало не хватать, и мы переписали систему на Go. Новая система не использует scribe и обладает некоторыми уникальными фичами, например «вытесняющей многозадачностью» при доставке - если один из скриптов пишет столько логов, что мы не успеваем их всех доставить, логи всех остальных скриптов продолжают доставляться, с небольшой фиксированной задержкой. Система легко забивает гигабитную сетевую карту на нашем сервере-приемнике логов и не слишком «тормозит» доставку в случае, когда пропускной способности всё же не хваетает. В докладе я расскажу о том, как мы делали эту систему и про то, как она работает изнутри. Исходные тексты доступны на github: https://github.com/badoo/thunder
Как мы в Почте@Mail.Ru выдерживаем высокие нагрузкиtfmailru
Почта@Mail.Ru и главная страница Mail.Ru — очень высоконагруженные сервисы. Суточная аудитория — 20 млн человек, количество хитов в день на динамику — более 500 млн. Я хочу рассказать вам о том, как мы выдерживаем такие нагрузки, посредством каких технологий, как мы к ним пришли и что получили в результате.
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»Tanya Denisyuk
"Если все возможности кеширования и индексирования исчерпаны, а производительности все равно недостаточно.
Если еженочно просыпаясь в холодном поту, вы спрашиваете себя снова и снова:
- Как организовать данные так, чтобы всё нужное всегда было под рукой
- Как сделать так, чтобы приложение не тупило даже на медленном интернете
- Как моментально обеспечивать клиента самыми свежими данными
Тогда мой доклад может оказаться полезным.Мы в Todoist, кажется, нашли простой способ решить большинство из этих проблем. Всё, что мы сделали, это дополнили наш API функциями для синхронизации данных, позволяющими
писать ""толстые клиенты"" (кстати,то же самое для решения тех же задач рекомендуют и Google, и Evernote). В докладе я расскажу как это реализовать с минимальными усилиями одним лишь MySQL и Redis, с какими проблемами мы столкнулись, и как мы героически эти проблемы побеждали."
Краткий ввод в реализацию технологии Coroutines в Perl. Понятие event-loop, интерфейс для работы с loop'ами - AnyEvent. Работа с данными в асинхронном режиме.
Checkpoint and Restore In Userspace: Готово или нет?OpenVZ
Доклад рассказывает о проекте CRIU (Checkpoint/Restore in Userspace) — сохранения (checkpoint) полного состояния работающих процессов с последующим их восстановлением (restore), реализованном по большей части как пользовательская (userspace) программа. Начинается он с истории о том, почему в ванильном ядре Linux до сих пор нет реализации checkpoint/restore, и как мы это побороли. В основной части доклада рассматриваются механизмы работы CRIU, в частности как сохраняются и восстанавливаются процессы, открытые файлы, память, сетевые соединения, терминалы и т.п. В заключении рассказывается о том, для чего можно использовать такой механизм (а это не только "живая" миграция), даётся текущий статус проекта и творческие планы разработчиков, и, конечно, демонстрация основных возможностей CRIU на живой системе.
https://events.yandex.ru/lib/talks/352/
Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»Tanya Denisyuk
В нашей компании есть система для запуска PHP-скриптов по расписанию, которая позволяет распределять нагрузку на множество узлов и обеспечивать отказоустойвость. И в этой системе необходимо уметь собирать логи скриптов с сотен (и даже тысяч) машин, желательно в режиме реального времени. У нас раньше была система сбора логов, собранная «на коленке», и выдающая относительно невысокую производительность. Производительности стало не хватать, и мы переписали систему на Go. Новая система не использует scribe и обладает некоторыми уникальными фичами, например «вытесняющей многозадачностью» при доставке - если один из скриптов пишет столько логов, что мы не успеваем их всех доставить, логи всех остальных скриптов продолжают доставляться, с небольшой фиксированной задержкой. Система легко забивает гигабитную сетевую карту на нашем сервере-приемнике логов и не слишком «тормозит» доставку в случае, когда пропускной способности всё же не хваетает. В докладе я расскажу о том, как мы делали эту систему и про то, как она работает изнутри. Исходные тексты доступны на github: https://github.com/badoo/thunder
Как мы в Почте@Mail.Ru выдерживаем высокие нагрузкиtfmailru
Почта@Mail.Ru и главная страница Mail.Ru — очень высоконагруженные сервисы. Суточная аудитория — 20 млн человек, количество хитов в день на динамику — более 500 млн. Я хочу рассказать вам о том, как мы выдерживаем такие нагрузки, посредством каких технологий, как мы к ним пришли и что получили в результате.
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»Tanya Denisyuk
"Если все возможности кеширования и индексирования исчерпаны, а производительности все равно недостаточно.
Если еженочно просыпаясь в холодном поту, вы спрашиваете себя снова и снова:
- Как организовать данные так, чтобы всё нужное всегда было под рукой
- Как сделать так, чтобы приложение не тупило даже на медленном интернете
- Как моментально обеспечивать клиента самыми свежими данными
Тогда мой доклад может оказаться полезным.Мы в Todoist, кажется, нашли простой способ решить большинство из этих проблем. Всё, что мы сделали, это дополнили наш API функциями для синхронизации данных, позволяющими
писать ""толстые клиенты"" (кстати,то же самое для решения тех же задач рекомендуют и Google, и Evernote). В докладе я расскажу как это реализовать с минимальными усилиями одним лишь MySQL и Redis, с какими проблемами мы столкнулись, и как мы героически эти проблемы побеждали."
Cборка мусора в Java без пауз (HighLoad++ 2013)aragozin
Доклад про паузы при сборке мусора уже был на одной из прошлых конференций HighLoad++.
Паузы stop-the-world являются неотъемлемым атрибутом автоматического управления памятью.
Или всё-таки их можно избежать? – Можно!
Алгоритмы, не требующие пауз для управления памятью, существуют. Существуют и реальные JVM, которые их реализуют.
Содержание доклада
- Принципы автоматического управления памятью (сборки мусора).
- "Метроном" - классический алгоритм сборки мусора без пауз.
- С4 - алгоритм сборки мусора Zing JVM (Azul Systems).
- Особенности эффективной реализации на x86-архитектуре.
- Дополнительные источники проблем: слабые ссылки, фрагментация и прочее.
Платформа для видео сроком в квартал. Александр Тоболь.odnoklassniki.ru
A talk from jokerconf.com conference. "Video Platform in 3 months. Delivered." by Alexander Tobol.
Доклад не затронет какую-то особенную технологию или волшебный алгоритм. Речь пойдет о том, как чуть больше чем за квартал совсем небольшая команда перезапустила работающий в режиме 24/7 совсем немаленький видео-сервис на Одноклассниках на написанной с нуля платформе, развернутой на парке из свыше 200 серверов, распределенных между несколькими центрами обмена данными.
Я бы хотел поделиться успехами и неудачами в ходе решения задачи по обеспечению бесперебойных загрузки, трансформации, хранения, раздачи видео и мониторинга, а также остановиться на особенностях, связанных с нагрузкой в 1000 просмотров в секунду, размером ежедневной аудитории в 8 миллионов географически распределенных в и за пределами РФ. Я также остановлюсь на некоторых использованных нами технологиях.
WebCamp: Developer Day: N2O: The Most Powerful Erlang Web Framework - Максим ...GeeksLab Odessa
N2O: The Most Powerful Erlang Web Framework
Максим Сохацкий
N2O разрабатывался как многофункциональный WebSocket аппликейшин сервер широкого назначения. Будучи ответвлен изначально от классического сервер-рендер фреймворка Nitrogen, он развился в мощное средство (включающее в том числе и поддержку SPA приложений) обеспечения пула долгоживущих TCP соеднений и доставки кода/даных выступая в качестве высокоемкностного релея, благодаря надежной и высокоустойчивой платформе Erlang/OTP. Соединяя в себе все черты Full-Stack веб фреймворков: Роутинг, Темплейтинг, Pub/Sub, Сессии, Хранилище, REST и поддержка кастомных протоколов; N2O добавляет совершенно уникальные возможности для создания различных DSL: вы можете транслировать бизнес логику, написанную на Erlang языках (Elixir, Erlang, Joxa) в JavaScript, генерировать трансформаций Erlang рекордов в JSON структуры и много другое, специфицировать JavaScript протоколы на языке Erlang. Сейчас N2O развивается в сторону поддержки SVG клиентов и бинарных протоколов.
Кадры решают все, или стриминг видео в «Одноклассниках». Александр Тобольodnoklassniki.ru
Я расскажу, как нам удалось более чем в 10 раз ускорить старт просмотра кино и сериалов с использованием технологий адаптивного стриминга MPEG-DASH и HLS. Вы узнаете, какие технологии попали в поле зрения команды, как ин-фраструктурные особенности, размер аудитории и специфика потребления на разных пользовательских устройствах повлияли на принятие решения о выборе технологии. Естественно, будет дан и подробный отчет о результатах внедрения решения и полученном эффекте.
То есть около 50 млн. роликов, которые есть на «Одноклассниках», нужно раздать пользователям по стриминг-протоколу на скорости 40 Гбит/с с одного сервера и не хранить копии видео в разных форматах
Слайды с моего выступления на HDConf в Минске 17 октября 2015 года. Я рассказывал из чего состоит PaaS, как запускать контейнеры в облаке и чем отличаются Mesos, Cloud Foundry и Kubernetes.
Apache Kafka and stream processing peculiarities [ru]Vsevolod Solovyov
This is a presentation about our try at an architecture "Turning the database inside out" by Martin Kleppman https://www.youtube.com/watch?v=fU9hR3kiOK0
I think it's more meaningful to watch a talk https://www.youtube.com/watch?v=d5_fbt5x9yc because the slides were created for talk, not for separate viewing
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)Ontico
Intel DPDK (Data Plane Development Kit) — набор драйверов и библиотек, позволяющих приложениям взаимодействовать с сетевым устройством напрямую, минуя сетевой стек Linux. Это значительно увеличивает скорость обработки пакетов. DPDK интегрируется с рядом популярных программных решений, например, c виртуальным коммутатором Open vSwitch.
Возможностям и перспективам использования связи Open vSwitch + DPDK в облачных проектах и будет посвящен наш доклад. Мы подробно остановимся на проведённых тестах производительности и интерпретируем их результаты. Отдельное внимание будет уделено анализу трудностей и ограничений, с которыми пришлось столкнуться в ходе экспериментов.
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...odnoklassniki.ru
В процессе обновления высоконагруженных серверов раздачи видео (40Gbit/s с каждого сервера) со старого OpenSuSE 10.2 на новый CentOS 7 (время между релизами - 7 лет) мы столкнулись с рядом проблем - необъяснимый свопинг и запуски OOM killer, неравномерное распределение нагрузки по ядрам, обрывы соединений, скачки системной нагрузки на CPU.
В докладе будет рассказано о том, как мы боролись с этими проблемами и какие технологии для этого использовали.
Build private clouds with ProxmoxVE distributiveДима Ванькевич
Specifics and purposefullness of private cloud usage is discussed. Demands to the cloud are reviewed, as one one of the possible solutions, based on the Proxmox Virtual Environment distributive.
http://summer.lvee.org/en/articles/281
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...Tanya Denisyuk
"Контейнеры могут динамически появляться и исчезать, являются легковесными, не резервируют все необходимые ресурсы при старте, потому их оркестрация дается не простой ценой. Каждый из виртуальных контейнеров в один момент времени может потребовать максимум доступных ему ресурсов и это может привести к тому, что закончатся все ресурсы на физическом сервере, на котором они размещаются. В докладе мы поговорим о механизме, который решает эту непростую задачу, и умеет проводить непрерывную балансировку нагрузки, перемещать контейнеры с одного физического сервера на другие для проведения технических работ без простоя приложений - умная живая миграция (Smart Live Migration).
Многие считают, что контейнеры не подходят для хранения важных данных, т.к. в любой момент они могут упасть и все данные пропадут навсегда. Мы расскажем как этого избежать с помощью технологии Software-defined-storage."
Isomorphic App Development with Ruby and Volt - Rubyconf2014ryanstout
The document discusses the increasing complexity of web development over time and introduces Volt as a Ruby-based isomorphic framework that allows sharing code between the client and server. Volt uses Opal to compile Ruby code to JavaScript and supports features like automatic data syncing, reactive bindings, and building apps as nested components to help manage complexity. It aims to provide a simpler development experience compared to traditional approaches while still offering high performance.
Cборка мусора в Java без пауз (HighLoad++ 2013)aragozin
Доклад про паузы при сборке мусора уже был на одной из прошлых конференций HighLoad++.
Паузы stop-the-world являются неотъемлемым атрибутом автоматического управления памятью.
Или всё-таки их можно избежать? – Можно!
Алгоритмы, не требующие пауз для управления памятью, существуют. Существуют и реальные JVM, которые их реализуют.
Содержание доклада
- Принципы автоматического управления памятью (сборки мусора).
- "Метроном" - классический алгоритм сборки мусора без пауз.
- С4 - алгоритм сборки мусора Zing JVM (Azul Systems).
- Особенности эффективной реализации на x86-архитектуре.
- Дополнительные источники проблем: слабые ссылки, фрагментация и прочее.
Платформа для видео сроком в квартал. Александр Тоболь.odnoklassniki.ru
A talk from jokerconf.com conference. "Video Platform in 3 months. Delivered." by Alexander Tobol.
Доклад не затронет какую-то особенную технологию или волшебный алгоритм. Речь пойдет о том, как чуть больше чем за квартал совсем небольшая команда перезапустила работающий в режиме 24/7 совсем немаленький видео-сервис на Одноклассниках на написанной с нуля платформе, развернутой на парке из свыше 200 серверов, распределенных между несколькими центрами обмена данными.
Я бы хотел поделиться успехами и неудачами в ходе решения задачи по обеспечению бесперебойных загрузки, трансформации, хранения, раздачи видео и мониторинга, а также остановиться на особенностях, связанных с нагрузкой в 1000 просмотров в секунду, размером ежедневной аудитории в 8 миллионов географически распределенных в и за пределами РФ. Я также остановлюсь на некоторых использованных нами технологиях.
WebCamp: Developer Day: N2O: The Most Powerful Erlang Web Framework - Максим ...GeeksLab Odessa
N2O: The Most Powerful Erlang Web Framework
Максим Сохацкий
N2O разрабатывался как многофункциональный WebSocket аппликейшин сервер широкого назначения. Будучи ответвлен изначально от классического сервер-рендер фреймворка Nitrogen, он развился в мощное средство (включающее в том числе и поддержку SPA приложений) обеспечения пула долгоживущих TCP соеднений и доставки кода/даных выступая в качестве высокоемкностного релея, благодаря надежной и высокоустойчивой платформе Erlang/OTP. Соединяя в себе все черты Full-Stack веб фреймворков: Роутинг, Темплейтинг, Pub/Sub, Сессии, Хранилище, REST и поддержка кастомных протоколов; N2O добавляет совершенно уникальные возможности для создания различных DSL: вы можете транслировать бизнес логику, написанную на Erlang языках (Elixir, Erlang, Joxa) в JavaScript, генерировать трансформаций Erlang рекордов в JSON структуры и много другое, специфицировать JavaScript протоколы на языке Erlang. Сейчас N2O развивается в сторону поддержки SVG клиентов и бинарных протоколов.
Кадры решают все, или стриминг видео в «Одноклассниках». Александр Тобольodnoklassniki.ru
Я расскажу, как нам удалось более чем в 10 раз ускорить старт просмотра кино и сериалов с использованием технологий адаптивного стриминга MPEG-DASH и HLS. Вы узнаете, какие технологии попали в поле зрения команды, как ин-фраструктурные особенности, размер аудитории и специфика потребления на разных пользовательских устройствах повлияли на принятие решения о выборе технологии. Естественно, будет дан и подробный отчет о результатах внедрения решения и полученном эффекте.
То есть около 50 млн. роликов, которые есть на «Одноклассниках», нужно раздать пользователям по стриминг-протоколу на скорости 40 Гбит/с с одного сервера и не хранить копии видео в разных форматах
Слайды с моего выступления на HDConf в Минске 17 октября 2015 года. Я рассказывал из чего состоит PaaS, как запускать контейнеры в облаке и чем отличаются Mesos, Cloud Foundry и Kubernetes.
Apache Kafka and stream processing peculiarities [ru]Vsevolod Solovyov
This is a presentation about our try at an architecture "Turning the database inside out" by Martin Kleppman https://www.youtube.com/watch?v=fU9hR3kiOK0
I think it's more meaningful to watch a talk https://www.youtube.com/watch?v=d5_fbt5x9yc because the slides were created for talk, not for separate viewing
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)Ontico
Intel DPDK (Data Plane Development Kit) — набор драйверов и библиотек, позволяющих приложениям взаимодействовать с сетевым устройством напрямую, минуя сетевой стек Linux. Это значительно увеличивает скорость обработки пакетов. DPDK интегрируется с рядом популярных программных решений, например, c виртуальным коммутатором Open vSwitch.
Возможностям и перспективам использования связи Open vSwitch + DPDK в облачных проектах и будет посвящен наш доклад. Мы подробно остановимся на проведённых тестах производительности и интерпретируем их результаты. Отдельное внимание будет уделено анализу трудностей и ограничений, с которыми пришлось столкнуться в ходе экспериментов.
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...odnoklassniki.ru
В процессе обновления высоконагруженных серверов раздачи видео (40Gbit/s с каждого сервера) со старого OpenSuSE 10.2 на новый CentOS 7 (время между релизами - 7 лет) мы столкнулись с рядом проблем - необъяснимый свопинг и запуски OOM killer, неравномерное распределение нагрузки по ядрам, обрывы соединений, скачки системной нагрузки на CPU.
В докладе будет рассказано о том, как мы боролись с этими проблемами и какие технологии для этого использовали.
Build private clouds with ProxmoxVE distributiveДима Ванькевич
Specifics and purposefullness of private cloud usage is discussed. Demands to the cloud are reviewed, as one one of the possible solutions, based on the Proxmox Virtual Environment distributive.
http://summer.lvee.org/en/articles/281
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...Tanya Denisyuk
"Контейнеры могут динамически появляться и исчезать, являются легковесными, не резервируют все необходимые ресурсы при старте, потому их оркестрация дается не простой ценой. Каждый из виртуальных контейнеров в один момент времени может потребовать максимум доступных ему ресурсов и это может привести к тому, что закончатся все ресурсы на физическом сервере, на котором они размещаются. В докладе мы поговорим о механизме, который решает эту непростую задачу, и умеет проводить непрерывную балансировку нагрузки, перемещать контейнеры с одного физического сервера на другие для проведения технических работ без простоя приложений - умная живая миграция (Smart Live Migration).
Многие считают, что контейнеры не подходят для хранения важных данных, т.к. в любой момент они могут упасть и все данные пропадут навсегда. Мы расскажем как этого избежать с помощью технологии Software-defined-storage."
Isomorphic App Development with Ruby and Volt - Rubyconf2014ryanstout
The document discusses the increasing complexity of web development over time and introduces Volt as a Ruby-based isomorphic framework that allows sharing code between the client and server. Volt uses Opal to compile Ruby code to JavaScript and supports features like automatic data syncing, reactive bindings, and building apps as nested components to help manage complexity. It aims to provide a simpler development experience compared to traditional approaches while still offering high performance.
This presentation introduces Sphinx Search 1.10's new real-time indexes feature. Real-time indexes allow indexing data in real-time without reindexing the entire data. They support the MySQL protocol and SphinxQL for easy CRUD operations. Performance tests show real-time indexes use less disk space and have faster query times, especially for multi-queries and under indexing loads, compared to plain indexes. Migration from plain to real-time indexes can be done using existing tools or custom scripts.
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-устройств, доступных по сети, обсуждены текущие проблемы, ограничения и перспективы. Особое внимание будет уделено практическим способам измерения производительности ввода-вывода с учётом задачи, решаемой подсистемой хранения.
libfpta: в памяти, с персистентностью, быстрее хайпаLeonid Yuriev
Представление "Позитивных таблиц" – нового C/C++ движка, выполняющего до полумиллиона пишущих транзакций в секунду к табличным и key-value данным, и одновременно до миллиона читающих запросов на каждом ядре процессора.
libfpta обеспечивает полностью параллельно выполнение запросов чтения/поиска без блокировок внутри БД и без атомарных операций, а также реализует эффективное хранение multi-value значений. Поэтому интегрально libfpta опережает по производительности и Tarantool и RocksDB. А разница с такими "быстрыми" решениями как Hazelcast или Apache Ignite достигает иногда 10-ти и более раз.
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)Ontico
HighLoad++ 2017
Зал «Найроби + Касабланка», 8 ноября, 13:00
Тезисы:
http://www.highload.ru/2017/abstracts/2837.html
Представление "Позитивных таблиц" – нового C/C++ движка, выполняющего до полумиллиона пишущих транзакций в секунду к табличным и key-value данным, и одновременно до миллиона читающих запросов на каждом ядре процессора.
Компания Positive Technologies производит программные продукты в области информационной безопасности, в том числе обеспечивающие предотвращение вторжений и мониторинг событий безопасности, в том числе на крупномасштабных объектах относящихся к критической инфраструктуре. Для ряда таких продуктов потребовалось разделяемое оперативное хранилище.
...
Дмитрий Грошев, Фёдор Гоголев. Erlang и Haskell в production: проблемы и решенияFProg
В докладе рассматривается мотивация и опыт перехода процесса разработки API с большим количеством внутренней логики с Python на сочетание Erlang и Haskell, проблемы в процессе разработки и способы их решения.
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)Ontico
Lightning Memory-Mapped Database (LMDB) представляет собой интересный, во многом уникальный движок базы данных класса Berkeley DB и Level DB с ребус-подобным исходным кодом. Будучи относительно малоизвестным, LMDB показывает ЧЕМПИОНСКУЮ производительность по чтению. Однако при интенсивной записи всё не так радужно…
Было ещё несколько проблем и недостатков, которые нам пришлось устранить, разбираясь в ребусах исходного кода. Доклад точно будет интересен разработчикам, интересующимся внутренностями баз данных или характеристиками отдельных движков.
Проект реализуется силами компании Петер-Сервис R&D, резидента Сколково, для применения в телеком-проектах федерального масштаба.
Информация о нашем проекте https://github.com/ReOpen/ReOpenLDAP/wiki, об исходной версии LMDB http://symas.com/mdb/.
Современная операционная система: что надо знать разработчику / Александр Кри...Ontico
Мы проговорим про связь приложения и ОС, какие компоненты есть в современной ОС на примере Linux, как настройки этих компонент могут повлиять на приложение.
Я расскажу про планировщик процессов, дисковый и сетевой ввод-вывод и соответствующие планировщики, управление памятью - как это все в общих чертах работает и как его потюнить.
Similar to Tarantool/Silverbox (Юрий Востриков) (20)
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
HighLoad++ 2017
Зал «Калининград», 8 ноября, 15:00
Тезисы:
http://www.highload.ru/2017/abstracts/2964.html
Одноклассники состоят из более чем восьми тысяч железных серверов, расположенных в нескольких дата-центрах. Каждая из этих машин была специализированной под конкретную задачу - как для обеспечения изоляции отказов, так и для обеспечения автоматизированного управления инфраструктурой.
...
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
HighLoad++ 2017
Зал «Калининград», 8 ноября, 16:00
Тезисы:
http://www.highload.ru/2017/abstracts/3032.html
Протокол DNS на семь лет старше, чем Всемирная паутина. Стандарты RFC 882 и 883, определяющие основную функциональность системы доменных имён, появились в конце 1983 года, а первая реализация последовала уже годом позже. Естественно, что у технологии столь старой и при этом по сей день активнейшим образом используемой просто не могли не накопиться особенности, неочевидные обыкновенным пользователям.
...
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
HighLoad++ 2017
Зал «Калининград», 8 ноября, 13:00
Тезисы:
http://www.highload.ru/2017/abstracts/3010.html
В этом докладе я расскажу, как BigData-платформа помогает трансформировать Почту России, как мы управляем построением и развитием платформы. Расскажу про найденные удачные решения, например, как разбиение на продукты с понятными SLA и интерфейсами между ними помогло нам сохранять управляемость с ростом масштабов проекта.
...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
HighLoad++ 2017
Зал «Кейптаун», 8 ноября, 10:00
Тезисы:
http://www.highload.ru/2017/abstracts/2914.html
Казалось бы, что нужно для организации тестового окружения? Тестовая железка и копия боевого окружения - и тестовый сервер готов. Но как быть, когда проект сложный? А когда большой? А если нужно тестировать одновременно много версий? А если все это вместе?
Организация тестирования большого развивающегося проекта, где одновременно в разработке и тестировании около полусотни фич - достаточно непростая задача. Ситуация обычно осложняется тем, что иногда есть желание потрогать еще не полностью готовый функционал. В таких ситуациях часто возникает вопрос: "А куда это можно накатить и где покликать?"
...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
HighLoad++ 2017
Зал «Кейптаун», 8 ноября, 18:00
Тезисы:
http://www.highload.ru/2017/abstracts/2854.html
Из этого доклада вы узнаете о возможностях репликации и автофейловера PostgreSQL, в том числе о возможностях, ставших доступных в PostgreSQL 10.
Среди прочих, будет затронуты следующие темы:
* Виды репликации и решаемые с ее помощью проблемы.
* Настройка потоковой репликации.
* Настройка логической репликации.
* Настройка автофейловера / HA средствами Stolon и Consul.
После прослушивания доклада вы сможете самостоятельно настраивать репликацию и автофейловер PostgreSQL.
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
HighLoad++ 2017
Зал «Кейптаун», 8 ноября, 17:00
Тезисы:
http://www.highload.ru/2017/abstracts/3096.html
PostgreSQL is the world’s most advanced open source database. Indeed! With around 270 configuration parameters in postgresql.conf, plus all the knobs in pg_hba.conf, it is definitely ADVANCED!
How many parameters do you tune? 1? 8? 32? Anyone ever tuned more than 64?
No tuning means below par performance. But how to start? Which parameters to tune? What are the appropriate values? Is there a tool --not just an editor like vim or emacs-- to help users manage the 700-line postgresql.conf file?
Join this talk to understand the performance advantages of appropriately tuning your postgresql.conf file, showcase a new free tool to make PostgreSQL configuration possible for HUMANS, and learn the best practices for tuning several relevant postgresql.conf parameters.
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
HighLoad++ 2017
Зал «Кейптаун», 8 ноября, 16:00
Тезисы:
http://www.highload.ru/2017/abstracts/3115.html
During this session we will cover the last development in ProxySQL to support regular expressions (RE2 and PCRE) and how we can use this strong technique in correlation with ProxySQL's query rules to anonymize live data quickly and transparently. We will explain the mechanism and how to generate these rules quickly. We show live demo with all challenges we got from the Community and we finish the session by an interactive brainstorm testing queries from the audience.
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
HighLoad++ 2017
Зал «Кейптаун», 8 ноября, 15:00
Тезисы:
http://www.highload.ru/2017/abstracts/2957.html
Расскажем о нашем опыте разработки модуля межсетевого экрана для MySQL с использованием генератора парсеров ANTLR и языка Kotlin.
Подробно рассмотрим следующие вопросы:
— когда и почему целесообразно использовать ANTLR;
— особенности разработки ANTLR-грамматики для MySQL;
— сравнение производительности рантаймов для ANTLR в рамках задачи синтаксического анализа MySQL (C#, Java, Kotlin, Go, Python, PyPy, C++);
— вспомогательные DSL;
— микросервисная архитектура модуля экранирования SQL;
— полученные результаты.
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)Ontico
HighLoad++ 2017
Зал «Кейптаун», 8 ноября, 14:00
Тезисы:
http://www.highload.ru/2017/abstracts/3114.html
ProxySQL aims to be the most powerful proxy in the MySQL ecosystem. It is protocol-aware and able to provide high availability (HA) and high performance with no changes in the application, using several built-in features and integration with clustering software. During this session we will quickly introduce its main features, so to better understand how it works. We will then describe multiple use case scenarios in which ProxySQL empowers large MySQL installations to provide HA with zero downtime, read/write split, query rewrite, sharding, query caching, and multiplexing using SSL across data centers.
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
HighLoad++ 2017
Зал «Кейптаун», 8 ноября, 13:00
Тезисы:
http://www.highload.ru/2017/abstracts/2954.html
MySQL Replication is powerful and has added a lot of advanced features through the years. In this presentation we will look into replication technology in MySQL 5.7 and variants focusing on advanced features, what do they mean, when to use them and when not, Including.
When should you use STATEMENT, ROW or MIXED binary log format?
What is GTID in MySQL and MariaDB and why do you want to use them?
What is semi-sync replication and how is it different from lossless semi-sync?
...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
HighLoad++ 2017
Зал «Кейптаун», 8 ноября, 12:00
Тезисы:
http://www.highload.ru/2017/abstracts/3120.html
Количество разработчиков мобильных приложений Сбербанк Онлайн с начала 2016 года выросло на порядок. Для того чтобы продолжать выпускать качественный продукт, мы кардинально перестраиваем процесс разработки.
Количество внутренних заказчиков тех или иных доработок в какой-то момент выросло настолько, что разработчики стали узким местом. Мы внедрили культуру разработки, которую можно условно назвать "внутренним open-source", сохранив за собой контроль над архитектурой и качеством проекта, но позволив разрабатывать новые фичи всем желающим.
...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
HighLoad++ 2017
Зал «Мумбай», 8 ноября, 18:00
Тезисы:
http://www.highload.ru/2017/abstracts/2836.html
При использовании Eventually Consistent распределенных баз данных нет гарантий, что чтение возвращает результаты последних изменений данных, если чтение и запись производятся на разных узлах. Это ограничивает пропускную способность системы. Поддержка свойства Causal Consistency снимает это ограничение, что позволяет улучшить масштабируемость, не требуя изменений в коде приложения.
...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
HighLoad++ 2017
Зал «Мумбай», 8 ноября, 16:00
Тезисы:
http://www.highload.ru/2017/abstracts/2858.html
Аудитория Одноклассников превышает 73 миллиона человек в России, СНГ и странах дальнего зарубежья. При этом ОК.ru - первая социальная сеть по просмотрам видео в рунете и крупнейшая сервисная платформа.
Качественный и количественный рост DDoS-атак за последние годы превращает их в одну из первоочередных проблем для крупнейших интернет-ресурсов. В зависимости от вектора атаки “узким” местом становится та или иная часть инфраструктуры. В частности, при SYN-flood первый удар приходится на систему балансировки трафика. От ее производительности зависит успех в противостоянии атаке.
...
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
HighLoad++ 2017
Зал «Мумбай», 8 ноября, 15:00
Тезисы:
http://www.highload.ru/2017/abstracts/3008.html
Никогда не было и вот снова случилось! Компания Google в результате перенаправления трафика сделала недостпуными в Японии несколько тысяч различных сервисов, большинство из которых никак не связано с самой компанией Google. Однако, подобные инциденты происходят с завидной регулярностью, вот только не всегда попадают в большие СМИ. У таких инцидентов могут быть разные причины, начиная от ошибок сетевых инженеров и заканчивая государственным регулированием.
...
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
HighLoad++ 2017
Зал «Мумбай», 8 ноября, 14:00
Тезисы:
http://www.highload.ru/2017/abstracts/2925.html
Облака и виртуализация – современные тренды развития IT-технологий. Операторы связи строят свои TelcoClouds на стандартах NFV (Network Functions Virtualization) и SDN (Software-Defined Networking). В докладе начнем с основ виртуализации, далее разберемся, для чего используются NFV и SDN, потом полетим к облакам и вернемся на землю для решения практических задач!
...
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
HighLoad++ 2017
Зал «Мумбай», 8 ноября, 10:00
Тезисы:
http://www.highload.ru/2017/abstracts/3045.html
Как мы заставили Druid работать в Одноклассниках.
«Druid is a high-performance, column-oriented, distributed data store» http://druid.io.
Мы расскажем о том, как, внедрив Druid, мы справились с ситуацией, когда MSSQL-based система статистики на 50 терабайт стала:
- медленной: средняя скорость ответа была в разы меньше требуемой (и увеличилась в 20 раз);
- нестабильной: в час пик статистика отставала до получаса (теперь ничего не отстает);
- дорогой: изменилась политика лицензирования Microsoft, расходы на лицензии могли составить миллионы долларов.
...
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
HighLoad++ 2017
Зал «Рио-де-Жанейро», 8 ноября, 18:00
Тезисы:
http://www.highload.ru/2017/abstracts/2905.html
Прошло более года с того момента, как Microsoft выпустила первую версию своего нового фреймворка для разработки web-приложений ASP.NET Core, и с каждым днем он находит все больше поклонников. ASP.NET Core базируется на платформе .NET Core, кроссплатформенной версии платформы .NET c открытым исходным кодом. Теперь у С#-разработчиков появилась возможность использовать Mac в качестве среды разработки, и запускать приложения на Linux или внутри Docker-контейнеров.
...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
HighLoad++ 2017
Зал «Рио-де-Жанейро», 8 ноября, 14:00
Тезисы:
http://www.highload.ru/2017/abstracts/2913.html
Изначально будут раскрыты базовые причины, которые заставили появиться такой части механизма СУБД, как кэш результатов, и почему в ряде СУБД он есть или отсутствует.
Будут рассмотрены различные варианты кэширования результатов как sql-запросов, так и результатов хранимой в БД бизнес-логики. Произведено сравнение способов кэширования (программируемые вручную кэши, стандартный функционал) и даны рекомендации, когда и в каких случаях данные способы оптимальны, а порой опасны.
...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
HighLoad++ 2017
Зал «Рио-де-Жанейро», 8 ноября, 13:00
Тезисы:
http://www.highload.ru/2017/abstracts/2947.html
Apache Ignite — Open Source платформа для высокопроизводительной распределенной работы с большими данными с применением SQL или Java/.NET/C++ API. Ignite используют в самых разных отраслях. Сбербанк, ING, RingCentral, Microsoft, e-Therapeutics — все эти компании применяют решения на основе Ignite. Размеры кластеров разнятся от всего одного узла до нескольких сотен, узлы могут быть расположены в одном ЦОД-е или в нескольких геораспределенных.
...
HighLoad++ 2017
Зал «Рио-де-Жанейро», 8 ноября, 12:00
Тезисы:
http://www.highload.ru/2017/abstracts/3005.html
Когда мы говорим о нагруженных системах и базах данных с большим числом параллельных коннектов, особый интерес представляет практика эксплуатации и сопровождения таких проектов. В том числе инструменты и механизмы СУБД, которые могут быть использованы DBA и DevOps-инженерами для решения задач мониторинга жизнедеятельности базы данных и ранней диагностики возможных проблем.
...
2. Высоконагруженные плоские таблицы
Примеры
sessions
passwd
Характерные особенности
select only by (primary) key
no joins
no complex wheres, no aggregates
sizeof(data) < 256B
высокая доступность
3. Скорость разных типов памяти
Tape is dead, disk is tape, RAM is disk.
Задержка произвольного доступа
RAM — 25 ns
HDD — 8’000’000 ns
Пропускная способность последовательного доступа
RAM — 6’400 MB/s
HDD — 170 MB/s
5. Устройство SLAB аллокатора
Высокая скорость
Рассчитан на хранение множества мелких объектов
Низкие накладные расходы
Отсутствие внешней фрагментации
4MB
free list
alloc
meta
free
...
“phantom” pointers
6. Массаракш: код наизнанку
FSM, libev only Fiber, libev+libcoro
read1 read1
read2 read2
loop loop
process process
write1 write1
7. Persistance
WAL Snapshot
read main process
fork
prepare
writer child
commit/rollback
reply HDD
Запись строго последовательная
Copy on Write
8. Hot Standby
Remote/Log Streaming
Local
port master replica1
master beholder replica2
Zero downtime апгрейд Readonly реплики на
удаленных серверах
9. IProto/Silverbox binary protocol
async safe: каждый запрос маркирован sync числом
tuple storage
< key1 , value1 , key2 , value2 , . . . , valuen >
атомарные операции: +/−, and , or , xor
namespaces
индексы — u32 или string
несколько индексов в одном namespace
10. Эмуляция memcached
нет evictions
expire — отложенный, с помощью background fiber
11. Производительность
latency
цена сискола
пропускная способность дисков невелика
1 KB × 100000 rps = 1MB × 100rps = 100 MB/sec
u32 в два раза быстрее string key
12. Что дальше?
новый формат WAL
расширенная версия бинарного протокола
Lua
Эмуляция протокола redis
13. Open Source
http://opensource.mail.ru/
http://github.com/mailru/
opensource@corp.mail.ru