Thanks for your responses, Ben thanks for the link.

Basically you sort of confirmed that if down_time > max_hint_window_in_ms
the only way to bring DC1 up-to-date is anti-entropy repair. Read
consistency level is irrelevant to the problem I described as I am reading
LOCAL_QUORUM. In this situation I lost whatever data -if any- had not been
transfered across to DC2 before DC1 went down, that is understandable.
Also, read repair does not help either as we assumed that down_time >
max_hint_window_in_ms. Please correct me if I am wrong.

I think I could better understand how that works if I knew the answers to
the following questions:
1. What is the output of nodetool status when a cluster spans across 2 DCs?
Will I be able to see ALL nodes irrespective of the DC they belong to?
2. How tokens are being assigned when adding a 2nd DC? Is the range -2^64
to 2^63 for each DC, or it is  -2^64 to 2^63 for the entire cluster? (I
think the latter is correct)
3. Does the coordinator store 1 hint irrespective of how many replicas
happen to be down at the time and also irrespective of DC2 being down in
the scenario I described above? (I think the answer is according to the
presentation you sent me, but I would like someone to confirm that)

Thank you in advance,

Vasilis


On Fri, May 30, 2014 at 3:13 AM, Ben Bromhead <b...@instaclustr.com> wrote:

> Short answer:
>
> If time elapsed > max_hint_window_in_ms then hints will stop being
> created. You will need to rely on your read consistency level, read repair
> and anti-entropy repair operations to restore consistency.
>
> Long answer:
>
> http://www.slideshare.net/jasedbrown/understanding-antientropy-in-cassandra
>
> Ben Bromhead
> Instaclustr | www.instaclustr.com | @instaclustr
> <http://twitter.com/instaclustr> | +61 415 936 359
>
> On 30 May 2014, at 8:40 am, Tupshin Harper <tups...@tupshin.com> wrote:
>
> When one node or DC is down, coordinator nodes being written through will
> notice this fact and store hints (hinted handoff is the mechanism),  and
> those hints are used to send the data that was not able to be replicated
> initially.
>
> http://www.datastax.com/dev/blog/modern-hinted-handoff
>
> -Tupshin
> On May 29, 2014 6:22 PM, "Vasileios Vlachos" <vasileiosvlac...@gmail.com>
> wrote:
>
>  Hello All,
>
> We have plans to add a second DC to our live Cassandra environment.
> Currently RF=3 and we read and write at QUORUM. After adding DC2 we are
> going to be reading and writing at LOCAL_QUORUM.
>
> If my understanding is correct, when a client sends a write request, if
> the consistency level is satisfied on DC1 (that is RF/2+1), success is
> returned to the client and DC2 will eventually get the data as well. The
> assumption behind this is that the the client always connects to DC1 for
> reads and writes and given that there is a site-to-site VPN between DC1 and
> DC2. Therefore, DC1 will almost always return success before DC2 (actually
> I don't know if it is possible for DC2 to be more up-to-date than DC1 with
> this setup...).
>
> Now imagine DC1 looses connectivity and the client fails over to DC2.
> Everything should work fine after that, with the only difference that DC2
> will be now handling the requests directly from the client. After some
> time, say after max_hint_window_in_ms, DC1 comes back up. My question is
> how do I bring DC1 up to speed with DC2 which is now more up-to-date? Will
> that require a nodetool repair on DC1 nodes? Also, what is the answer
> when the outage is < max_hint_window_in_ms instead?
>
> Thanks in advance!
>
> Vasilis
>
> --
> Kind Regards,
>
> Vasileios Vlachos
>
>
>

Reply via email to