Currently the background thread will use AutoGetCollectionForReadCommand, which will throw if the operation is interrupted for any reason. This can happen if the server starts its shutdown sequence, in which case all operations are interrupted, including the background thread.
Specifically, we should use the UninterruptibleLockGuard class to prevent exceptions from being thrown.
We should probably also move away from that particular db_raii helper, since it will have some side-effects like increasing the Top stats, etc.