Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
Normal
Description
After issuing a drain command, it's possible that not all of the inactive commitlogs are removed.
The drain command shuts down the CommitLog instance, which in turn shuts down the CommitLogSegmentManager. This has the effect of discarding any pending management tasks it might have, like the removal of inactive commitlogs.
This in turn leads to an excessive amount of commitlogs being left behind after a drain and a lengthy recovery after a restart. With a fleet of dozens of nodes, each of them leaving several GB of commitlogs after a drain and taking up to two minutes to recover them on restart, the additional time required to restart the entire fleet becomes noticeable.
This problem is not present in 3.x or trunk because of the CLSM rewrite done in CASSANDRA-8844.