Every time cassandra creates a new sstable , it will call the CompactionManager.submitMinorIfNeeded ? And if the number of memtables is beyond MinimumCompactionThreshold , the minor compaction will be called. And there is also a method named CompactionManager.submitMajor , and the call relationship is :
NodeCmd -- > NodeProbe -->StorageService.forceTableCompaction --> Table.forceCompaction -->CompactionManager.performMajor --> CompactionManager.submitMajor ColumnFamilyStore.forceMajorCompaction --> CompactionManager.performMajor --> CompactionManager.submitMajor HintedHandOffManager --> CompactionManager.submitMajor So i have 3 questions: 1. Once a new sstable has been created , CompactionManager.submitMinorIfNeeded will be called , minorCompaction maybe called . But when will the majorCompaction be called ? Just the NodeCmd ? 2. Which jobs will minorCompaction and majorCompaction do ? Will minorCompaction delete the data that have been marked as deleted ? And how about the major compaction ? 3. When gc be called ? Every time compaction been called? -- Best regards, Ivy Tang