2010/12/1 Ying Tang <ivytang0...@gmail.com> > 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 ? >
Yes, majorCompaction must be called manually from 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 ? > Compaction only mark sstables as deleted. Deletion will be done when there are full gc, or node restarted. > 3. When gc be called ? Every time compaction been called? > GC has nothing to do with compaction, you may mistake the two conceptions > > > > -- > Best regards, > > Ivy Tang > > > > -- Best Regards, Chen Xinli