Melkij, У клиента требования от ФСБ и кроме Ростелекома они отказываются кого-то рассматривать.
По затратам на разработку самый простой. Переписывания кода не требуется.
В администрировании в принципе тоже не проблема поднять реплики. балансировщика 1 раз настроил и забыл (если получим какой-то эффект от подобной схемы работы).
Melkij, спасибо за ответ. Почти все этапы описание Вами у нас стоят в плане. Метрики собираем в данный момент для анализа.
Но инфраструктурой занимается сам клиент, поэтому хотим обкатать самый простой вариант масштабирования системы.
В данный момент он работает на своём железе 64 ядер на sql сервере. База около 1.7 ТБ. Планирует уход в «облака» (выбор пал на Ростелеком, т.к. пдн важные хранятся). А Ростелеком по словам клиента максимум даст машины 16 ядер. Процентов 80 запросов это чтение по количеству. По трафику 95%+ чтение.
Сервер 64 ядра загружен процентов 20-30 большую часть времени.
По поводу вьюшек и т.п. у нас проблем нет. Главная проблема это наследие хранимых процедур (порядка 1700 в данный момент) рефакторить их не планируем, будет серьезная переделка сервера приложений с попутным удалением почти всех хранимок. Поэтому повышение времени записи скорее всего скажется не значительно, а размазывание чтения может помочь пройти в ограничения Ростелекома.
Спасибо большое за ответ.
remote_apply помог при решении проблемы. Я по неопытности думал что после сохранения на жесткий диск все транзакции уже применены (до этого они лежат в оперативной памяти)
Хочу попробовать поднять 1 мастер и две синхронные репликации. Балансировать нагрузку на мастер + 2 реплики на чтение, но т.к. в программе могут идти запись и затем сразу чтение данных реплики к моменту чтения обязательно должны быть синхронны с мастером, иначе возможны ошибки при запросах.
Вопрос немного не по теме. Можете посоветовать хороший балансировщик, который можно дополнительно настроить скриптами правила маршрутизации запроса? В нашем проекте используются в данный момент очень много хранимых процедур, отказаться от которых мы сейчас не можем. Поэтому в правила необходимо указать что вызов хранимой процедуры всегда отправлять в мастер, т.к. там часто бывают процедуры с изменением данных.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
По затратам на разработку самый простой. Переписывания кода не требуется.
В администрировании в принципе тоже не проблема поднять реплики. балансировщика 1 раз настроил и забыл (если получим какой-то эффект от подобной схемы работы).