Skip to content

Revision cache / git-daemon caching plan

Sam Vilain git 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest7 patches 6 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/7revision-cache: define revision cache as simple list of revisionsDocumentation/technical/revision-cache.txt+260 -03 replies
2/7rev-cache: add on-disk format for fast reachability lookupDocumentation/technical/revision-cache.txt+20 -40 replies
3/7rev-cache: add 'end' objects for caching 'uninteresting' lookupsDocumentation/technical/revision-cache.txt+65 -200 replies
4/7rev-cache: allow multiple 'start' objects per indexDocumentation/technical/revision-cache.txt+73 -330 replies
5/7revision cache: maps of 'new' objectsDocumentation/technical/revision-cache.txt+23 -10 replies
6/7revision cache: allow foreign 'start' commitsDocumentation/technical/revision-cache.txt+4 -00 replies
7/7revision cache: be even stricter with sort orderDocumentation/technical/revision-cache.txt+54 -250 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/7] [GSoC2009] Revision cache / git-daemon caching plan

This patch series describes the structure of the object list cache on-disk format. It is built successively from a very simple design - just an object list - to a version that allows for as many rev-list operations to be accelerated as possible, and potentially immediate startup of full clone operations in the common case; ie skipping the "Counting Objects" and "Compressing Objects" phase once a matching index is found.

The plan will be to implement each step incrementally, with a test-*.c file along the way which tests the API provided by the revision cache API. While the revision cache format will change along the way, this will not require an index format deprecation cycle, as integration with the rest of git will not happen until the format is settled.

The plan is to aim for one of these API milestones completed per week. When complete, each commit will contain tests for the level of cache that it delivers. Later milestones include joining the dots - integrating with the 'rev-list' machinery and most importantly, 'pack-objects'.

Errata: the 'object list' and 'contents hash' will probably be re-worked to keep a separate SHA-1 and topological index list, to re-use existing fan-out code. This will be incorporated into the next version.

Sam Vilain (7):
revision-cache: define revision cache as simple list of revisions
rev-cache: add on-disk format for fast reachability lookup
rev-cache: add 'end' objects for caching 'uninteresting' lookups
rev-cache: allow multiple 'start' objects per index revision cache: maps of 'new' objects
revision cache: allow foreign 'start' commits
revision cache: be even stricter with sort order

 Documentation/technical/revision-cache.txt |  416 ++++++++++++++++++++++++++++
 1 files changed, 416 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/technical/revision-cache.txt