You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Utku Can Topçu <ut...@topcu.gen.tr> on 2010/10/27 12:08:40 UTC

Time to wait for CF to be consistent after stopping writes.

Hi,

For a columnfamily in a keyspace which has RF=3, I'm issuing writes with
ConsistencyLevel.ONE.

in the configuration I have:
- memtable_flush_after_mins : 30
- memtable_throughput_in_mb : 32

I'm writing to this columnfamily continuously for about 1 hour then stop
writing.

So the question is:

How long should I wait after stopping writes to that particular CF so that
all writes take place and data contained in the CF will be consistent.
Which metrics should I be checking to ensure that the CF is now consistent?

And additionally if I was using ConsistencyLevel.QUORUM or
ConsistencyLevel.ALL would it make a difference?
Would reducing the RF=3 to RF=1 would it make my life on this decision
easier?

Regards,

Utku

Re: Time to wait for CF to be consistent after stopping writes.

Posted by aaron morton <aa...@thelastpickle.com>.
Memtable Data Size is the number of bytes you Column Family is taking up. 

Have you read the section on "Repairing missing or inconsistent data" here http://wiki.apache.org/cassandra/Operations . It describes the nodetool repair operation used to repair inconsistent data. 

Aaron

On 28 Oct 2010, at 22:35, Utku Can Topçu wrote:

> Gary, Thank you for your comments.
> 
> I also have another question in mind: 
> - If in all nodes "nodetool cfstats" shows that the memtable size is 0. Then can I be sure that it's safe to assume that all values are consistent?
> 
> Regards,
> Utku
> 
> On Wed, Oct 27, 2010 at 3:24 PM, Gary Dusbabek <gd...@gmail.com> wrote:
> On Wed, Oct 27, 2010 at 05:08, Utku Can Topçu <ut...@topcu.gen.tr> wrote:
> > Hi,
> >
> > For a columnfamily in a keyspace which has RF=3, I'm issuing writes with
> > ConsistencyLevel.ONE.
> >
> > in the configuration I have:
> > - memtable_flush_after_mins : 30
> > - memtable_throughput_in_mb : 32
> >
> > I'm writing to this columnfamily continuously for about 1 hour then stop
> > writing.
> >
> > So the question is:
> >
> > How long should I wait after stopping writes to that particular CF so that
> > all writes take place and data contained in the CF will be consistent.
> 
> There is no way to determine this precisely.  Depending on your nodes
> and network it could be as short as a few milliseconds or much longer.
> 
> > Which metrics should I be checking to ensure that the CF is now consistent?
> 
> Execute a read using ConsistencyLevel.ALL.  If the value is not yet
> consistent, read repair will ensure that it soon will be.  Another
> approach is to write using ConsistencyLevel.ALL, although that would
> decrease your write throughput.
> 
> >
> > And additionally if I was using ConsistencyLevel.QUORUM or
> > ConsistencyLevel.ALL would it make a difference?
> 
> Precisely.
> 
> > Would reducing the RF=3 to RF=1 would it make my life on this decision
> > easier?
> 
> It would make determining consistency better, but RF=1 isn't going to
> be very fault tolerant.
> 
> Gary.
> 


Re: Time to wait for CF to be consistent after stopping writes.

Posted by Utku Can Topçu <ut...@topcu.gen.tr>.
Gary, Thank you for your comments.

I also have another question in mind:
- If in all nodes "nodetool cfstats" shows that the memtable size is 0. Then
can I be sure that it's safe to assume that all values are consistent?

Regards,
Utku

On Wed, Oct 27, 2010 at 3:24 PM, Gary Dusbabek <gd...@gmail.com> wrote:

> On Wed, Oct 27, 2010 at 05:08, Utku Can Topçu <ut...@topcu.gen.tr> wrote:
> > Hi,
> >
> > For a columnfamily in a keyspace which has RF=3, I'm issuing writes with
> > ConsistencyLevel.ONE.
> >
> > in the configuration I have:
> > - memtable_flush_after_mins : 30
> > - memtable_throughput_in_mb : 32
> >
> > I'm writing to this columnfamily continuously for about 1 hour then stop
> > writing.
> >
> > So the question is:
> >
> > How long should I wait after stopping writes to that particular CF so
> that
> > all writes take place and data contained in the CF will be consistent.
>
> There is no way to determine this precisely.  Depending on your nodes
> and network it could be as short as a few milliseconds or much longer.
>
> > Which metrics should I be checking to ensure that the CF is now
> consistent?
>
> Execute a read using ConsistencyLevel.ALL.  If the value is not yet
> consistent, read repair will ensure that it soon will be.  Another
> approach is to write using ConsistencyLevel.ALL, although that would
> decrease your write throughput.
>
> >
> > And additionally if I was using ConsistencyLevel.QUORUM or
> > ConsistencyLevel.ALL would it make a difference?
>
> Precisely.
>
> > Would reducing the RF=3 to RF=1 would it make my life on this decision
> > easier?
>
> It would make determining consistency better, but RF=1 isn't going to
> be very fault tolerant.
>
> Gary.
>

Re: Time to wait for CF to be consistent after stopping writes.

Posted by Gary Dusbabek <gd...@gmail.com>.
On Wed, Oct 27, 2010 at 05:08, Utku Can Topçu <ut...@topcu.gen.tr> wrote:
> Hi,
>
> For a columnfamily in a keyspace which has RF=3, I'm issuing writes with
> ConsistencyLevel.ONE.
>
> in the configuration I have:
> - memtable_flush_after_mins : 30
> - memtable_throughput_in_mb : 32
>
> I'm writing to this columnfamily continuously for about 1 hour then stop
> writing.
>
> So the question is:
>
> How long should I wait after stopping writes to that particular CF so that
> all writes take place and data contained in the CF will be consistent.

There is no way to determine this precisely.  Depending on your nodes
and network it could be as short as a few milliseconds or much longer.

> Which metrics should I be checking to ensure that the CF is now consistent?

Execute a read using ConsistencyLevel.ALL.  If the value is not yet
consistent, read repair will ensure that it soon will be.  Another
approach is to write using ConsistencyLevel.ALL, although that would
decrease your write throughput.

>
> And additionally if I was using ConsistencyLevel.QUORUM or
> ConsistencyLevel.ALL would it make a difference?

Precisely.

> Would reducing the RF=3 to RF=1 would it make my life on this decision
> easier?

It would make determining consistency better, but RF=1 isn't going to
be very fault tolerant.

Gary.