примерный объём товаров и доставок В случае rFBS прогнозы делать сложнее, здесь возможен кратный рост товаров и доставок за короткий промежуток (что и произошло) Слабым местом оказалась БД, и нам в срочном порядке пришлось думать, как держать такую нагрузку
пишут данные в одну базу данных, а изменения автоматически синхронизируются на другие базы Репликация используется для достижения двух целей : Повышение отказоустойчивости Если один из серверов выйдет из строя, то остальные продолжат работу Повышение производительности Распределение данных по серверам в разных частях страны или мира повышает скорость доступа к данным для местных пользователей
технология • Низкое потребление ресурсов, так как никакой логики при репликации нет, изменения выполняются в том же порядке, что и на мастере • Простота конфигурации, настроил и забыл, простое побайтовое копирование через WAL Плюсы
технология • Низкое потребление ресурсов, так как никакой логики при репликации нет, изменения выполняются в том же порядке, что и на мастере • Простота конфигурации, настроил и забыл, простое побайтовое копирование через WAL Плюсы
технология • Низкое потребление ресурсов, так как никакой логики при репликации нет, изменения выполняются в том же порядке, что и на мастере • Простота конфигурации, настроил и забыл, простое побайтовое копирование через WAL Плюсы
технология • Низкое потребление ресурсов, так как никакой логики при репликации нет, изменения выполняются в том же порядке, что и на мастере • Простота конфигурации, настроил и забыл, простое побайтовое копирование через WAL Плюсы
и слейв могут иметь разные представления данных на диске, разные архитектуры процессора, разные структуры таблиц (при условии совместимости схем), разные конфигурации и расположение файлов данных • Частичная репликация, можно реплицировать только необходимые данные Плюсы
и слейв могут иметь разные представления данных на диске, разные архитектуры процессора, разные структуры таблиц (при условии совместимости схем), разные конфигурации и расположение файлов данных • Частичная репликация, можно реплицировать только необходимые данные Плюсы
и слейв могут иметь разные представления данных на диске, разные архитектуры процессора, разные структуры таблиц (при условии совместимости схем), разные конфигурации и расположение файлов данных • Частичная репликация, можно реплицировать только необходимые данные Плюсы
информации необходимо писать в транзакционный лог • Только DML • Нельзя менять объекты (схему, название) • Работает только с версии PostgreSQL 10+ Минусы
информации необходимо писать в транзакционный лог • Только DML • Нельзя менять объекты (схему, название) • Работает только с версии PostgreSQL 10+ Минусы
информации необходимо писать в транзакционный лог • Только DML • Нельзя менять объекты (схему, название) • Работает только с версии PostgreSQL 10+ Минусы
информации необходимо писать в транзакционный лог • Только DML • Нельзя менять объекты (схему, название) • Работает только с версии PostgreSQL 10+ Минусы
каждый insert/update перестраиваем индексы, чем больше таблица, тем дороже перестройка индекса • Если много удаляем/апдейтим записи в базе, то vacuum может быть проблемой, update=delete+insert • Селекты делать только по индексам, чем больше индексов, тем больнее каждый insert/update Проблемы больших таблиц
каждый insert/update перестраиваем индексы, чем больше таблица, тем дороже перестройка индекса • Если много удаляем/апдейтим записи в базе, то vacuum может быть проблемой, update=delete+insert • Селекты делать только по индексам, чем больше индексов, тем больнее каждый insert/update Проблемы больших таблиц
каждый insert/update перестраиваем индексы, чем больше таблица, тем дороже перестройка индекса • Если много удаляем/апдейтим записи в базе, то vacuum может быть проблемой, update=delete+insert • Селекты делать только по индексам, чем больше индексов, тем больнее каждый insert/update Проблемы больших таблиц
из вариантов, как избежать проблем больших таблиц — это партиционировать их на несколько более мелких Таким образом индексы будут намного меньше, и все наши проблемы больших таблиц будут в N раз меньше
внимательно относиться к количеству партиций, идеально не больше 100-200 • Не нагружать БД проверками, которые можем сделать на клиентах • Не использовать встроенные системы автовычисления партиций на БД • Не использовать триггеры для автоматического создания партиций
внимательно относиться к количеству партиций, идеально не больше 100-200 • Не нагружать БД проверками, которые можем сделать на клиентах • Не использовать встроенные системы автовычисления партиций на БД • Не использовать триггеры для автоматического создания партиций
внимательно относиться к количеству партиций, идеально не больше 100-200 • Не нагружать БД проверками, которые можем сделать на клиентах • Не использовать встроенные системы автовычисления партиций на БД • Не использовать триггеры для автоматического создания партиций
внимательно относиться к количеству партиций, идеально не больше 100-200 • Не нагружать БД проверками, которые можем сделать на клиентах • Не использовать встроенные системы автовычисления партиций на БД • Не использовать триггеры для автоматического создания партиций
вы можете полностью разделить данные между физическими серверами. То есть вам не нужны: • Multi shard join • Распределенные транзакции • Автоматический решардинг
1 сервера у вас становится много точек отказа • Нужно заранее продумать логику будущего решардинга, даже если сейчас вам кажется, что шардов вам хватит • Нужно оборачивать запросы в доп логику, высчитывать нужный шард, держать множество коннектов Проблемы, которые возникают после шардирования
1 сервера у вас становится много точек отказа • Нужно заранее продумать логику будущего решардинга, даже если сейчас вам кажется, что шардов вам хватит • Нужно оборачивать запросы в доп логику, высчитывать нужный шард, держать множество коннектов Проблемы, которые возникают после шардирования
1 сервера у вас становится много точек отказа • Нужно заранее продумать логику будущего решардинга, даже если сейчас вам кажется, что шардов вам хватит • Нужно оборачивать запросы в доп логику, высчитывать нужный шард, держать множество коннектов Проблемы, которые возникают после шардирования