2010/6/30 Tom Lane <tgl@sss.pgh.pa.us>:
> Robert Haas <robertmhaas@gmail.com> writes:
>> You need to make sure not only that you replay commit records in
>> order, but also that, for example, you don't replay an
>> XLOG_HEAP2_CLEAN record too early.
>
> Hm, good point. That probably means that you *do* need fencepost
> records, and furthermore that you might need an interlock to ensure that
> you get the fencepost in early enough on the other stream. Ugh ---
> there goes your concurrency.
>
> What about having a single WAL stream for all commit records (thereby
> avoiding any possible xact-serialization funnies) and other WAL records
> divided up among multiple streams in some fashion or other? A commit
> record would bear minimum-LSN pointers for all the streams that its
> transaction had written to. Things like HEAP_CLEAN records would bear
> minimum-LSN pointers for the commit stream. Workable?
I don't see why not. Of course, the performance of any of these ideas
is another question altogether...
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company