summaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorIvan Frade <ifrade@google.com>2021-12-14 16:36:54 -0800
committerIvan Frade <ifrade@google.com>2023-02-14 11:50:29 -0800
commitc9552abaf3286f5b277d64f78c46020fe3978aa3 (patch)
tree272d4facf548e8bec1e84c9c18670cb5ecc4867d /Documentation
parent62d0e7be7c2a3c72e50dd9474ea72dfd7ec586b9 (diff)
downloadjgit-c9552abaf3286f5b277d64f78c46020fe3978aa3.tar.gz
jgit-c9552abaf3286f5b277d64f78c46020fe3978aa3.zip
PackObjectSizeIndex: interface and impl for the object-size index
Operations like "clone --filter=blob:limit=N" or the "object-info" command need to read the size of the objects from the storage. An index would provide those sizes at once rather than having to seek in the packfile. Introduce an interface for the Object-size index. This index returns the inflated size of an object. Not all objects could be indexed (to limit memory usage). This implementation indexes only blobs (no trees, nor commits) *above* certain size threshold (configurable). Lower threshold adds more objects to the index, consumes more memory and provides better performance. 0 means "all blobs" and -1 "disabled". If we don't index everything, for the filter use case is more efficient to index the biggest objects first: the set is small and most objects are filtered by NOT being in the index. For the object-size, the more objects in the index the better, regardless their size. All together, it is more helpful to index above threshold. Change-Id: I9ed608ac240677e199b90ca40d420bcad9231489
Diffstat (limited to 'Documentation')
0 files changed, 0 insertions, 0 deletions