Is it really difficult for postgres_fdw to implement READ COMMITTED isolation?

Started by Jinhua Luoover 7 years ago2 messages
#1Jinhua Luo
luajit.io@gmail.com

https://www.postgresql.org/docs/current/static/postgres-fdw.html#id-1.11.7.43.12

As the doc said, the REPEATABLE READ isolation level is used to get
snapshot-consistent results.

But is it possible that postgres_fdw could get to know which remote
queries involved by each top outer command in the local transaction,
and use the same snapshot in the remote server to execute them
sequentially? For example, could we use PREPARE TRANSACTION and SET
TRANSACTION SNAPSHOT to archive this goal? Then we could use READ
COMMITTED on both sides?

#2Ashutosh Bapat
ashutosh.bapat.oss@gmail.com
In reply to: Jinhua Luo (#1)
Re: Is it really difficult for postgres_fdw to implement READ COMMITTED isolation?

On Tue, Sep 18, 2018 at 8:28 PM Jinhua Luo <luajit.io@gmail.com> wrote:

https://www.postgresql.org/docs/current/static/postgres-fdw.html#id-1.11.7.43.12

As the doc said, the REPEATABLE READ isolation level is used to get
snapshot-consistent results.

But is it possible that postgres_fdw could get to know which remote
queries involved by each top outer command in the local transaction,
and use the same snapshot in the remote server to execute them
sequentially? For example, could we use PREPARE TRANSACTION and SET
TRANSACTION SNAPSHOT to archive this goal? Then we could use READ
COMMITTED on both sides?

I guess the problem is 1. exporting snapshots is not cheap 2. tracking
prepared transactions is not implemented. See a nearby thread on
"transaction involving multiple foreign server".

--
Best Wishes,
Ashutosh Bapat