diff options
author | Martin Fick <mfick@nvidia.com> | 2024-12-04 09:33:00 -0800 |
---|---|---|
committer | Matthias Sohn <matthias.sohn@sap.com> | 2024-12-19 21:59:48 +0100 |
commit | 1177e1e4a9b6fa52f4e40fe961263cd510114f81 (patch) | |
tree | 972a7f66797dfc08f739e371f16c6b48ff6e3897 /org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/pom.xml | |
parent | 105a313eadf1ff2e74dd6642079f3cce9c1f7983 (diff) | |
download | jgit-1177e1e4a9b6fa52f4e40fe961263cd510114f81.tar.gz jgit-1177e1e4a9b6fa52f4e40fe961263cd510114f81.zip |
WindowCache: share removal work among multiple threads
Split the removal process into blocks so that it can be shared by
multiple threads. This potential work sharing can provide 2
optimizations for removals:
1) It provides an opportunity for separate removal requests to be
consolidated into one removal pass.
2) It can reduce removing thread latencies by sharing the removal work
with other removing threads which otherwise might not have any work
to do due to their removal request being consolidated. This makes
the system more efficient and can actually reduce latencies as system
load increases due to pack removals!
The optimizations above are all achieved without blockng threads to wait
for other threads to complete (although naturally there are some
synchronization points), and while ensuring that no threads do more work
than if they were the only thread available to perform a removal.
Change-Id: Ic6809a8abf056299abde0f0c58c77aaf245a8df5
Signed-off-by: Martin Fick <mfick@nvidia.com>
Diffstat (limited to 'org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/pom.xml')
0 files changed, 0 insertions, 0 deletions