cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chen Xinli <chen.d...@gmail.com>
Subject Re: When to call the major compaction ?
Date Wed, 01 Dec 2010 09:49:12 GMT
2010/12/1 Ying Tang <ivytang0812@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

Mime
View raw message