SlideShare a Scribd company logo
1 of 16
Олег Алексеев,
МойСклад, технический директор
Облачное ERP-приложение с
относительно тяжелыми запросами
к БД
● 2007, май – начало разработки, выбран PostgreSQL в качестве БД, 4 программиста
● 2008, январь – зарегистрирована компания, 2 программиста
● 2008, февраль – первые клиенты
● 2008, август – аккаунтер и программист
● 2008, сентябрь – первые инвестиции от основателей Skype, помогло общее
знакомство с PostgreSQL
● 2010, март – директор по развитию и маркетингу
● 2011, январь – 1С генеральный инвестор
● 2011, март – 4 программиста и тестировщик
● В настоящее время – всего 32 человека в Москве и Нижнем Новгороде
История
●
700 Гб объем данных
●
40000000 документов всего
●
90000 новых документов в день (рост 100% в год)
●
200 HTTP-запросов в секунду (600 в пике)
●
400 SQL-запросов в секунду (1400 в пике)
●
… всё это на 6 серверов БД (Intel(R) Xeon(R) CPU E5-1620 v2 @
3.70GHz, SSD 320, 32Gb)
Статистика
●
15 — кратность чтения к записи по времени
●
4000 — кратность чтения к записи по объему
данных
●
200 Мбит/c — минимальная пропускная
способность сетевого интерфейса
Обмен данными
●
2000 одновременно работающих пользователей
●
4000 активных клиентов
●
360000 регистраций
Клиенты
Рост
● Основное приложение
● Розничная точка
● Импорт-экспорт CSV/XLS
● Обмен с интернет-магазинами
● REST API CRUD
● REST API Report
● Tenant API
Интерфейсы к внешнему миру
Библиотека авторизации и Hazelcast
Мультипликатор БД
Java Java Java Java
DS DS DS DS
PgSQL авторизации
PgSQL с бизнес данными
●
Первое решение - партиционинг.
●
С ростом нагрузки переходим к шардингу на отдельные базы
(январь 2012, 67000 регистраций, 2000000 документов).
●
Для повышения управляемости переходим к шардингу в
отдельных схемах, сгруппированных в базы на отдельных
серверах (сентябрь 2013, 180000 регистраций, 13000000
документов).
Разделение данных клиентов
●
pg_dump/pg_restore
●
pg_basebackup
●
pg_reorg
●
Полнотекстовый поиск
●
Array & Hstore
●
Json
Применяемые средства PostgreSQL
●
До 24 слияний в запросе
●
Все генетические анализаторы включены
●
Все обычные анализаторы включены
●
Таймаут запроса – 5 минут
●
Увеличенные задержки на commit, bgwriter, wal_writer
●
Autovacuum с минимальными задержками и стоимостью
Особенности настройки
●
... хранения файлов в БД
●
… триггеров и хранимых процедур
●
… подсчета размера хранимых данных
●
… синхронного коммита в кластере
Использовали, но отказались от
●
Отказ от массивных запросов со слияниями
●
Сохранение агрегатов
●
Подготовка данных по разрезам
●
Асинхронный пересчет себестоимости
●
Автоматические миграции БД
Пришли к
●
Movedb – перемещение БД и схем
●
Splitdb – деление БД и схем
●
Мониторинг – Nagios & pg_stats
Инструменты
●
Мастер-слейв репликация
●
Архивирование логов
●
Почему не получается использовать pg-pool
●
Почему не Postgres-XC
Обеспечение высокой доступности
●
Tablefunc
●
Управление пулами соединений в кластере
●
Распределение нагрузки на slave-базы
●
Мониторинг роста данных в схемах, введение
метрик поведения клиентов
Планы по развитию

More Related Content

What's hot

Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...Ontico
 
«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС
«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС
«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС2ГИС Технологии
 
"CSScomb.js — вторая жизнь" — Михаил Трошев, Яндекс — доклад на MoscowJS 12
"CSScomb.js — вторая жизнь" — Михаил Трошев, Яндекс — доклад на MoscowJS 12"CSScomb.js — вторая жизнь" — Михаил Трошев, Яндекс — доклад на MoscowJS 12
"CSScomb.js — вторая жизнь" — Михаил Трошев, Яндекс — доклад на MoscowJS 12MoscowJS
 
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...Ontico
 
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Alexey Zinoviev
 
maps.sputnik.ru #highload2014
maps.sputnik.ru #highload2014maps.sputnik.ru #highload2014
maps.sputnik.ru #highload2014Maxim Dementyev
 
Борис Каплуновский, Aviasales.ru
Борис Каплуновский, Aviasales.ruБорис Каплуновский, Aviasales.ru
Борис Каплуновский, Aviasales.ruOntico
 
MongoDB в продакшен - миф или реальность?
MongoDB в продакшен - миф или реальность?MongoDB в продакшен - миф или реальность?
MongoDB в продакшен - миф или реальность?Alexey Tokar
 
2014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.4
2014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.42014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.4
2014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.4Nikolay Samokhvalov
 
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...phpdevby
 
SphinxSearch Meetup - Tips&tricks
SphinxSearch Meetup - Tips&tricksSphinxSearch Meetup - Tips&tricks
SphinxSearch Meetup - Tips&tricksRoman Pavlushko
 
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...Ontico
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеAlexandr Krasheninnikov
 
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...Pavel Dovbush
 
MongoDB basics in Russian
MongoDB basics in RussianMongoDB basics in Russian
MongoDB basics in RussianOleg Kachan
 
Кратко о MongoDB
Кратко о MongoDBКратко о MongoDB
Кратко о MongoDBGleb Lebedev
 

What's hot (20)

Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
 
«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС
«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС
«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС
 
"CSScomb.js — вторая жизнь" — Михаил Трошев, Яндекс — доклад на MoscowJS 12
"CSScomb.js — вторая жизнь" — Михаил Трошев, Яндекс — доклад на MoscowJS 12"CSScomb.js — вторая жизнь" — Михаил Трошев, Яндекс — доклад на MoscowJS 12
"CSScomb.js — вторая жизнь" — Михаил Трошев, Яндекс — доклад на MoscowJS 12
 
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
 
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
 
maps.sputnik.ru #highload2014
maps.sputnik.ru #highload2014maps.sputnik.ru #highload2014
maps.sputnik.ru #highload2014
 
Борис Каплуновский, Aviasales.ru
Борис Каплуновский, Aviasales.ruБорис Каплуновский, Aviasales.ru
Борис Каплуновский, Aviasales.ru
 
MongoDB в продакшен - миф или реальность?
MongoDB в продакшен - миф или реальность?MongoDB в продакшен - миф или реальность?
MongoDB в продакшен - миф или реальность?
 
2014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.4
2014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.42014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.4
2014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.4
 
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
 
Avito Stachka 2012
Avito Stachka 2012Avito Stachka 2012
Avito Stachka 2012
 
SphinxSearch Meetup - Tips&tricks
SphinxSearch Meetup - Tips&tricksSphinxSearch Meetup - Tips&tricks
SphinxSearch Meetup - Tips&tricks
 
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проекте
 
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
 
Анализируем данные с Clickhouse
Анализируем данные с  ClickhouseАнализируем данные с  Clickhouse
Анализируем данные с Clickhouse
 
ClickHouse
ClickHouseClickHouse
ClickHouse
 
MongoDB basics in Russian
MongoDB basics in RussianMongoDB basics in Russian
MongoDB basics in Russian
 
No sql.mongodb scaling
No sql.mongodb scalingNo sql.mongodb scaling
No sql.mongodb scaling
 
Кратко о MongoDB
Кратко о MongoDBКратко о MongoDB
Кратко о MongoDB
 

Viewers also liked

МойСклад
МойСкладМойСклад
МойСкладLogneX
 
Оперативный учет для МСБ с помощью сервиса МойСклад
Оперативный учет для МСБ с помощью сервиса МойСкладОперативный учет для МСБ с помощью сервиса МойСклад
Оперативный учет для МСБ с помощью сервиса МойСклад MoySklad
 
Работа с клиентами: от первой продажи к лояльности (МойСклад)
Работа с клиентами: от первой продажи к лояльности (МойСклад)Работа с клиентами: от первой продажи к лояльности (МойСклад)
Работа с клиентами: от первой продажи к лояльности (МойСклад)MoySklad
 
Safe keeping final
Safe keeping finalSafe keeping final
Safe keeping finalLogneX
 
Увеличиваем продажи через сайт. Коммуникации с клиентом и выполнение заказов ...
Увеличиваем продажи через сайт. Коммуникации с клиентом и выполнение заказов ...Увеличиваем продажи через сайт. Коммуникации с клиентом и выполнение заказов ...
Увеличиваем продажи через сайт. Коммуникации с клиентом и выполнение заказов ...MoySklad
 
MoySklad HSE
MoySklad HSEMoySklad HSE
MoySklad HSELogneX
 
Привлекай, продавай, анализируй
Привлекай, продавай, анализируйПривлекай, продавай, анализируй
Привлекай, продавай, анализируйMoySklad
 
Аскар Рахимбердиев, Кириллин Иван (МойСклад), Облачная 1С:Бухгалтерия
Аскар Рахимбердиев, Кириллин Иван (МойСклад), Облачная 1С:БухгалтерияАскар Рахимбердиев, Кириллин Иван (МойСклад), Облачная 1С:Бухгалтерия
Аскар Рахимбердиев, Кириллин Иван (МойСклад), Облачная 1С:БухгалтерияMoySklad
 
Новые правила применения кассовой техники с 2016 года
Новые правила применения кассовой техники с 2016 годаНовые правила применения кассовой техники с 2016 года
Новые правила применения кассовой техники с 2016 годаMoySklad
 
Мой Склад на СКБ Контур БПС2010
Мой Склад на СКБ Контур БПС2010Мой Склад на СКБ Контур БПС2010
Мой Склад на СКБ Контур БПС2010Petr Didenko
 
МойСклад - облачный сервис для розницы, опта и интернет-магазинов
МойСклад - облачный сервис для розницы, опта и интернет-магазиновМойСклад - облачный сервис для розницы, опта и интернет-магазинов
МойСклад - облачный сервис для розницы, опта и интернет-магазиновMoySklad
 

Viewers also liked (11)

МойСклад
МойСкладМойСклад
МойСклад
 
Оперативный учет для МСБ с помощью сервиса МойСклад
Оперативный учет для МСБ с помощью сервиса МойСкладОперативный учет для МСБ с помощью сервиса МойСклад
Оперативный учет для МСБ с помощью сервиса МойСклад
 
Работа с клиентами: от первой продажи к лояльности (МойСклад)
Работа с клиентами: от первой продажи к лояльности (МойСклад)Работа с клиентами: от первой продажи к лояльности (МойСклад)
Работа с клиентами: от первой продажи к лояльности (МойСклад)
 
Safe keeping final
Safe keeping finalSafe keeping final
Safe keeping final
 
Увеличиваем продажи через сайт. Коммуникации с клиентом и выполнение заказов ...
Увеличиваем продажи через сайт. Коммуникации с клиентом и выполнение заказов ...Увеличиваем продажи через сайт. Коммуникации с клиентом и выполнение заказов ...
Увеличиваем продажи через сайт. Коммуникации с клиентом и выполнение заказов ...
 
MoySklad HSE
MoySklad HSEMoySklad HSE
MoySklad HSE
 
Привлекай, продавай, анализируй
Привлекай, продавай, анализируйПривлекай, продавай, анализируй
Привлекай, продавай, анализируй
 
Аскар Рахимбердиев, Кириллин Иван (МойСклад), Облачная 1С:Бухгалтерия
Аскар Рахимбердиев, Кириллин Иван (МойСклад), Облачная 1С:БухгалтерияАскар Рахимбердиев, Кириллин Иван (МойСклад), Облачная 1С:Бухгалтерия
Аскар Рахимбердиев, Кириллин Иван (МойСклад), Облачная 1С:Бухгалтерия
 
Новые правила применения кассовой техники с 2016 года
Новые правила применения кассовой техники с 2016 годаНовые правила применения кассовой техники с 2016 года
Новые правила применения кассовой техники с 2016 года
 
Мой Склад на СКБ Контур БПС2010
Мой Склад на СКБ Контур БПС2010Мой Склад на СКБ Контур БПС2010
Мой Склад на СКБ Контур БПС2010
 
МойСклад - облачный сервис для розницы, опта и интернет-магазинов
МойСклад - облачный сервис для розницы, опта и интернет-магазиновМойСклад - облачный сервис для розницы, опта и интернет-магазинов
МойСклад - облачный сервис для розницы, опта и интернет-магазинов
 

Similar to МойСклад, облачный сервис ERP

кри 2014 elastic search рациональный подход к созданию собственной системы а...
кри 2014 elastic search  рациональный подход к созданию собственной системы а...кри 2014 elastic search  рациональный подход к созданию собственной системы а...
кри 2014 elastic search рациональный подход к созданию собственной системы а...Vyacheslav Nikulin
 
Говорим о СУБД языком HR
Говорим о СУБД языком HRГоворим о СУБД языком HR
Говорим о СУБД языком HRKonstantin Osipov
 
Перевод новостного приложения на БД PostgreSQL
Перевод новостного приложения на БД PostgreSQLПеревод новостного приложения на БД PostgreSQL
Перевод новостного приложения на БД PostgreSQLDmitry Kremer
 
Дмитрий Кремер, МИА «Россия сегодня» (РИА Новости). «Построение новостного we...
Дмитрий Кремер, МИА «Россия сегодня» (РИА Новости). «Построение новостного we...Дмитрий Кремер, МИА «Россия сегодня» (РИА Новости). «Построение новостного we...
Дмитрий Кремер, МИА «Россия сегодня» (РИА Новости). «Построение новостного we...Mail.ru Group
 
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...Ontico
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Ontico
 
My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016Alex Chistyakov
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеBadoo Development
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеYulia Kotova
 
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...Ontico
 
PUG #9 at OWOX: Поиск узких мест в приложении на PHP
PUG #9 at OWOX: Поиск узких мест в приложении на PHP                PUG #9 at OWOX: Поиск узких мест в приложении на PHP
PUG #9 at OWOX: Поиск узких мест в приложении на PHP Анна Магас
 
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
 PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо... PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...it-people
 
20111002 information retrieval raskovalov_lecture3
20111002 information retrieval raskovalov_lecture320111002 information retrieval raskovalov_lecture3
20111002 information retrieval raskovalov_lecture3Computer Science Club
 
PostgreSQL Moscow Meetup - September 2014 - Nikolay Samokhvalov
PostgreSQL Moscow Meetup - September 2014 - Nikolay SamokhvalovPostgreSQL Moscow Meetup - September 2014 - Nikolay Samokhvalov
PostgreSQL Moscow Meetup - September 2014 - Nikolay SamokhvalovNikolay Samokhvalov
 
Краткий обзор новинок PostgreSQL 9.4 – Николай Самохвалов
Краткий обзор новинок PostgreSQL 9.4 – Николай СамохваловКраткий обзор новинок PostgreSQL 9.4 – Николай Самохвалов
Краткий обзор новинок PostgreSQL 9.4 – Николай СамохваловYandex
 
Андрей Лузин
Андрей ЛузинАндрей Лузин
Андрей ЛузинCodeFest
 
Путь мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в GrammarlyПуть мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в GrammarlyVsevolod Polyakov
 
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
"Мы два месяца долбались, а потом построили индекс" (c) АксеновAlex Chistyakov
 
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6Nikolay Samokhvalov
 
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...Ontico
 

Similar to МойСклад, облачный сервис ERP (20)

кри 2014 elastic search рациональный подход к созданию собственной системы а...
кри 2014 elastic search  рациональный подход к созданию собственной системы а...кри 2014 elastic search  рациональный подход к созданию собственной системы а...
кри 2014 elastic search рациональный подход к созданию собственной системы а...
 
Говорим о СУБД языком HR
Говорим о СУБД языком HRГоворим о СУБД языком HR
Говорим о СУБД языком HR
 
Перевод новостного приложения на БД PostgreSQL
Перевод новостного приложения на БД PostgreSQLПеревод новостного приложения на БД PostgreSQL
Перевод новостного приложения на БД PostgreSQL
 
Дмитрий Кремер, МИА «Россия сегодня» (РИА Новости). «Построение новостного we...
Дмитрий Кремер, МИА «Россия сегодня» (РИА Новости). «Построение новостного we...Дмитрий Кремер, МИА «Россия сегодня» (РИА Новости). «Построение новостного we...
Дмитрий Кремер, МИА «Россия сегодня» (РИА Новости). «Построение новостного we...
 
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
 
My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проекте
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проекте
 
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...
 
PUG #9 at OWOX: Поиск узких мест в приложении на PHP
PUG #9 at OWOX: Поиск узких мест в приложении на PHP                PUG #9 at OWOX: Поиск узких мест в приложении на PHP
PUG #9 at OWOX: Поиск узких мест в приложении на PHP
 
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
 PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо... PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
 
20111002 information retrieval raskovalov_lecture3
20111002 information retrieval raskovalov_lecture320111002 information retrieval raskovalov_lecture3
20111002 information retrieval raskovalov_lecture3
 
PostgreSQL Moscow Meetup - September 2014 - Nikolay Samokhvalov
PostgreSQL Moscow Meetup - September 2014 - Nikolay SamokhvalovPostgreSQL Moscow Meetup - September 2014 - Nikolay Samokhvalov
PostgreSQL Moscow Meetup - September 2014 - Nikolay Samokhvalov
 
Краткий обзор новинок PostgreSQL 9.4 – Николай Самохвалов
Краткий обзор новинок PostgreSQL 9.4 – Николай СамохваловКраткий обзор новинок PostgreSQL 9.4 – Николай Самохвалов
Краткий обзор новинок PostgreSQL 9.4 – Николай Самохвалов
 
Андрей Лузин
Андрей ЛузинАндрей Лузин
Андрей Лузин
 
Путь мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в GrammarlyПуть мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в Grammarly
 
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
 
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
 
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
 

МойСклад, облачный сервис ERP

  • 1. Олег Алексеев, МойСклад, технический директор Облачное ERP-приложение с относительно тяжелыми запросами к БД
  • 2. ● 2007, май – начало разработки, выбран PostgreSQL в качестве БД, 4 программиста ● 2008, январь – зарегистрирована компания, 2 программиста ● 2008, февраль – первые клиенты ● 2008, август – аккаунтер и программист ● 2008, сентябрь – первые инвестиции от основателей Skype, помогло общее знакомство с PostgreSQL ● 2010, март – директор по развитию и маркетингу ● 2011, январь – 1С генеральный инвестор ● 2011, март – 4 программиста и тестировщик ● В настоящее время – всего 32 человека в Москве и Нижнем Новгороде История
  • 3. ● 700 Гб объем данных ● 40000000 документов всего ● 90000 новых документов в день (рост 100% в год) ● 200 HTTP-запросов в секунду (600 в пике) ● 400 SQL-запросов в секунду (1400 в пике) ● … всё это на 6 серверов БД (Intel(R) Xeon(R) CPU E5-1620 v2 @ 3.70GHz, SSD 320, 32Gb) Статистика
  • 4. ● 15 — кратность чтения к записи по времени ● 4000 — кратность чтения к записи по объему данных ● 200 Мбит/c — минимальная пропускная способность сетевого интерфейса Обмен данными
  • 5. ● 2000 одновременно работающих пользователей ● 4000 активных клиентов ● 360000 регистраций Клиенты
  • 7. ● Основное приложение ● Розничная точка ● Импорт-экспорт CSV/XLS ● Обмен с интернет-магазинами ● REST API CRUD ● REST API Report ● Tenant API Интерфейсы к внешнему миру
  • 8. Библиотека авторизации и Hazelcast Мультипликатор БД Java Java Java Java DS DS DS DS PgSQL авторизации PgSQL с бизнес данными
  • 9. ● Первое решение - партиционинг. ● С ростом нагрузки переходим к шардингу на отдельные базы (январь 2012, 67000 регистраций, 2000000 документов). ● Для повышения управляемости переходим к шардингу в отдельных схемах, сгруппированных в базы на отдельных серверах (сентябрь 2013, 180000 регистраций, 13000000 документов). Разделение данных клиентов
  • 11. ● До 24 слияний в запросе ● Все генетические анализаторы включены ● Все обычные анализаторы включены ● Таймаут запроса – 5 минут ● Увеличенные задержки на commit, bgwriter, wal_writer ● Autovacuum с минимальными задержками и стоимостью Особенности настройки
  • 12. ● ... хранения файлов в БД ● … триггеров и хранимых процедур ● … подсчета размера хранимых данных ● … синхронного коммита в кластере Использовали, но отказались от
  • 13. ● Отказ от массивных запросов со слияниями ● Сохранение агрегатов ● Подготовка данных по разрезам ● Асинхронный пересчет себестоимости ● Автоматические миграции БД Пришли к
  • 14. ● Movedb – перемещение БД и схем ● Splitdb – деление БД и схем ● Мониторинг – Nagios & pg_stats Инструменты
  • 15. ● Мастер-слейв репликация ● Архивирование логов ● Почему не получается использовать pg-pool ● Почему не Postgres-XC Обеспечение высокой доступности
  • 16. ● Tablefunc ● Управление пулами соединений в кластере ● Распределение нагрузки на slave-базы ● Мониторинг роста данных в схемах, введение метрик поведения клиентов Планы по развитию