Transactionize FetchIntoObjectPool manually
A follow-up of #5733 (closed)
After the WAL transaction was added to the transaction manager, we have a problem with FetchIntoObjectPool
.
FetchIntoObjectPool
RPC fetches new objects from the origin repository into the object pool. Afterward, it triggers a full set of housekeeping tasks. In some prior commits, we enabled WAL transaction support in the housekeeping manager. The manager initiates the WAL transaction and commits it after done. So, it means FetchIntoObjectPool results in two non-nested transactions. While this practice is not prohibited by WAL, the result differs from the origin intention. So, we need to handle transactionizaion manually in this RPC.
Eventually with #5709, we don't need to run follow-up housekeeping tasks. Any writing into the repository should already trigger a check on whether housekeeping is needed. However, that's for the next iteration.