jgit/org.eclipse.jgit
Ivan Frade c9552abaf3 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
2023-02-14 11:50:29 -08:00
..
.settings Merge branch 'stable-6.4' 2023-02-01 01:23:34 +01:00
META-INF Add TernarySearchTree 2023-01-04 23:51:23 +01:00
findBugs [spotbugs] Silence NP_BOOLEAN_RETURN_NULL in IgnoreNode#checkIgnored 2020-12-22 10:52:59 +01:00
resources/org/eclipse/jgit DfsPackFile/DfsGC: Write commit graphs and expose in pack 2023-02-07 16:59:56 -05:00
src/org/eclipse/jgit PackObjectSizeIndex: interface and impl for the object-size index 2023-02-14 11:50:29 -08:00
.classpath Bump minimum required Java version to 11 2021-09-29 17:12:12 +02:00
.fbprefs
.gitignore
.project
BUILD Squash error-prone messages 2022-08-01 15:47:20 +02:00
about.html
build.properties
plugin.properties Fix bundle localization of Apache SSH bundle 2019-06-21 17:54:06 +02:00
pom.xml Prepare 6.4.1-SNAPSHOT builds 2022-11-30 15:41:41 +01:00