> > 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