> > > > > I don't think this will work. We cannot replace pg_twophase with shmem > > entries + WAL pointers. This is because we cannot expect to have WAL > entries > > around for long running prepared queries which survive across > checkpoints. > > But at the beginning of recovery, we can mark such entries with ondisk > and inredo, in which case the WAL pointers stored in the shmem entries > do not matter because the data is already on disk. >
Ok, we can do that and then yes, RecoverPreparedTransaction() can just have one loop going through the shmem entries. BUT, we cannot ignore "inredo"+"ondisk" entries. For such entries, we will have to read and recover from the corresponding 2PC files. Regards, Nikhils -- Nikhil Sontakke http://www.2ndQuadrant.com/ PostgreSQL/Postgres-XL Development, 24x7 Support, Training & Services