]> granicus.if.org Git - postgresql/commit
Rework MultiXactId cache code
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 13 Dec 2013 20:16:25 +0000 (17:16 -0300)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 13 Dec 2013 20:16:25 +0000 (17:16 -0300)
commitd881dd6233f4eec6404f003bb08312e9e650e0e2
tree8a7eb63b967ebb1153c14b330d37b30b6aed2d7b
parent2efc6dc256dc71ee876304b51dcad29fafbc37d3
Rework MultiXactId cache code

The original performs too poorly; in some scenarios it shows way too
high while profiling.  Try to make it a bit smarter to avoid excessive
cosst.  In particular, make it have a maximum size, and have entries be
sorted in LRU order; once the max size is reached, evict the oldest
entry to avoid it from growing too large.

Per complaint from Andres Freund in connection with new tuple freezing
code.
src/backend/access/transam/multixact.c