В докладе описан опыт построения нагруженной отказоустойчивой системы, использующей jsonb для хранения данных. В частности рассказываются механизмы, которые заменили join, транзакции, в том числе распределенные, репликации обычных SQL баз данных.
1 of 21
More Related Content
Об опыте применения jsonb в реальных проектах. Выступление на PgConf.Russia 2016
1. Об опыте применения JSONB в
реальных проектах
Евгений Тюменцев
HWdTech, LLC
hwdtech.ru
PgConf.Russia 2016
3-5 ФЕВРАЛЯ, МОСКВА, Известия-Холл
2. Сайт бесплатных объявлений
PgConf.Russia 2016 02
За 5 лет полностью сменилось 3 команды
разработчиков, скорость важнее качества.
4,5 с – время отклика страницы
70 тыс. ошибок на 1 млн. страниц
30 с - время поиска по тексту объявления
БД более 200 таблиц
4. Что надо получить
PgConf.Russia 2016 04
Сделать редизайн сайта
Команда разработки 7 студентов +
девушка филолог в качестве аналитика
<1 с – время отклика страницы
< 1 ош. на 10 тыс. страниц
Полнотекстовый поиск должен стать
основным
5. Что делать?
Отказаться от
реляционной структуры в
пользу json
PgConf.Russia 2016 05
{
"firstName": "Иван",
"lastName": "Иванов",
"address": {
"streetAddress":
"Московское ш., 101, кв.101",
"city": "Ленинград",
"postalCode": 101101
},
"phoneNumbers": [
"812 123-1234",
"916 123-4567"
]
}
Все поля делятся на:
• Searchable
• Filterable
• Rangeable
10. Что получили?
• Всего 6 запросов
• Среднее время выполнения каждого запроса
известно
• Не надо репликаций для балансировки
нагрузки, формирования тяжелых отчетов
PgConf.Russia 2016 10
11. Что получили?
• Всего 6 запросов
• Среднее время выполнения каждого запроса
известно
• Не надо репликаций для балансировки
нагрузки, формирования тяжелых отчетов
• Не нужно миграций, можно одновременно
хранить данные разных версий
PgConf.Russia 2016 11
15. Методы обнаружения разладки
PgConf.Russia 2016 15
Карты Шухарта
Все процессы подвержены
вариабельности. Управляемое
явление - используя прошлый
опыт можно предсказать, каких
его вариаций можно ожидать в
будущем.
ГОСТ Р 50779.42-99 (ISO 8258-91)