And i have another question , what's the difference between minor compaction and major compaction?
On 12/1/10, Chen Xinli <chen.d...@gmail.com> wrote: > 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 > -- Best regards, Ivy Tang