> For a second, I thought this thread was saying I could see value(s) < new > value(s) within the same process on the second read at quorum
That's exactly what I'm saying. Within a single process I see this behavior, when reading with consistency_level=QUORUM Read value 1 Read value 2 Read value 1 # uh oh! we've gone backwards On Apr 17, 2011, at 12:15 PM, William Oberman wrote: > Cool, that is exactly what I was thinking/expecting, and I feel better about > the assumptions I've used in my refactor to move from MySQL -> cassandra. > > I basically gave up on trying to force my code to assume (even at quorum): > -read value(s) for key from cassandra > -update/add/delete columns for key in memory based on value(s) > -write new value(s) for key to cassandra > That the next read for key in the same process would be equal to the new > value(s). But I do assume I read value(s) >= the new value(s). Of course, in > another process, I don't assume anything (e.g. my application is ok reading > the same state A in two processes and updating the state to either B or C. I > figured that's the best a distributed algorithm could do without a "test and > set" operation). > > For a second, I thought this thread was saying I could see value(s) < new > value(s) within the same process on the second read at quorum, which would > have been bad for me. But this thread is not saying that, so I'm still happy > with cassandra :-) > > will > > On Sun, Apr 17, 2011 at 11:24 AM, Milind Parikh <milindpar...@gmail.com> > wrote: > William > The issue is regarding whether you will see A or B; with any guarantee of > either. The discussion implies no; until the QW is complete. > > /*********************** > sent from my android...please pardon occasional typos as I respond @ the > speed of thought > ************************/ > > >> On Apr 17, 2011 7:48 AM, "William Oberman" <ober...@civicscience.com> wrote: >> >> I'm pretty new to all of this, and I'm in the process of building my mental >> model of Cassandra, but I'm still feeling better about this thread. The way >> I figure it: >> 1. I'm trying to mutate the state of a key's column from A to B from a >> thread somewhere (quorum) >> 2. I'm trying to read the state of a key from a thread somewhere else >> (quorum) >> >> If #1 succeeds I'm guaranteed to see B. If #1 fails (with an exception) I'll >> see either A or B. I think I was concerned about that, and wanted to see A >> in #2 until success in #1. But, I wanted to get to state B, and if #1 >> retries until guaranteed success, do I care if I set B earlier than I >> expected? I'm thinking no. >> >> I guess in terms of distributed algorithms/reasoning about systems, I'm >> feeling ok with this level of guarantee (again, given the failed write tells >> the client code of the undefined state). >> >> >> >> On Apr 17, 2011, at 10:10 AM, James Cipar <jci...@cmu.edu> wrote: >> >> > I'm pretty new to Cassandra, ... >> > > > > > -- > Will Oberman > Civic Science, Inc. > 3030 Penn Avenue., First Floor > Pittsburgh, PA 15201 > (M) 412-480-7835 > (E) ober...@civicscience.com