HighLoad++ 2015 завершён! Ждём вас в 2016 году!

Профессиональная конференция разработчиков высоконагруженных систем

2 и 3 ноября 2015 Крокус-Экспо МОСКВА
Профессиональная конференция разработчиков высоконагруженных систем

Масштабирование базы данных через шардирование и партиционирование
Основная программа

Доклад принят в Программу конференции
2ГИС

Работаю ведущим разработчиком в 2ГИС. Занимаюсь высокими нагрузками как со стороны алгоритмов, языков программирования и технологий в бэкенде, так и различными оптимизациями со стороны баз данных.

Тезисы

Разрабатывая какой-либо проект рано или поздно мы можем столкнуться с проблемой нагрузки на БД. Данных может быть очень много, а мы как-то должны выдерживать нагрузки и должны быть готовы к её росту.

В своём докладе я поделюсь опытом масштабирования БД, расскажу всё максимально подробно — с какими проблемами можно столкнуться, какие стратегии и подходы лучше всего заложить в проекте.

Проблемы:
— Много строк в таблицах.
— «Медленные» запросы.

Варианты масштабирования БД
— Секционирование / партицирование данных.
— Шардинг.
— Репликация.

На какие вопросы будут получены ответы:
— Как создать сегментированную таблицу?
— Использование constraint (ограничений).
— Выборка данных из сегментированных таблиц.
— Как управлять сегментами таблицы: вставка, удаление, изменение данных.
— Индексы и триггеры в сегментированных таблицах.
— Архивация данных.
— Использование представлений и материализованных представлений.
— Шардирование данных.
— Репликация как способ масштабирования БД, архивации и резервного копирования.
— В каких случаях какой из способов масштабирования выбрать?
— Какие плюсы и минусы у каждого из подходов?
— Прирост производительности БД (в 3-4 раза) на том же оборудовании при применении сегментирования.

Partition Magic — наша собственная утилита для автоматического управления партицированными таблицами в PostgreSQL (https://github.com/2gis/partition_magic):
— Автоматическое создание партиций.
— Управление триггерами, проверками, ограничениями и индексами.
— Выборка данных.
— Добавление данных.
— Удаление данных.
— Изменение данных.

Покажу на примерах PostgreSQL и расскажу про готовые к использованию утилиты и инструменты.

Другие доклады секции
Основная программа

Rambler's Top100