как реализовать автономные транзакции? Т.е., чтобы вставка в таблицу (да и не только она) шла в отдельной сессии асинхронно. Как это сейчас делают? Читал, что dblink к себе - медленно, и вроде есть решения через модули pg_variables, pg_background. Надеюсь посоветуете правильный вариант (а если с примером, то вообще отлично).
А результат этого асинхронного вас интересует? Я вот обнаружил что мои девелоперы под асинхронно подразумевают "в отдельной транзакции"
Постоянный dblink в рамках сессии вполне быстр, если вы можете себе позволить в два раза больше сессий
Асинхронность не обязательна, главное автономность конечно, согласен.
А как такое реализовать? Мне казалось, что dblink поднимается каждый раз на запрос? И для этого и использовал кто-то из конференции PGconf разширение pg_variables.
dblink_connect/dblink_exec https://www.postgresql.org/docs/14/dblink.html
У нас получилось порядка 20% penalty по сравнению с транзакциями в той же сессии.
А может Вам postgres_fdw понравиться?
FDW мне в другом месте нравится. Тут его транзакционная модель не подходит. https://postgrespro.ru/docs/postgrespro/9.5/postgres-fdw#idp141268
Обсуждают сегодня