Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Об опыте применения JSONB в
реальных проектах
Евгений Тюменцев
HWdTech, LLC
hwdtech.ru
PgConf.Russia 2016
3-5 ФЕВРАЛЯ, МОСКВА, Известия-Холл
Сайт бесплатных объявлений
PgConf.Russia 2016 02
За 5 лет полностью сменилось 3 команды
разработчиков, скорость важнее качества.
4,5 с – время отклика страницы
70 тыс. ошибок на 1 млн. страниц
30 с - время поиска по тексту объявления
БД более 200 таблиц
Проблемы
• Скорость выполнения запросов
• Миграция
• Репликация
• Непротиворечивость
• ORM
PgConf.Russia 2016 03
Что надо получить
PgConf.Russia 2016 04
Сделать редизайн сайта
Команда разработки 7 студентов +
девушка филолог в качестве аналитика
<1 с – время отклика страницы
< 1 ош. на 10 тыс. страниц
Полнотекстовый поиск должен стать
основным
Что делать?
Отказаться от
реляционной структуры в
пользу json
PgConf.Russia 2016 05
{
"firstName": "Иван",
"lastName": "Иванов",
"address": {
"streetAddress":
"Московское ш., 101, кв.101",
"city": "Ленинград",
"postalCode": 101101
},
"phoneNumbers": [
"812 123-1234",
"916 123-4567"
]
}
Все поля делятся на:
• Searchable
• Filterable
• Rangeable
{
“FullTextSearch": “Mazda 3",
“Ranges": {
“Price": {“left“: 200000, right:
700000}
},
Order:
[
{Field: “PublishDate”, Reverse:
true}
],
“Count”: 20,
“Page”: 2
}
Что получили?
• Всего 6 запросов
PgConf.Russia 2016 06
Что получили?
• Всего 6 запросов
• Среднее время выполнения каждого
запроса известно
PgConf.Russia 2016 07
Время выполнения запроса
Недвижимость
PgConf.Russia 2016 08
Время выполнения запроса
Жилая
Коммерчесая
PgConf.Russia 2016 09
Что получили?
• Всего 6 запросов
• Среднее время выполнения каждого запроса
известно
• Не надо репликаций для балансировки
нагрузки, формирования тяжелых отчетов
PgConf.Russia 2016 10
Что получили?
• Всего 6 запросов
• Среднее время выполнения каждого запроса
известно
• Не надо репликаций для балансировки
нагрузки, формирования тяжелых отчетов
• Не нужно миграций, можно одновременно
хранить данные разных версий
PgConf.Russia 2016 11
Вместо join
PgConf.Russia 2016 12
Вместо транзакций
PgConf.Russia 2016 13
Контрольная точка
сохраняет в БД
входящее сообщение
как есть
Конечная точка
маршрута сообщения
Плюсы контрольных точек
PgConf.Russia 2016 14
Контрольная точка
сохраняет в БД входящее
сообщение как естьвходящий
запрос
ответ
Методы обнаружения разладки
PgConf.Russia 2016 15
Карты Шухарта
Все процессы подвержены
вариабельности. Управляемое
явление - используя прошлый
опыт можно предсказать, каких
его вариаций можно ожидать в
будущем.
ГОСТ Р 50779.42-99 (ISO 8258-91)
Баг пофиксили?
PgConf.Russia 2016 16
А казачок-то засланный!
PgConf.Russia 2016 17
Троллить надо уметь!
PgConf.Russia 2016 18
Как наладить диалог с коллегами?
PgConf.Russia 2016 19
Ссылки
Доклад на HappyDev 2015
https://youtu.be/hqkyaMeRI84
Платформа SmartActors
http://www.slideshare.net/etyumentcev/smarta
ctors
PgConf.Russia 2016 20
Спасибо за внимание!
PgConf.Russia 2016 02
Тюменцев Евгений
hwdtech.ru
etyumentcev@hwdtech.ru
+7 913 150 22 04
http://www.slideshare.net/etyumentcev/

More Related Content

Об опыте применения jsonb в реальных проектах. Выступление на PgConf.Russia 2016