You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Anuj Wadehra <an...@yahoo.co.in> on 2016/02/08 19:14:10 UTC

Scenarios which need Repair

Hi,

Setup:
--------
We are on 2.0.14. We have some deployments with just one DC(RF:3) while others with two DCs (RF:3,RF:3).
We ALWAYS use LOCAL_QUORUM for both Reads and Writes. 

Scenario:
---------
We used to run nodetool repair on all tables every gc_grace_seconds. Recently, we decided to identify tables which really need repair and only run repair on those tables.

We have identified basically two kinds of tables which don't need repair:
TYPE-1 Tables which have only inserts, no upserts and delete by TTL.
TYPE-2 Tables with a counter column. I don't have much experience with counters but I can explain the use case.
We use a counter column to keep check on our traffic rate.Values are usually updated numerous times in a minute and we need not be ACCURATE with the value-few values here and there are OK.

Questions:
--------------
Can we COMPLETELY avoid maintenance repair on TYPE-1 and TYPE-2 tables? If yes, will there be any side effect of not repairing such data often in case of dropped mutations, failure scenarios etc.?
What will be the scenarios when repair would be needed on such tables?
   
  
Thanks
Anuj   
   
    

Re: Scenarios which need Repair

Posted by Carlos Alonso <in...@mrcalonso.com>.
Hi Anuj.

I don't think this decision depends on you scenario, but on your write
consistency level instead.

Maintenance repair is an anti-entropy operation intended to make all nodes
consistent.

Think of the situation where, with one DC, one of your nodes is down (or
being replaced) for a while (longer than hints timeout), as you're using
LOCAL_QUORUM, writes will succeed and when that node is back it'll NEVER
get that record.

Increasing that consistency level to ALL would change the scenario a little
bit, as your write will actually fail, as will all writes to any token
replicated in the down node (probably not what you want).

Let's now think of the multi DC deployment. If connection between DCs is
lost, reads and writes will succeed, but data won't be replicated across
them and you won't even notice.

I think maintenance repair is something required wherever there are
writes/updates.

Regards

Carlos Alonso | Software Engineer | @calonso <https://twitter.com/calonso>

On 9 February 2016 at 11:10, Anuj Wadehra <an...@yahoo.co.in> wrote:

> Hi,
>
> Can someone take this?
>
>
> Thanks
> Anuj
>
>
>
> On Mon, 8 Feb, 2016 at 11:44 pm, Anuj Wadehra
> <an...@yahoo.co.in> wrote:
> Hi,
>
> Setup:
> --------
> We are on 2.0.14. We have some deployments with just one DC(RF:3) while
> others with two DCs (RF:3,RF:3).
> We ALWAYS use LOCAL_QUORUM for both Reads and Writes.
>
> Scenario:
> ---------
> We used to run nodetool repair on all tables every gc_grace_seconds.
> Recently, we decided to identify tables which really need repair and only
> run repair on those tables.
>
> We have identified basically two kinds of tables which don't need repair:
> TYPE-1 Tables which have only inserts, no upserts and delete by TTL.
> TYPE-2 Tables with a counter column. I don't have much experience with
> counters but I can explain the use case.
> We use a counter column to keep check on our traffic rate.Values are
> usually updated numerous times in a minute and we need not be ACCURATE with
> the value-few values here and there are OK.
>
> Questions:
> --------------
> Can we COMPLETELY avoid maintenance repair on TYPE-1 and TYPE-2 tables? If
> yes, will there be any side effect of not repairing such data often in case
> of dropped mutations, failure scenarios etc.?
> What will be the scenarios when repair would be needed on such tables?
>
>
> Thanks
> Anuj
>
>
>
>

Re: Scenarios which need Repair

Posted by Anuj Wadehra <an...@yahoo.co.in>.
Hi,
Can someone take this?

ThanksAnuj


 
 
  On Mon, 8 Feb, 2016 at 11:44 pm, Anuj Wadehra<an...@yahoo.co.in> wrote:   Hi,

Setup:
--------
We are on 2.0.14. We have some deployments with just one DC(RF:3) while others with two DCs (RF:3,RF:3).
We ALWAYS use LOCAL_QUORUM for both Reads and Writes. 

Scenario:
---------
We used to run nodetool repair on all tables every gc_grace_seconds. Recently, we decided to identify tables which really need repair and only run repair on those tables.

We have identified basically two kinds of tables which don't need repair:
TYPE-1 Tables which have only inserts, no upserts and delete by TTL.
TYPE-2 Tables with a counter column. I don't have much experience with counters but I can explain the use case.
We use a counter column to keep check on our traffic rate.Values are usually updated numerous times in a minute and we need not be ACCURATE with the value-few values here and there are OK.

Questions:
--------------
Can we COMPLETELY avoid maintenance repair on TYPE-1 and TYPE-2 tables? If yes, will there be any side effect of not repairing such data often in case of dropped mutations, failure scenarios etc.?
What will be the scenarios when repair would be needed on such tables?
   
  
Thanks
Anuj