diff options
| author | John Naylor | 2024-04-07 05:27:34 +0000 |
|---|---|---|
| committer | John Naylor | 2024-04-08 07:39:49 +0000 |
| commit | 8a1b31e6e59631807a08a4e9465134c343bbdf5e (patch) | |
| tree | 72f147d6442438d8ce033c981a90a7b9c43a904c /src/include/access | |
| parent | bb766cde63b4f624d029b34c9cdd3d0a94fd5b46 (diff) | |
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
Diffstat (limited to 'src/include/access')
| -rw-r--r-- | src/include/access/tidstore.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/include/access/tidstore.h b/src/include/access/tidstore.h index f05d7487837..32aa9995193 100644 --- a/src/include/access/tidstore.h +++ b/src/include/access/tidstore.h @@ -29,7 +29,7 @@ typedef struct TidStoreIterResult OffsetNumber *offsets; } TidStoreIterResult; -extern TidStore *TidStoreCreateLocal(size_t max_bytes); +extern TidStore *TidStoreCreateLocal(size_t max_bytes, bool insert_only); extern TidStore *TidStoreCreateShared(size_t max_bytes, int tranche_id); extern TidStore *TidStoreAttach(dsa_handle area_handle, dsa_pointer handle); extern void TidStoreDetach(TidStore *ts); |
