Как слоты логической репликации работают с плагинами логического декодера в Postgres 9.6? - PullRequest
0 голосов
/ 04 апреля 2019

Я хотел бы узнать больше о том, как слоты логической репликации PG работают в сочетании с плагинами логического декодирования.Когда слот сделан с использованием определенного выходного плагина, скажем, WAL2JSON, что произойдет, если слот не будет транслироваться / потребляться?Отслеживаются ли просто смещения и другая информация о WAL, а затем происходит декодирование, только когда начинается потоковая передача, или плагин декодера фактически декодирует все время и создает некоторый буфер?

Я пытаюсь отследить проблему, которую яЯ использую официальную библиотеку java PG (org.postgresql), но мне нужно знать больше о том, как все это работает в PG.Проблема, которую я вижу, заключается в том, что иногда, когда я выполняю блокирующее чтение, для получения изменений требуется много времени (иногда минуты задержки), а последующие считываемые изменения все более и более задерживаются.Единственное, что может помочь, - это перезапустить поток с последнего LSN, который был сброшен, но я не уверен, почему это работает.Вызывает ли процесс запуска потока создание буфера, а затем последующие вызовы read или readPending потребляют из этого буфера?Вызывает ли вызов read только следующую вещь в очереди / буфере или это какая-то логика, которая происходит в PG / плагине логического декодера?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...