Linux VMM для разрабочиков СУБД
В докладе будет рассказано о том, как Linux работает с виртуальной памятью. Будут освещены следующие вопросы:
- устройство таблицы страниц в x86-64, переключение контекста, page fault;
- устройство системы управления виртуальной памятью (VMM) в Linux;
- методы вытеснение странц в Linux, page cache и анонимные страницы;
- huge и gigantic pages, transparent huge pages;
- как работает mmap(2) и что дают madvise(2), msync(2) и пр.;
- почему большие СУБД не используют mmap(2), а реализуют свой пул страниц;
- и, конечно, как потюнить VMM в Linux с помощью sysctl.
Слайды
Видео
Другие доклады
-
Сергей Бурладян Avito Архитектор баз данных
Администрирование PostgreSQL в Avito
Мой доклад будет посвящён особенностям использования и администрирования PostgreSQL в Debian GNU/Linux в Avito. В частности, таким проблемам как:
- bash скрипты - утилиты pg_* debian - отладка postgres: perf, gdb - COPY без разрывов: psql, pipe - pgbouncer: один, два, ... больше? - cron - мониторинг - очередь на advisory lock - файловый кеш - DDL на нагруженной базе - и т.д.
-
Ильдар Мусин Postgres Professional Разработчик
Секционирование без границ
Механизм секционирования в Postgres имеет ряд ограничений, которые не позволяют использовать концепцию секционирования в полной мере. Среди таких ограничений можно выделить неэффективность планирования запросов для секционированных таблиц (линейный рост времени планирования при увеличении количества секций), отсутствие HASH-секционирования, необходимость ручного управления секциями. Однако, средства расширяемости Postgres предоставляют разработчику широкие возможности, позволяющие обойти некоторые ограничения. В докладе будет рассказано, как внедрившись в код планировщика удалось оптимизировать время планирования запросов. Так метод бинарного поиска позволяет добиться логарифмического роста времени планирования для RANGE-секционированных таблиц. Поэтому использование даже тысяч секций не будет приводить к существенным накладным расходам. Также удалось реализовать HASH-секционирование с близким к константному времени планирования.
-
Григорий Хромов MyAsterisk Руководитель технического отдела
Обработка статистических данных в режиме реального времени посредством триггеров
В нашей телефонной платформе исторически использовалась СУБД MySQL и стандартная система статистики CDR. Постоянные оптимизации позволили сократить время ожидания загрузки информации, но оно было все еще велико. Ко всему прочему CDR не отличалась детальностью и высокой точностью. Было принято решение миграции на PostgreSQL и создание собственной системы сбора статистики на основе подсистемы CEL. CEL генерирует по одной записи на каждое внутреннее событие происходящее во время звонка и число таких записей может достигать несколько сотен. Применив триггеры PostgreSQL мы смогли сформировать подробную статистику всего в одной записи на каждый звонок. При этом общая производительность по сравнению со старой системой ощутимо выросла – время загрузки сократилось с минуты и более до нескольких секунд.
-
ДДенис Иванов 2ГИС Ведущий разработчик
Эволюция использования PostgreSQL в справочном API 2GIS
- Первое появление постгреса в команде
- Борьба с репликацией
- Партицирование и миграции
- Кросс-датацентровое использование
- v8, json, jsonb, jsquery
- Апгрейд версии postgresql
На данный момент на продакшене бекенда справочного API 2GIS мы имеем с десяток различных баз в postgresql, около 120 шардов, миллионы записей в таблицах. При этом практически все данные хранятся в структурах jsonb
Я расскажу об эволюции продукта с точки зрения взаимодействия с СУБД.