Truncate flushes memtables for all CFs causing timeouts

2012-03-06 Thread Viktor Jevdokimov
Hello,

Truncate uses RPC timeout, which is in my case set to 10 seconds (I want
even less) and it's not enough. I've seen in sources TODO for this case.

What I found is that truncate starting flush for all memtables for all CFs,
not only for a CF to be truncated. When there're a lot of CFs to be
flushed, it takes time.

Is it possible to flush only required CF for truncate, not all? This could
improve truncate time.


Best regards,
Viktor


Re: Truncate flushes memtables for all CFs causing timeouts

2012-03-06 Thread aaron morton
 Truncate uses RPC timeout, which is in my case set to 10 seconds (I want even 
 less) and it's not enough. I've seen in sources TODO for this case.
created 
https://issues.apache.org/jira/browse/CASSANDRA-4006

 Is it possible to flush only required CF for truncate, not all? This could 
 improve truncate time.
see code comments here 
https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java#L1681

AFAIK truncate is not considered a regular operation. (All nodes must be online 
for example)

Cheers


-
Aaron Morton
Freelance Developer
@aaronmorton
http://www.thelastpickle.com

On 7/03/2012, at 1:34 AM, Viktor Jevdokimov wrote:

 Hello,
 
 Truncate uses RPC timeout, which is in my case set to 10 seconds (I want even 
 less) and it's not enough. I've seen in sources TODO for this case.
 
 What I found is that truncate starting flush for all memtables for all CFs, 
 not only for a CF to be truncated. When there're a lot of CFs to be flushed, 
 it takes time.
 
 Is it possible to flush only required CF for truncate, not all? This could 
 improve truncate time.
 
 
 Best regards,
 Viktor
 
 



Re: Truncate flushes memtables for all CFs causing timeouts

2012-03-06 Thread Viktor Jevdokimov
Thank you. To sum up, to free up and discard a commit log - flush all. So
higher timeout for truncate will/should work.

2012/3/6 aaron morton aa...@thelastpickle.com

 Truncate uses RPC timeout, which is in my case set to 10 seconds (I want
 even less) and it's not enough. I've seen in sources TODO for this case.

 created
 https://issues.apache.org/jira/browse/CASSANDRA-4006

 Is it possible to flush only required CF for truncate, not all? This could
 improve truncate time.

 see code comments here
 https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java#L1681

 AFAIK truncate is not considered a regular operation. (All nodes must be
 online for example)

 Cheers


 -
 Aaron Morton
 Freelance Developer
 @aaronmorton
 http://www.thelastpickle.com

 On 7/03/2012, at 1:34 AM, Viktor Jevdokimov wrote:

 Hello,

 Truncate uses RPC timeout, which is in my case set to 10 seconds (I want
 even less) and it's not enough. I've seen in sources TODO for this case.

 What I found is that truncate starting flush for all memtables for all
 CFs, not only for a CF to be truncated. When there're a lot of CFs to be
 flushed, it takes time.

 Is it possible to flush only required CF for truncate, not all? This could
 improve truncate time.


 Best regards,
 Viktor