Ion
12/08/2025, 11:59 AMAriel Shaqed (Scolnicov)
12/08/2025, 12:08 PMgraveler.branch_ownership.enabled to true (of course as with any config option you could use LAKEFS_GRAVELER_...). This is an experimental feature - but it is safe in the sense that it cannot give incorrect results.
If you use it, please do let us know of your experiences - maybe one day it will stop being experimental.Ariel Shaqed (Scolnicov)
12/08/2025, 12:09 PMIon
12/08/2025, 12:10 PMAriel Shaqed (Scolnicov)
12/08/2025, 12:12 PMIon
12/08/2025, 12:12 PMgraveler:
branch_ownership:
enabled: trueAriel Shaqed (Scolnicov)
12/08/2025, 12:12 PMIon
12/08/2025, 12:13 PMAriel Shaqed (Scolnicov)
12/08/2025, 12:18 PMIon
12/08/2025, 12:19 PMAriel Shaqed (Scolnicov)
12/08/2025, 12:25 PMAlright, so we don't need to retry anymore but just await for a lock releaseYeah pretty much. The speedup happens because the lakeFS servers no longer waste iops on creating commits which will fail. The fact that there are many fewer retries is because there are many fewer conflicts - it's not the goal.
Ion
12/08/2025, 12:25 PMIon
12/08/2025, 12:26 PMAriel Shaqed (Scolnicov)
12/08/2025, 3:06 PMAriel Shaqed (Scolnicov)
12/08/2025, 3:10 PMbecause without that we have double overhead, delta-rs object-store retries and lakefs internal retriesIdeally code will not retry all errors indiscriminately. I believe that it is never correct to retry 409 Conflict; certainly not in this instance. (For a simpler example, take a 404 Not Found response. If it's an error for the application, there's no point retrying it. Of course if the application wants to poll it to wait for the object, that's just a status not an error.)
Ion
12/08/2025, 3:12 PMAriel Shaqed (Scolnicov)
12/08/2025, 8:25 PM