SlideShare a Scribd company logo
1 of 20
Download to read offline
Социальная сеть, которая просто работает
В начале
● Нерабочая схема.
● Отсутствие готовой функциональности.
● Жуткие тормоза в базе.
● MySQL.
Что делать?
– Нет.
Наш ответ
● Рекомендательный сервис
● Система премирования
● Полнотекстовый поиск
Сложные задачи и их решения
● Обновлять рекомендации не реже раза в сутки.
● Минимально возможная нагрузка на сервер.
● Динамичность рекомендаций для каждого пользователя.
● Процент вероятности, что рекомендация близка пользователю.
● Дополнительный расчет рекомендаций, по данным из профиля.
Рекомендательный сервис
Основные требования
user B
user C
user D
Rрек = (SUb + SUc + SUd) - SUa; Ecount = 3;
Params from user profile
Books with params
Recommendations
+E
Решение
user A
● Скорость работы в пределах 100мс на
пользователя.
Анализ решения на PostgreSQL
● Возможность распределять выполнение по времени.
● Динамический поиск вхождений.
● Подсчет процента вероятности, с которой
пользователю понравится рекомендация.
● Расчет дополнительных рекомендаций на основе
данных из профиля пользователя.
● Транзакционность.
Система премирования
Основные требования
● Возможность ручного начисления.
● Автономное формирование групповых начислений,
по результатам накопления групп.
● Обновление баланса в режиме реального времени.
● История начислений.
● Распределение нагрузки.
Решение на PostgreSQL
SP User action EXT mbus SP Processing
SP withdraw SP deposit
Store
in DB
SP collect groups
● Отказоустойчивость.
● Асинхронная работа (отсутствие нагрузки).
● Легкий рефакторинг логики.
● Повторное использование атомарных операций.
● Реализованы все требования.
Анализ работы решения
● Быстрый поиск данных.
● Возможность масштабирования.
● Ранжирование результатов.
● Поиск по разным критериям.
● Высокая скорость индексации.
Полнотекстовый поиск
Требования
Обычно У нас
Противопоставление технологий
● Стабильность решения.
● Возможность масштабирования.
● Приемлемая скорость работы.
● Ожидаемая нагрузка на сервер.
● А почему бы и нет?
Почему PostgreSQL?
DB server
MAIN DB
sync
На начальном этапе развития проекта
Схема работы
DATA PREPARED
for search
search request
DB server DB server
sync
Как может работать?
При необходимости
Main DB
DATA PREPARED
for search
search request
Data prepared
for search
Indexes (gin)
Tsearch2
(full text engine)
Optimized SP
(5 search layers in one)
● Скорость работы.
Плюсы
● Незначительные.
Минусы
● Быстрое внесение изменений.
● Отсутствие неконтролируемого
роста запросов.
● Транзакционность.
● Встроенные решения конкурентного
доступа.
Логика в базе
Ваши вопросы?

More Related Content

Similar to PG Day'14 Russia, Социальная сеть, которая просто работает, Владислав Коваль

Александр Калугин - Простота тестирования маленького системного ПО
Александр Калугин - Простота тестирования маленького системного ПОАлександр Калугин - Простота тестирования маленького системного ПО
Александр Калугин - Простота тестирования маленького системного ПОSQALab
 
Тестирование в условиях Lean: как приручить MVP?
Тестирование в условиях Lean: как приручить MVP?Тестирование в условиях Lean: как приручить MVP?
Тестирование в условиях Lean: как приручить MVP?SQALab
 
20111002 information retrieval raskovalov_lecture3
20111002 information retrieval raskovalov_lecture320111002 information retrieval raskovalov_lecture3
20111002 information retrieval raskovalov_lecture3Computer Science Club
 
Тимстрим по веб-аналитике
Тимстрим по веб-аналитикеТимстрим по веб-аналитике
Тимстрим по веб-аналитикеDIGITAL YAPONOCHKA.COM
 
Vladimir Bobrikov Rit2010 Reputation
Vladimir Bobrikov Rit2010 ReputationVladimir Bobrikov Rit2010 Reputation
Vladimir Bobrikov Rit2010 Reputationguest092df8
 
средства оценки производительности
средства оценки производительностисредства оценки производительности
средства оценки производительностиHelen Kopteva
 
Xp days 2019 - Why startups need SRE practices
Xp days 2019 - Why startups need SRE practicesXp days 2019 - Why startups need SRE practices
Xp days 2019 - Why startups need SRE practicesAlexey Andreev
 
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайнBadoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайнSergey Xek
 
Конференция Cybermarketing 2015: Яндекс.Метрика или как «большой брат» следит...
Конференция Cybermarketing 2015: Яндекс.Метрика или как «большой брат» следит...Конференция Cybermarketing 2015: Яндекс.Метрика или как «большой брат» следит...
Конференция Cybermarketing 2015: Яндекс.Метрика или как «большой брат» следит...Cybermarketing, Moscow
 
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайнBadoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайнSergey Xek
 
Zherdev icinga 20120423
Zherdev icinga 20120423Zherdev icinga 20120423
Zherdev icinga 20120423kuchinskaya
 
Система управления жизненным циклом разработки программного обеспечения Devpr...
Система управления жизненным циклом разработки программного обеспечения Devpr...Система управления жизненным циклом разработки программного обеспечения Devpr...
Система управления жизненным циклом разработки программного обеспечения Devpr...Evgeny Savitsky
 
Управление зависимостями между командами
Управление зависимостями между командамиУправление зависимостями между командами
Управление зависимостями между командамиAskhat Urazbaev
 
уразбаев управление зависимостями
уразбаев управление зависимостямиуразбаев управление зависимостями
уразбаев управление зависимостямиMagneta AI
 
Презентация аналитической системы для ритейла СуперМаг BI
Презентация аналитической системы для ритейла СуперМаг BIПрезентация аналитической системы для ритейла СуперМаг BI
Презентация аналитической системы для ритейла СуперМаг BIОникс Софт
 
Виталий Гаврилов (Ленвендо)
Виталий Гаврилов (Ленвендо)Виталий Гаврилов (Ленвендо)
Виталий Гаврилов (Ленвендо)Ontico
 
Система электронного документооборота Directum
Система электронного документооборота DirectumСистема электронного документооборота Directum
Система электронного документооборота DirectumNatasha Zaverukha
 
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...Ontico
 
OpenSource SQL Databases Enter Millions Queries per Second Era
OpenSource SQL Databases Enter Millions Queries per Second EraOpenSource SQL Databases Enter Millions Queries per Second Era
OpenSource SQL Databases Enter Millions Queries per Second EraSveta Smirnova
 

Similar to PG Day'14 Russia, Социальная сеть, которая просто работает, Владислав Коваль (20)

Александр Калугин - Простота тестирования маленького системного ПО
Александр Калугин - Простота тестирования маленького системного ПОАлександр Калугин - Простота тестирования маленького системного ПО
Александр Калугин - Простота тестирования маленького системного ПО
 
Тестирование в условиях Lean: как приручить MVP?
Тестирование в условиях Lean: как приручить MVP?Тестирование в условиях Lean: как приручить MVP?
Тестирование в условиях Lean: как приручить MVP?
 
20111002 information retrieval raskovalov_lecture3
20111002 information retrieval raskovalov_lecture320111002 information retrieval raskovalov_lecture3
20111002 information retrieval raskovalov_lecture3
 
Тимстрим по веб-аналитике
Тимстрим по веб-аналитикеТимстрим по веб-аналитике
Тимстрим по веб-аналитике
 
Vladimir Bobrikov Rit2010 Reputation
Vladimir Bobrikov Rit2010 ReputationVladimir Bobrikov Rit2010 Reputation
Vladimir Bobrikov Rit2010 Reputation
 
средства оценки производительности
средства оценки производительностисредства оценки производительности
средства оценки производительности
 
Xp days 2019 - Why startups need SRE practices
Xp days 2019 - Why startups need SRE practicesXp days 2019 - Why startups need SRE practices
Xp days 2019 - Why startups need SRE practices
 
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайнBadoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
 
Конференция Cybermarketing 2015: Яндекс.Метрика или как «большой брат» следит...
Конференция Cybermarketing 2015: Яндекс.Метрика или как «большой брат» следит...Конференция Cybermarketing 2015: Яндекс.Метрика или как «большой брат» следит...
Конференция Cybermarketing 2015: Яндекс.Метрика или как «большой брат» следит...
 
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайнBadoo Desktop: оптимизация приложения на миллион юзеров онлайн
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
 
Как продать SLA?
Как продать SLA?Как продать SLA?
Как продать SLA?
 
Zherdev icinga 20120423
Zherdev icinga 20120423Zherdev icinga 20120423
Zherdev icinga 20120423
 
Система управления жизненным циклом разработки программного обеспечения Devpr...
Система управления жизненным циклом разработки программного обеспечения Devpr...Система управления жизненным циклом разработки программного обеспечения Devpr...
Система управления жизненным циклом разработки программного обеспечения Devpr...
 
Управление зависимостями между командами
Управление зависимостями между командамиУправление зависимостями между командами
Управление зависимостями между командами
 
уразбаев управление зависимостями
уразбаев управление зависимостямиуразбаев управление зависимостями
уразбаев управление зависимостями
 
Презентация аналитической системы для ритейла СуперМаг BI
Презентация аналитической системы для ритейла СуперМаг BIПрезентация аналитической системы для ритейла СуперМаг BI
Презентация аналитической системы для ритейла СуперМаг BI
 
Виталий Гаврилов (Ленвендо)
Виталий Гаврилов (Ленвендо)Виталий Гаврилов (Ленвендо)
Виталий Гаврилов (Ленвендо)
 
Система электронного документооборота Directum
Система электронного документооборота DirectumСистема электронного документооборота Directum
Система электронного документооборота Directum
 
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
 
OpenSource SQL Databases Enter Millions Queries per Second Era
OpenSource SQL Databases Enter Millions Queries per Second EraOpenSource SQL Databases Enter Millions Queries per Second Era
OpenSource SQL Databases Enter Millions Queries per Second Era
 

More from pgdayrussia

PG Day'14 Russia, Secure PostgreSQL Deployment, Magnus Hagander
PG Day'14 Russia, Secure PostgreSQL Deployment, Magnus HaganderPG Day'14 Russia, Secure PostgreSQL Deployment, Magnus Hagander
PG Day'14 Russia, Secure PostgreSQL Deployment, Magnus Haganderpgdayrussia
 
PG Day'14 Russia, Работа со слабо-структурированными данными в PostgreSQL, Ол...
PG Day'14 Russia, Работа со слабо-структурированными данными в PostgreSQL, Ол...PG Day'14 Russia, Работа со слабо-структурированными данными в PostgreSQL, Ол...
PG Day'14 Russia, Работа со слабо-структурированными данными в PostgreSQL, Ол...pgdayrussia
 
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил ТюринPG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюринpgdayrussia
 
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...pgdayrussia
 
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...pgdayrussia
 
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 1...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 1...PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 1...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 1...pgdayrussia
 
PG Day'14 Russia, PostgreSQL System Architecture, Heikki Linnakangas
PG Day'14 Russia, PostgreSQL System Architecture, Heikki LinnakangasPG Day'14 Russia, PostgreSQL System Architecture, Heikki Linnakangas
PG Day'14 Russia, PostgreSQL System Architecture, Heikki Linnakangaspgdayrussia
 
PG Day'14 Russia, PostgreSQL: архитектура, настройка и оптимизация, Илья Косм...
PG Day'14 Russia, PostgreSQL: архитектура, настройка и оптимизация, Илья Косм...PG Day'14 Russia, PostgreSQL: архитектура, настройка и оптимизация, Илья Косм...
PG Day'14 Russia, PostgreSQL: архитектура, настройка и оптимизация, Илья Косм...pgdayrussia
 
PG Day'14 Russia, Индексный поиск по регулярным выражениям, Александр Коротков
PG Day'14 Russia, Индексный поиск по регулярным выражениям, Александр КоротковPG Day'14 Russia, Индексный поиск по регулярным выражениям, Александр Коротков
PG Day'14 Russia, Индексный поиск по регулярным выражениям, Александр Коротковpgdayrussia
 
PG Day'14 Russia, GIN — Stronger than ever in 9.4 and further, Александр Коро...
PG Day'14 Russia, GIN — Stronger than ever in 9.4 and further, Александр Коро...PG Day'14 Russia, GIN — Stronger than ever in 9.4 and further, Александр Коро...
PG Day'14 Russia, GIN — Stronger than ever in 9.4 and further, Александр Коро...pgdayrussia
 
PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...
PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...
PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...pgdayrussia
 
PG Day'14 Russia, Модуль anyarray, Федор Сигаев
PG Day'14 Russia, Модуль anyarray, Федор СигаевPG Day'14 Russia, Модуль anyarray, Федор Сигаев
PG Day'14 Russia, Модуль anyarray, Федор Сигаевpgdayrussia
 

More from pgdayrussia (12)

PG Day'14 Russia, Secure PostgreSQL Deployment, Magnus Hagander
PG Day'14 Russia, Secure PostgreSQL Deployment, Magnus HaganderPG Day'14 Russia, Secure PostgreSQL Deployment, Magnus Hagander
PG Day'14 Russia, Secure PostgreSQL Deployment, Magnus Hagander
 
PG Day'14 Russia, Работа со слабо-структурированными данными в PostgreSQL, Ол...
PG Day'14 Russia, Работа со слабо-структурированными данными в PostgreSQL, Ол...PG Day'14 Russia, Работа со слабо-структурированными данными в PostgreSQL, Ол...
PG Day'14 Russia, Работа со слабо-структурированными данными в PostgreSQL, Ол...
 
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил ТюринPG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
 
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...
 
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...
 
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 1...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 1...PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 1...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 1...
 
PG Day'14 Russia, PostgreSQL System Architecture, Heikki Linnakangas
PG Day'14 Russia, PostgreSQL System Architecture, Heikki LinnakangasPG Day'14 Russia, PostgreSQL System Architecture, Heikki Linnakangas
PG Day'14 Russia, PostgreSQL System Architecture, Heikki Linnakangas
 
PG Day'14 Russia, PostgreSQL: архитектура, настройка и оптимизация, Илья Косм...
PG Day'14 Russia, PostgreSQL: архитектура, настройка и оптимизация, Илья Косм...PG Day'14 Russia, PostgreSQL: архитектура, настройка и оптимизация, Илья Косм...
PG Day'14 Russia, PostgreSQL: архитектура, настройка и оптимизация, Илья Косм...
 
PG Day'14 Russia, Индексный поиск по регулярным выражениям, Александр Коротков
PG Day'14 Russia, Индексный поиск по регулярным выражениям, Александр КоротковPG Day'14 Russia, Индексный поиск по регулярным выражениям, Александр Коротков
PG Day'14 Russia, Индексный поиск по регулярным выражениям, Александр Коротков
 
PG Day'14 Russia, GIN — Stronger than ever in 9.4 and further, Александр Коро...
PG Day'14 Russia, GIN — Stronger than ever in 9.4 and further, Александр Коро...PG Day'14 Russia, GIN — Stronger than ever in 9.4 and further, Александр Коро...
PG Day'14 Russia, GIN — Stronger than ever in 9.4 and further, Александр Коро...
 
PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...
PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...
PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...
 
PG Day'14 Russia, Модуль anyarray, Федор Сигаев
PG Day'14 Russia, Модуль anyarray, Федор СигаевPG Day'14 Russia, Модуль anyarray, Федор Сигаев
PG Day'14 Russia, Модуль anyarray, Федор Сигаев
 

PG Day'14 Russia, Социальная сеть, которая просто работает, Владислав Коваль

  • 1. Социальная сеть, которая просто работает
  • 2. В начале ● Нерабочая схема. ● Отсутствие готовой функциональности. ● Жуткие тормоза в базе. ● MySQL.
  • 4.
  • 6. ● Рекомендательный сервис ● Система премирования ● Полнотекстовый поиск Сложные задачи и их решения
  • 7. ● Обновлять рекомендации не реже раза в сутки. ● Минимально возможная нагрузка на сервер. ● Динамичность рекомендаций для каждого пользователя. ● Процент вероятности, что рекомендация близка пользователю. ● Дополнительный расчет рекомендаций, по данным из профиля. Рекомендательный сервис Основные требования
  • 8. user B user C user D Rрек = (SUb + SUc + SUd) - SUa; Ecount = 3; Params from user profile Books with params Recommendations +E Решение user A
  • 9. ● Скорость работы в пределах 100мс на пользователя. Анализ решения на PostgreSQL ● Возможность распределять выполнение по времени. ● Динамический поиск вхождений. ● Подсчет процента вероятности, с которой пользователю понравится рекомендация. ● Расчет дополнительных рекомендаций на основе данных из профиля пользователя.
  • 10. ● Транзакционность. Система премирования Основные требования ● Возможность ручного начисления. ● Автономное формирование групповых начислений, по результатам накопления групп. ● Обновление баланса в режиме реального времени. ● История начислений. ● Распределение нагрузки.
  • 11. Решение на PostgreSQL SP User action EXT mbus SP Processing SP withdraw SP deposit Store in DB SP collect groups
  • 12. ● Отказоустойчивость. ● Асинхронная работа (отсутствие нагрузки). ● Легкий рефакторинг логики. ● Повторное использование атомарных операций. ● Реализованы все требования. Анализ работы решения
  • 13. ● Быстрый поиск данных. ● Возможность масштабирования. ● Ранжирование результатов. ● Поиск по разным критериям. ● Высокая скорость индексации. Полнотекстовый поиск Требования
  • 15. ● Стабильность решения. ● Возможность масштабирования. ● Приемлемая скорость работы. ● Ожидаемая нагрузка на сервер. ● А почему бы и нет? Почему PostgreSQL?
  • 16. DB server MAIN DB sync На начальном этапе развития проекта Схема работы DATA PREPARED for search search request
  • 17. DB server DB server sync Как может работать? При необходимости Main DB DATA PREPARED for search search request
  • 18. Data prepared for search Indexes (gin) Tsearch2 (full text engine) Optimized SP (5 search layers in one)
  • 19. ● Скорость работы. Плюсы ● Незначительные. Минусы ● Быстрое внесение изменений. ● Отсутствие неконтролируемого роста запросов. ● Транзакционность. ● Встроенные решения конкурентного доступа. Логика в базе