1. So posterior to 0.6.6/0.7 ,  minor compaction and major compaction both
can clean out rows 'tagged'  tombstones , this kind of clean out doesn't
mead remove it from the disk permanently.
    The real remove is done by the jvm GC ?
2. The intence of compaction is merging multi sstables into one , clean out
the tombstone , let the un-tombstones  rows be into a new ordered sstable ?



On Wed, Dec 1, 2010 at 7:30 PM, Sylvain Lebresne <sylv...@yakaz.com> wrote:

> On Wed, Dec 1, 2010 at 12:11 PM, Ying Tang <ivytang0...@gmail.com> wrote:
> > And i have another question , what's the difference between minor
> > compaction and major compaction?
>
> A major compaction is a compaction that compact *all* the SSTables of a
> given
> column family (compaction compacts one CF at a time).
>
> Before https://issues.apache.org/jira/browse/CASSANDRA-1074
> (introduced in 0.6.6 and
> recent 0.7 betas/rcs), major compactions where the only ones that removed
> the
> tombstones (see http://wiki.apache.org/cassandra/DistributedDeletes)
> and this is the
> reason major compaction exists. Now, with #1074, minor compactions
> should remove most
> if not all tombstones, so major compaction are not or much less useful
> (it may depend on your
> workload though as minor can't always delete the tombstones).
>
> --
> Sylvain
>
> >
> > 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
> >
>



-- 
Best regards,

Ivy Tang

Reply via email to