Skip to content

housekeeping: Enable writing bitmap lookup tables

Patrick Steinhardt requested to merge pks-housekeeping-bitmap-lookup-table into master

In Git v2.38.0, a new lookup table extension was added to bitmaps. This extension allows Git to defer loading bitmaps to a later point in time when they're really needed. So in cases where a bitmap is not needed we get a speedup because we avoid doing word that would've been pointless anyway. This optimization is especially important in the context of large repositories, which both have more and larger bitmaps.

Enable writing of bitmaps behind a feature flag by setting the new pack.writeBitmapLookupTable config to true.

While we eagerly rewrote on-disk data structures when starting to use new features for e.g. commit-graphs. Following the same pattern for this new bitmap extension would be infeasible though because in order to write a new bitmap, we have to repack all preexisting packfiles. Doing this eagerly for all repositories during the rollout of this feature flag would generate a lot of load though as repacking packfiles is quite an expensive operation.

So instead we just accept the fact that it will take time for lookup tables to be generated for all repositories.

Closes #4734 (closed).

Edited by Patrick Steinhardt

Merge request reports

Loading