During compacting, rename the current DB file to a .old file is not allowed on Windows.
A possible workaround for this could be:
1. Close current DB file (.couch);
2. Send db_updated to update to use .compact;
3. After 5sec, delete the .couch file; ---- This is done in a linked process, after that, this process send a message to update_loop;
4. After received the message in update_loop, close current DB file which is a .compact file, then rename it to .couch;
5. Finally, db_updated again to use this new .couch file.
Maybe, there would be a "pause" in service?