Thread: pgsql: Use bump context for TID bitmaps stored by vacuum
Use bump context for TID bitmaps stored by vacuum Vacuum does not pfree individual entries, and only frees the entire storage space when finished with it. This allows using a bump context, eliminating the chunk header in each leaf allocation. Most leaf allocations will be 16 to 32 bytes, so that's a significant savings. TidStoreCreateLocal gets a boolean parameter to indicate that the created store is insert-only. This requires a separate tree context for iteration, since we free the iteration state after iteration completes. Discussion: https://postgr.es/m/CANWCAZac%3DpBePg3rhX8nXkUuaLoiAJJLtmnCfZsPEAS4EtJ%3Dkg%40mail.gmail.com Discussion: https://postgr.es/m/CANWCAZZQFfxvzO8yZHFWtQV+Z2gAMv1ku16Vu7KWmb5kZQyd1w@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/8a1b31e6e59631807a08a4e9465134c343bbdf5e Modified Files -------------- src/backend/access/common/tidstore.c | 15 +++++++++++++-- src/backend/access/heap/vacuumlazy.c | 4 ++-- src/include/access/tidstore.h | 2 +- src/include/lib/radixtree.h | 11 ++++++++++- src/test/modules/test_tidstore/test_tidstore.c | 3 ++- 5 files changed, 28 insertions(+), 7 deletions(-)