John Vines noticed that minc finish events are not synced to the walog. I was looking into this issue to see if it was a problem and I noticed a possible issue w/ this. If the following sequence of events occurs, its possible that duplicate recovery may occur.
- Tablet T1 writes File F1 to metadata table after minor compaction
- T1 write minc finish event to walog (no sync is done and info not in walog)
- T1 adds F1 to set of files in tablets memory
- T1 major compacts F1 into F2
- Tablet server serving T1 fails (and nothing synced walog)
- T1 recovers data in F1 because there is no finish event or file in metadata table
Step 2 must sync before step 3, because step 3 makes the file eligible for major compaction. Its seems like the sync could be done using group commit for efficiency.