29
Создаём ПРОБКИ. ТЮНИНГ PostgreSQL для расчетных задач. Скоморохов Евгений

Cоздаем пробки или тюнинг postgresql для расчетных задач

  • Upload
    devday

  • View
    676

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Cоздаем пробки или тюнинг postgresql для расчетных задач

Создаём ПРОБКИ.

ТЮНИНГ PostgreSQL

для расчетных задач.

Скоморохов Евгений

Page 2: Cоздаем пробки или тюнинг postgresql для расчетных задач

Обо мне

Скоморохов Евгений Юрьевичразработчик сервиса Пробки 2ГИС

Ранее ● разработка ПО по работе с БД PostgreSQL в

"КиберТехнология"● разработка WorkFlow в "АБП"

Page 3: Cоздаем пробки или тюнинг postgresql для расчетных задач
Page 4: Cоздаем пробки или тюнинг postgresql для расчетных задач

2gis Mobile

Page 5: Cоздаем пробки или тюнинг postgresql для расчетных задач

Геометрии

Page 6: Cоздаем пробки или тюнинг postgresql для расчетных задач

Исходные данные

POINT(82.870156074 54.995442578);157;13

Page 7: Cоздаем пробки или тюнинг postgresql для расчетных задач

Точкиhttp PostgreSQLMongoDb PostgreSQL

Pnghttp

Mobilehttp

CPPCPP

Процесс

Ngi

nx Ngi

nx

Page 8: Cоздаем пробки или тюнинг postgresql для расчетных задач

Бизнес логика

PostgreSQL + PostGIS

Page 9: Cоздаем пробки или тюнинг postgresql для расчетных задач

ЗЕБРА

МАКРОРЕБРО

Генерализация

Page 10: Cоздаем пробки или тюнинг postgresql для расчетных задач

Полосы движения

Page 11: Cоздаем пробки или тюнинг postgresql для расчетных задач

Обрезаем

Page 12: Cоздаем пробки или тюнинг postgresql для расчетных задач

Удлинняем

Page 13: Cоздаем пробки или тюнинг postgresql для расчетных задач

Пробки

Page 14: Cоздаем пробки или тюнинг postgresql для расчетных задач

Притяжка точек

Page 15: Cоздаем пробки или тюнинг postgresql для расчетных задач

АггрегацияФильтрация

Расчёт пробок

Page 16: Cоздаем пробки или тюнинг postgresql для расчетных задач

Показатели

Притяжка 1000 точек/секундуПодготовка графа 20 минут

Page 17: Cоздаем пробки или тюнинг postgresql для расчетных задач

Поговорить

Page 18: Cоздаем пробки или тюнинг postgresql для расчетных задач

PostgreSQL

Хранение

Page 19: Cоздаем пробки или тюнинг postgresql для расчетных задач

PL/pgSQL

Структуры данных

Page 20: Cоздаем пробки или тюнинг postgresql для расчетных задач

Как разрабатывать

ЗАДАЧА

Page 21: Cоздаем пробки или тюнинг postgresql для расчетных задач

Система

Данные

i-net

Запас прочности

Page 22: Cоздаем пробки или тюнинг postgresql для расчетных задач

Деградация

Ограничение объемов данных

Autovacuum

pgTune + pgFouine

Page 23: Cоздаем пробки или тюнинг postgresql для расчетных задач

Фича

Данные для обработки вырастут в N раз

Page 24: Cоздаем пробки или тюнинг postgresql для расчетных задач

Партицирование

2 таблицы лучше чем одна

Page 25: Cоздаем пробки или тюнинг postgresql для расчетных задач

Декомпозиция

Вычисление на лету

Page 26: Cоздаем пробки или тюнинг postgresql для расчетных задач

Много строк

Как уменьшить индекс?

Page 27: Cоздаем пробки или тюнинг postgresql для расчетных задач

Redis vs PostgreSQL

Число записей: 60.000.000Отдача пробок 95 % персентиль

Redis 40 мсPostgreSQL 55 мс

Page 28: Cоздаем пробки или тюнинг postgresql для расчетных задач

Заключение

Расчеты в БД - быстро, качественно, надежно

Page 29: Cоздаем пробки или тюнинг postgresql для расчетных задач

Вопросы

Скоморохов Е.Ю. | icq:282708810 | [email protected]