On Tue, Mar 22, 2016 at 6:52 AM, Andres Freund <and...@anarazel.de> wrote: > I'm actually rather unconvinced that it's all that common that all > subtransactions are on one page. If you have concurrency - otherwise > there'd be not much point in this patch - they'll usually be heavily > interleaved, no? You can argue that you don't care about subxacts, > because they're more often used in less concurrent scenarios, but if > that's the argument, it should actually be made.
But a single clog page holds a lot of transactions - I think it's ~32k. If you have 100 backends running, and each one allocates an XID in turn, and then each allocates a sub-XID in turn, and then they all commit, and then you repeat this pattern, >99% of transactions will be on a single CLOG page. And that is a pretty pathological case. It's true that if you have many short-running transactions interleaved with occasional long-running transactions, and the latter use subxacts, the optimization might fail to apply to the long-running subxacts fairly often. But who cares? Those are, by definition, a small percentage of the overall transaction stream. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers