Skip to content

Implement functionality to automatically configure repositories with transaction's quarantine

Sami Hiltunen requested to merge smh-transation-repository into master

Transactions are currently setting up the quarantine directory only when the QuarantineDirectory() method is called to get the quarantine directory. This method would have been called to set up and get the quarantine directory before doing any object writes. This would result in fairly heavy integration work to wire this everywhere. Instead, we'll provide a method for rewriting the repository from the request to point to the quarantine directory. This can then later be done in an interceptor for example to handle quarantining generically for all RPCs.

To facilitate this, this MR lays out the groundwork for doing that by setting up the quarantine directory always and implementing the functionality to rewrite a repository to point to the correct quarantine.

Read-only transactions were not previously setting up the quarantine directory. This change makes them do some unnecessary work for now but we'll later amend this by differentiating read-only transactions from read-write transactions through #5423 (closed). Once that's done, the read-only transactions will not unnecessarily set up quarantine anymore.

Merge request reports