[17147] PostgreSQL с репликацией

Прошу реализовать поддержку postgresql с репликацией, когда есть один master-сервер и несколько реплик (например cnpg). Мастер доступен на чтение/запись, а реплики - только чтение. (Реплики могут немного отставать от мастера.)

В ЛЭРС думаю можно перевести часть запросов на чтение данных с реплик (например запросы от интерфейса и API, отчеты). Это снизит нагрузку на master-сервер.

В npgsql это называется preferStandby - ссылка.

Сейчас в ЛЭРС отсутствует поддержка такой функции.

Очень поддерживаю!

Мы проанализировали возможность поддержки репликаций. В целом задача нетривиальна и потребует внутренних переработок. Но в целом реализация возможна в несколько этапов.

Для начала уточните, какие запросы вы бы хотели перенести на реплики? Мы предлагаем следующий список:

  • таблица данных;
  • отчёты;
  • документы объекта;
  • контент мнемосхем;
  • сеансы опроса;
  • журналы опроса;
  • очередь опроса";
  • НС

Основные списки объектов и точек мы бы не хотели переносить на реплики, т.к. тогда данные на них могут начать отставать от актуальных. Так же мы бы не переводили на реплики запросы параметров форм свойств, т.к. это так же может привести к получению устаревших данных для редактирования.

Да, данный список - это данные, которые мы используем в API-запросах.

Вы можете попробовать работу с ReadOnly репликами БД после установки 3.67. Настройка очень простая. В compose.yml вам потребуется задать две строки подключения - к основной master базе данных и к реплике, доступной только для чтения.

Строка подключения к master задаётся в переменной среды LERS_SERVER_ConnectionStrings__Default. Строка подключения к реплике задаётся в LERS_SERVER_ConnectionStrings__ReadOnly. Если сейчас у вас строка подключения задана в другом параметре, лучше его поменять на LERS_SERVER_ConnectionStrings__Default.

В основном, реплики будет использоваться для доступа к отчётам и документам объектов. Однако, в процессе работы над системой мы, возможно, найдём и переведём на реплику и другие модули системы, которые не требуют моментального доступа к самым свежим данным.

Пожалуйста, попробуйте настроить и скажите нам результат. Даже фраза типа “Настроили - работает” будет очень полезной.