Thanks for the reply.

Regarding your points:

Confirm the secondary is truly idle to minimize page contention.

We don’t send any queries to secondaries for this collection, so this is no additional reads as far as I know. The only activity is replication.

Monitor disk I/O and check if disk space changes after compaction completes.

I’m not sure how long it’s going to take to get there - it has been running for 24 hours so far. Based on disk utilization graphs, it looks like there have only been 2 noticable drops, and the amount of space reclaimed is only a small percent of what I’d believe is available.

If progress stalls for extended periods, consider using resync from a primary to fully rebuild the secondary’s data files.

We’ll consider that… unfortunately it sounds a bit heavy handed, I was really hoping compact would avoid the need for something like this.


Assuming the compaction process continues to stall, is it fine to stop it via db.killOp() ?