]> 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)
commit0bc00363b9b1d5ee44a0b25ed2dfc83f81e68258
tree20977a410e59551a8efa3eb338779479339715e2
parent0cfc67bf4f39770e89c0b99f0bb99effdfc80b60
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