[go: up one dir, main page]

Skip to content

Move housekeeping logic out from TransactionManager into git/housekeeping package

Housekeeping logic with transactions is currently implemented in TransactionManager. The logic is only invoked in the git/housekeeping/manager package. The housekeeping logic is quite involved and pushes complexity into the TransactionManager that is not needed there. TransactionManager should be focused on transaction management so concurrency control, recover and related topics.

The housekeeping logic could be implemented in the housekeeping manager, and it could ultimately just record the file changes to be done in the transaction. This way the housekeeping logic is contained in the housekeeping package, and the transaction logic can just focus on whether the file changes being performed may conflict with each other.

This may be easier to do after Generalize transaction conflict checking (#5892 - closed) so I'll mark it as a dependency.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information