Hi, this patch series aims to improve performance when iterating over many refs with the reftable backend. It mostly does so by trying to reduce the number of allocations and avoiding useless copying of memory where possible. I've been careful to avoid conflicts with any in-flight topics, so it should be fine for all of the topics to go in indepentently of each other. The benchmarks have all been done with ps/reftable-backend at 066dced0b1 (ci: add jobs to test with the reftable backend, 2024-01-30). Patrick Patrick Steinhardt (7): reftable/record: introduce function to compare records by key reftable/merged: allocation-less dropping of shadowed records reftable/merged: skip comparison for records of the same subiter reftable/pq: allocation-less comparison of entry keys reftable/block: swap buffers instead of copying reftable/record: don't try to reallocate ref record name reftable/reader: add comments to `table_iter_next()` reftable/block.c | 3 +-- reftable/merged.c | 19 +++++++------- reftable/merged.h | 2 -- reftable/pq.c | 13 +-------- reftable/reader.c | 26 +++++++++++------- reftable/record.c | 67 ++++++++++++++++++++++++++++++++++++++++++++--- reftable/record.h | 7 +++++ 7 files changed, 100 insertions(+), 37 deletions(-) -- 2.43.GIT
Attachment:
signature.asc
Description: PGP signature