On Sun, Apr 18, 2010 at 11:14, dir dir <sikerasa...@gmail.com> wrote:
> Hi Gary,
>
>>The main reason is that the compaction operation (removing deleted
>>values) currently requires that an entire row be read into memory.
>
> Thank you for your explanation. But I still do not understand what do you
> mean.
>

When you delete a column in cassandra, the data is not really deleted.
 Instead a flag is turned on indicating the column is no longer valid
(we call it a 'tombstone').  During compaction the column family is
scanned and the tombstones are truly deleted.

> in my opinion, Actually the row contents must fit in available memory.
> if row contents are not fit in available memory, our software will raise
> exception out of memory. since it is true( "the row contents must fit in
> available memory"),
> then why you said that is a problem which it (Cassandra) cannot solved??
>

It was not correct of me to say it is a problem that cassandra cannot
solve.  Memory-efficient compactions will be addressed.

> You say: "compaction operation requires that entire row be read into memory"
> whether this is a problem of "out of memory"??  When we need to perform
> compaction operation?? In what situation we shall perform compaction
> operation??

You will need to address the large rows yourself (consider breaking
them up).  You can identify these rows during compaction by setting
RowWarningThresholdInMB in storage-conf.xml.  When a big enough row
comes along, it is logged so you can go back later and address the
problem.

Regards,

Gary.

> Thank You.
>
> Dir.
>

Reply via email to