>It's an interesting idea. >While it’s impossible to predict exactly how much WAL we’ll need to backtrack >through -- >I assume it mainly depends on the duration of long-running transactions -- >this approach >seems to offer an opportunity using pg_rewind without enabling wal_log_hints.
Hi Neil, thanks and I think it's meaningful. >Given the potential large gap between transaction IDs (especially when >long-running transactions are involved), >maintaining a list/bitmap struct would be worthwhile. Yes I intend todo that but bitmapset can not use in src/bin and it seem no necessary to implement one. And attention that min and max is what commited after diverge record, so it nomally small gap. So it's the reason I give up. >A minor suggestion, for an operation that may fail, I suggest retrieving the >first XLOG_RUNNING_XACTS record to obtain its base_xid >before doing the deep-dig process. If the task cannot be completed (i.e., the >base_xid <= min_commited_xid condition isn’t met), >we can throw an error immediately instead of waiting for all WAL records to be >parsed. Mainly we can not get the first wal segment, because if no enough wal it will fetch wal segment by restore_command. Your suggestion is meanful only if no restore_command. Anyway let's see hacker's opnions. ---- Best Regards, Movead Li
