git/Documentation
Patrick Steinhardt bc39b6a796 refs/reftable: introduce "reftable.lockTimeout"
When multiple concurrent processes try to update references in a
repository they may try to lock the same lockfiles. This can happen even
when the updates are non-conflicting and can both be applied, so it
doesn't always make sense to abort the transaction immediately. Both the
"loose" and "packed" backends thus have a grace period that they wait
for the lock to be released that can be controlled via the config values
"core.filesRefLockTimeout" and "core.packedRefsTimeout", respectively.

The reftable backend doesn't have such a setting yet and instead fails
immediately when it sees such a lock. But the exact same concepts apply
here as they do apply to the other backends.

Introduce a new "reftable.lockTimeout" config that controls how long we
may wait for a "tables.list" lock to be released. The default value of
this config is 100ms, which is the same default as we have it for the
"loose" backend.

Note that even though we also lock individual tables, this config really
only applies to the "tables.list" file. This is because individual
tables are only ever locked when we already hold the "tables.list" lock
during compaction. When we observe such a lock we in fact do not want to
compact the table at all because it is already in the process of being
compacted by a concurrent process. So applying the same timeout here
would not make any sense and only delay progress.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-09-24 09:45:25 -07:00
..
RelNotes The eighteenth batch 2024-09-18 18:02:06 -07:00
config refs/reftable: introduce "reftable.lockTimeout" 2024-09-24 09:45:25 -07:00
howto Merge branch 'jc/how-to-maintain-updates' into maint-2.46 2024-09-12 11:02:17 -07:00
includes
mergetools
technical Merge branch 'ps/clar-unit-test' 2024-09-18 18:02:05 -07:00
.gitattributes
.gitignore Doc: fix Asciidoctor css workaround 2024-07-23 11:02:52 -07:00
BreakingChanges.txt Documentation/BreakingChanges: announce removal of git-pack-redundant(1) 2024-09-03 11:05:22 -07:00
CodingGuidelines Merge branch 'jc/coding-style-c-operator-with-spaces' into maint-2.46 2024-09-13 15:26:51 -07:00
DecisionMaking.txt doc: describe the project's decision-making process 2024-05-17 13:53:04 -07:00
Makefile Merge branch 'es/doc-platform-support-policy' 2024-08-15 13:22:13 -07:00
MyFirstContribution.txt MyFirstContribution: mention contrib/contacts/git-contacts 2024-04-18 14:55:09 -07:00
MyFirstObjectWalk.txt MyFirstObjectWalk: add stderr to pipe processing 2024-03-27 09:24:35 -07:00
ReviewingGuidelines.txt ReviewingGuidelines: encourage positive reviews more 2024-07-25 08:50:09 -07:00
SubmittingPatches Merge branch 'jt/doc-submitting-rerolled-series' into maint-2.45 2024-05-31 15:28:21 -07:00
ToolsForGit.txt
asciidoc.conf
asciidoctor-extensions.rb
blame-options.txt
build-docdep.perl
cat-texi.perl
cmd-list.perl
config.txt Merge branch 'tb/pseudo-merge-reachability-bitmap' 2024-06-24 16:39:13 -07:00
date-formats.txt Documentation: fix typos describing date format 2024-04-12 09:03:03 -07:00
diff-format.txt
diff-generate-patch.txt
diff-options.txt Merge branch 'jc/doc-diff-name-only' into maint-2.45 2024-06-28 15:53:14 -07:00
doc-diff
docbook-xsl.css
docbook.xsl
docinfo-html.in Doc: fix Asciidoctor css workaround 2024-07-23 11:02:52 -07:00
everyday.txto
fetch-options.txt doc: remote.*.skip{DefaultUpdate,FetchAll} stops prefetch 2024-09-09 10:06:13 -07:00
fix-texi.perl
fsck-msgids.txt fsck: add ref name check for files backend 2024-08-08 09:36:53 -07:00
git-add.txt add-patch: introduce 'p' in interactive-patch 2024-03-28 22:40:08 -07:00
git-am.txt Merge branch 'jk/am-retry' 2024-06-17 15:55:56 -07:00
git-annotate.txt
git-apply.txt apply: support --ours, --theirs, and --union for three-way merges 2024-09-09 10:07:24 -07:00
git-archimport.txt
git-archive.txt archive: document that --add-virtual-file takes full path 2024-06-26 12:56:45 -07:00
git-bisect-lk2009.txt
git-bisect.txt
git-blame.txt
git-branch.txt
git-bugreport.txt bugreport.c: fix a crash in `git bugreport` with `--no-suffix` option 2024-03-16 09:31:42 -07:00
git-bundle.txt
git-cat-file.txt docs: explain the order of output in the batched mode of git-cat-file(1) 2024-08-22 14:59:22 -07:00
git-check-attr.txt
git-check-ignore.txt
git-check-mailmap.txt check-mailmap: add options for additional mailmap sources 2024-08-27 14:51:29 -07:00
git-check-ref-format.txt
git-checkout-index.txt
git-checkout.txt
git-cherry-pick.txt cherry-pick: add `--empty` for more robust redundant commit handling 2024-03-25 16:45:41 -07:00
git-cherry.txt
git-citool.txt
git-clean.txt
git-clone.txt doc: git-clone fix discrepancy between asciidoc and asciidoctor 2024-07-20 16:24:12 -07:00
git-column.txt
git-commit-graph.txt
git-commit-tree.txt
git-commit.txt doc: remove dangling closing parenthesis 2024-07-22 17:32:36 -07:00
git-config.txt Merge branch 'jc/config-doc-update' into maint-2.46 2024-09-13 15:26:52 -07:00
git-count-objects.txt
git-credential-cache--daemon.txt
git-credential-cache.txt
git-credential-store.txt
git-credential.txt credential: add method for querying capabilities 2024-04-16 22:39:08 -07:00
git-cvsexportcommit.txt
git-cvsimport.txt
git-cvsserver.txt
git-daemon.txt
git-describe.txt
git-diagnose.txt
git-diff-files.txt
git-diff-index.txt
git-diff-tree.txt Merge branch 'jc/grammo-fixes' into maint-2.46 2024-09-12 11:02:19 -07:00
git-diff.txt
git-difftool.txt
git-fast-export.txt
git-fast-import.txt Merge branch 'xx/rfc2822-date-format-in-doc' 2024-04-23 11:52:40 -07:00
git-fetch-pack.txt
git-fetch.txt
git-filter-branch.txt
git-fmt-merge-msg.txt
git-for-each-ref.txt for-each-ref: add 'is-base' token 2024-08-14 10:10:06 -07:00
git-for-each-repo.txt for-each-repo: optionally keep going on an error 2024-04-24 10:46:03 -07:00
git-format-patch.txt Merge branch 'jc/format-patch-more-aggressive-range-diff' 2024-05-28 11:17:10 -07:00
git-fsck-objects.txt
git-fsck.txt
git-fsmonitor--daemon.txt
git-gc.txt builtin/gc: add a `--detach` flag 2024-08-16 09:46:25 -07:00
git-get-tar-commit-id.txt
git-grep.txt grep docs: describe --no-index further and improve formatting a bit 2024-03-25 14:00:03 -07:00
git-gui.txt SubmittingPatches: welcome the new maintainer of git-gui part 2024-05-11 14:31:30 -07:00
git-hash-object.txt
git-help.txt
git-hook.txt
git-http-backend.txt
git-http-fetch.txt
git-http-push.txt
git-imap-send.txt
git-index-pack.txt
git-init-db.txt
git-init.txt doc: git-init: apply new documentation formatting guidelines 2024-03-29 10:57:40 -07:00
git-instaweb.txt
git-interpret-trailers.txt doc: fix some placeholders formating 2024-03-16 10:04:53 -07:00
git-log.txt
git-ls-files.txt doc: fix hex code escapes in git-ls-files 2024-07-26 10:53:21 -07:00
git-ls-remote.txt ls-remote: introduce --branches and deprecate --heads 2024-06-04 15:07:08 -07:00
git-ls-tree.txt
git-mailinfo.txt
git-mailsplit.txt
git-maintenance.txt doc: remote.*.skip{DefaultUpdate,FetchAll} stops prefetch 2024-09-09 10:06:13 -07:00
git-merge-base.txt
git-merge-file.txt
git-merge-index.txt
git-merge-one-file.txt
git-merge-tree.txt Documentation/git-merge-tree.txt: document -X 2024-05-07 15:36:08 -07:00
git-merge.txt
git-mergetool--lib.txt
git-mergetool.txt
git-mktag.txt
git-mktree.txt
git-multi-pack-index.txt midx: implement support for writing incremental MIDX chains 2024-08-06 12:01:39 -07:00
git-mv.txt
git-name-rev.txt
git-notes.txt
git-p4.txt
git-pack-objects.txt
git-pack-redundant.txt
git-pack-refs.txt builtin/pack-refs: introduce new "--auto" flag 2024-03-25 09:54:07 -07:00
git-patch-id.txt
git-prune-packed.txt
git-prune.txt
git-pull.txt doc: format alternatives in synopsis 2024-03-16 10:04:45 -07:00
git-push.txt
git-quiltimport.txt
git-range-diff.txt
git-read-tree.txt
git-rebase.txt Merge branch 'jc/doc-rebase-fuzz-vs-offset-fix' into maint-2.46 2024-08-16 12:50:55 -07:00
git-receive-pack.txt
git-reflog.txt
git-refs.txt builtin/refs: add verify subcommand 2024-08-08 09:36:53 -07:00
git-remote-ext.txt
git-remote-fd.txt
git-remote-helpers.txto
git-remote.txt
git-repack.txt
git-replace.txt
git-replay.txt Documentation: fix linkgit reference 2024-04-15 11:02:43 -07:00
git-request-pull.txt
git-rerere.txt
git-reset.txt
git-restore.txt
git-rev-list.txt
git-rev-parse.txt Merge branch 'jc/rev-parse-fatal-doc' into maint-2.45 2024-06-28 15:53:14 -07:00
git-revert.txt
git-rm.txt
git-send-email.txt send-email: teach git send-email option to translate aliases 2024-08-17 10:03:06 -07:00
git-send-pack.txt
git-sh-i18n--envsubst.txt
git-sh-i18n.txt
git-sh-setup.txt
git-shell.txt
git-shortlog.txt
git-show-branch.txt Merge branch 'ri/doc-show-branch-fix' 2024-07-15 10:11:43 -07:00
git-show-index.txt
git-show-ref.txt show-ref: introduce --branches and deprecate --heads 2024-06-04 15:07:08 -07:00
git-show.txt
git-sparse-checkout.txt
git-stage.txt
git-stash.txt
git-status.txt Merge branch 'jc/show-untracked-false' 2024-03-28 14:13:50 -07:00
git-stripspace.txt
git-submodule.txt builtin/submodule: allow "add" to use different ref storage format 2024-08-08 09:22:21 -07:00
git-svn.txt git-svn: mention `svn:global-ignores` in help+docs 2024-08-14 15:10:24 -07:00
git-switch.txt
git-symbolic-ref.txt
git-tag.txt builtin/tag: add --trailer option 2024-05-07 10:06:03 -07:00
git-tools.txt
git-unpack-file.txt
git-unpack-objects.txt
git-update-index.txt documentation: git-update-index: add --show-index-version to synopsis 2024-05-13 16:57:17 -07:00
git-update-ref.txt update-ref: add support for 'symref-update' command 2024-06-07 10:25:45 -07:00
git-update-server-info.txt
git-upload-archive.txt
git-upload-pack.txt Sync with 2.42.2 2024-04-19 12:38:50 +02:00
git-var.txt
git-verify-commit.txt
git-verify-pack.txt
git-verify-tag.txt
git-version.txt
git-web--browse.txt
git-whatchanged.txt
git-worktree.txt
git-write-tree.txt
git.txt advice: recommend GIT_ADVICE=0 for tools 2024-09-06 14:15:16 -07:00
gitattributes.txt Merge branch 'ss/doc-eol-attr-fix' 2024-07-08 14:53:08 -07:00
gitcli.txt
gitcore-tutorial.txt
gitcredentials.txt
gitcvs-migration.txt
gitdiffcore.txt
giteveryday.txt
gitfaq.txt gitfaq: add entry about syncing working trees 2024-07-09 21:24:42 -07:00
gitformat-bundle.txt
gitformat-chunk.txt
gitformat-commit-graph.txt gitformat-commit-graph: describe version 2 of BDAT 2024-06-25 13:52:05 -07:00
gitformat-index.txt
gitformat-pack.txt
gitformat-signature.txt
gitglossary.txt
githooks.txt Merge branch 'jt/doc-post-receive-hook-update' into maint-2.46 2024-08-16 12:50:53 -07:00
gitignore.txt
gitk.txt
gitmailmap.txt
gitmodules.txt
gitnamespaces.txt
gitpacking.txt Documentation/gitpacking: make sample configs listing blocks 2024-07-17 08:48:30 -07:00
gitprotocol-capabilities.txt
gitprotocol-common.txt
gitprotocol-http.txt
gitprotocol-pack.txt
gitprotocol-v2.txt
gitremote-helpers.txt Merge branch 'jk/remote-helper-object-format-option-fix' 2024-04-03 10:56:18 -07:00
gitrepository-layout.txt
gitrevisions.txt
gitsubmodules.txt
gittutorial-2.txt
gittutorial.txt Merge branch 'jc/grammo-fixes' into maint-2.46 2024-09-12 11:02:19 -07:00
gitweb.conf.txt
gitweb.txt
gitworkflows.txt
glossary-content.txt Merge branch 'ps/pseudo-ref-terminology' 2024-07-18 08:30:26 -07:00
howto-index.sh
i18n.txt
install-doc-quick.sh
install-webdoc.sh
line-range-format.txt
line-range-options.txt
lint-fsck-msgids.perl
lint-gitlink.perl
lint-man-end-blurb.perl
lint-man-section-order.perl
lint-manpages.sh Documentation/lint-manpages: bubble up errors 2024-06-06 08:20:51 -07:00
manpage-bold-literal.xsl
manpage-normal.xsl
manpage.xsl
merge-options.txt
merge-strategies.txt
object-format-disclaimer.txt
pretty-formats.txt Merge branch 'bl/doc-key-val-sep-fix' 2024-03-25 16:16:35 -07:00
pretty-options.txt
pull-fetch-param.txt
ref-reachability-filters.txt
ref-storage-format.txt
rerere-options.txt
rev-list-description.txt
rev-list-options.txt Merge branch 'ja/doc-formatting-fix' 2024-03-25 16:16:34 -07:00
revisions.txt
scalar.txt scalar: add --no-tags option to 'scalar clone' 2024-09-06 14:13:48 -07:00
sequencer.txt
signoff-option.txt
texi.xsl
trace2-target-values.txt
transfer-data-leaks.txt
urls-remotes.txt
urls.txt doc: git-clone: apply new documentation formatting guidelines 2024-03-29 10:57:40 -07:00
user-manual.conf
user-manual.txt