slightly off topic, but does anyone know off the top of their head what happens if data is being written at LOCAL_QUORUM to a multi data center setup faster than the inter data center link can handle… something has to block, throw an exception, die, or have unbounded growth (memory, threads, on disk hints etc) somewhere along the line ;-)
I haven’t found any good info on this via searching the web… I have not studied the code in detail as we have not yet set up a multi-DC cluster. (Note we’re using 2.0.5). Note we do not intend to do this in practice, but it might happen in some short bursts… obviously we can test this once we have such a setup, but any info would help us plan how to handle it, and/or throttle at either cassandra config level, or app level. On Feb 11, 2014, at 12:33 PM, Mullen, Robert <robert.mul...@pearson.com> wrote: > The picture shows a sample request, which is why the coordinator points to > two specific nodes. What I was trying to convey that the coordinator node > would ensure that 2 of the 3 nodes were written to before reporting success > to the client. > This is my point. ANY 2 of 3. Your picture shows specific 2 of 3. > > True that, I know that and I'm not debating that. I am showing a single > request sequence in that picture, and during a single request it will > actually be a specific 2 of the 3 nodes. > > > > I found the article here, it says that the non-blocking writes to the 2nd > data center are asynchronous. Is this blog post incorrect as well? > http://www.datastax.com/dev/blog/deploying-cassandra-across-multiple-data-centers > > Why is it incorrect? Everything is asynchronous, both local and remote. The > coordinator simply waits for response from local nodes. But it doesn't make > it synchronous, because it waits for response from ANY 2 nodes. > > I wasn't saying it was incorrect, I was just looking for clarification if you > thought that that blog post was misleading as well, as I've been sending > people to that page for info on multi dc replication. It it was erroneous > then I would have stopped sending them there. I was thinking that the > response was synchronous more from the client's point of view, meaning that > the app can't proceed until those specific operations were completed and a > response was returned from cassandra. > > Thanks for the help in clarifying all of this, it is very much appreciated. > Regards, > Rob > > > On Tue, Feb 11, 2014 at 11:25 AM, Andrey Ilinykh <ailin...@gmail.com> wrote: > > > > On Tue, Feb 11, 2014 at 10:14 AM, Mullen, Robert <robert.mul...@pearson.com> > wrote: > Thanks for the feedback. > > The picture shows a sample request, which is why the coordinator points to > two specific nodes. What I was trying to convey that the coordinator node > would ensure that 2 of the 3 nodes were written to before reporting success > to the client. > This is my point. ANY 2 of 3. Your picture shows specific 2 of 3. > > > > I found the article here, it says that the non-blocking writes to the 2nd > data center are asynchronous. Is this blog post incorrect as well? > http://www.datastax.com/dev/blog/deploying-cassandra-across-multiple-data-centers > > Why is it incorrect? Everything is asynchronous, both local and remote. The > coordinator simply waits for response from local nodes. But it doesn't make > it synchronous, because it waits for response from ANY 2 nodes. >
smime.p7s
Description: S/MIME cryptographic signature