Discuss: Allow admins to opt in to object pools
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Object pools is a Gitaly-side optimization for forks of public projects whereby many repositories can share a pool of Git objects allowing for object deduplication. The main value add of this feature is space savings.
However, there are some challenges with this architecture.
- It doesn't work well with Praefect
- t's impossible to remove a blob once it lands in a shared pool of objects (There have been several cases where a customer wanted to remove a blob but it was in an object pool.)
- It is an architectural limitation for Cells (repositories that share an object pool must share the same storage)
In fact, redesigning object pools has been in discussion for a while due to these architectural challenges.
Taking a step back, this feature is only useful for instances that host a large repository that gets forked many, many times. This is often the case with large open source projects. However, for most self managed customers and Dedicated customers, this will not be the common use case.
That means the feature is not a value add for the majority of admins, while introducing complexity and limiting certain features (eg: blob removal).
Any solution to redesign object pools however, would be a significant undertaking.
As a stopgap solution, a possible approach is to allow admins to turn object pools on and off through a setting, with the default being off.