If you don't release a ServerCommit because you don't want it to be compacted. If you don't keep a reference to the commit it is eventually GCed, why does that make the Commit log dirty?
https://github.com/atomix/copycat/blob/master/server/src/main/java/io/atomix/copycat/server/state/ServerCommitPool.java#L73