Future-proofed syncing of refs
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Mar 10, 2022, 09:53 UTC
- Message-ID
- <cover.1646905589.git.ps@pks.im>
- In-Reply-To
- <pull.1093.v5.git.1646866998.gitgitgadget@gmail.com>
Hi,
these three patches apply on top of Neeraj's v5 of his "A design for future-proofing fsync() configuration". I'm sending this as a reply to his v5 to keep the discussion in one place -- I think ultimately, we may want to merge both series into a single one anyway. But please shout at me if this is considered bad style and I'll split it out into a separate thread.
In any case, these three patches implement fsyncing for loose and packed references using the proposed `core.fsync` option, with three additional knobs:
- "loose-ref" will fsync loose references.
- "packed-refs" will fsync packed references.
- "refs" will fsync all references, which should ideally also
include all new backends like the reftable backend.I think this extension demonstrates that the design proposed by Neeraj is quite easy to extend without too much boilerplate.
Patrick
Patrick Steinhardt (3): core.fsync: add `fsync_component()` wrapper which doesn't die core.fsync: new option to harden loose references core.fsync: new option to harden packed references
Documentation/config/core.txt | 3 +++ cache.h | 22 ++++++++++++++++++---- config.c | 3 +++ refs/files-backend.c | 29 +++++++++++++++++++++++++++++ refs/packed-backend.c | 3 ++- write-or-die.c | 10 ++++++---- 6 files changed, 61 insertions(+), 9 deletions(-)
-- 2.35.1