[PATCH 0/3] Simple reftable backend
From: Han-Wen Nienhuys via GitGitGadget <hidden>
Date: 2023-09-18 17:59:46
This series comes from a conversation with Patrick Steinhardt at Gitlab, who
have an interest in a more scalable ref storage system.
I unfortunately don't have business reasons to spend much time on this
project anymore, and the original, sweeping migration has too many open
questions.
I thought of an alternate approach, and I wanted to show it as input to
discussions at the contributor summit.
I think the first part ("refs: push lock management into packed backend") is
a good improvement overall, and could be landed separately without much
tweaking.
The second part ("refs: alternate reftable ref backend implementation") is
something open for discussion: the alternative "packed storage" is based on
reftable, but it could conceivably be a different type of database/file
format too. I think it's attractive to use reftable here, because over time
more data (symrefs, reflog) could be moved into reftable.
Han-Wen Nienhuys (3):
refs: push lock management into packed backend
refs: move is_packed_transaction_needed out of packed-backend.c
refs: alternate reftable ref backend implementation
Makefile | 1 +
config.mak.uname | 2 +-
contrib/workdir/git-new-workdir | 2 +-
refs.c | 8 +
refs/debug.c | 15 +
refs/files-backend.c | 182 +++-
refs/packed-backend.c | 150 +--
refs/packed-backend.h | 19 -
refs/refs-internal.h | 6 +
refs/reftable-backend.c | 1745 +++++++++++++++++++++++++++++++
refs/reftable-backend.h | 8 +
11 files changed, 1941 insertions(+), 197 deletions(-)
create mode 100644 refs/reftable-backend.c
create mode 100644 refs/reftable-backend.h
base-commit: bda494f4043963b9ec9a1ecd4b19b7d1cd9a0518
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1574%2Fhanwen%2Fsimple-reftable-backend-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1574/hanwen/simple-reftable-backend-v1
Pull-Request: https://github.com/git/git/pull/1574
--
gitgitgadget