You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Hiroyuki Yamada <mo...@gmail.com> on 2016/07/03 09:00:42 UTC

Re: Read operation can read uncommitted data?

Hi,

I'm also wondering if failed read/results phase (phase 2 in C* paxos)
is recovered by some other reads or not.
It seems easier to just return "failed" to clients if the phase 2
failed, because none of proposals are actually initiated.
Does anyone know about it ?

Thanks,
Hiroyuki


On Wed, Jun 29, 2016 at 11:45 AM, Yuji Ito <yu...@imagine-orb.com> wrote:
> Tyler
>
> Thank you for your reply.
> I have 2 questions.
>
> Will the reads resume the CAS operation?
>
> Do the reads repair in-progress paxos writes in read/results phase too?
> According to the following article,
> when an UnavailableException or a WriteTimeoutException occur (propose or
> commit phase fail),
> reads will force Cassandra to commit the data.
> http://www.datastax.com/dev/blog/cassandra-error-handling-done-right
>
> Regards,
> Yuji Ito
>
>
> On Wed, Jun 29, 2016 at 7:03 AM, Tyler Hobbs <ty...@datastax.com> wrote:
>>
>> Reads at CL.SERIAL will complete any in-progress paxos writes, so the
>> behavior you're seeing is expected.
>>
>> On Mon, Jun 27, 2016 at 1:55 AM, Yuji Ito <yu...@imagine-orb.com> wrote:
>>>
>>> Hi,
>>>
>>> I'm testing Cassandra CAS operation.
>>>
>>> Can a read operation read uncommitted data which is being updated by CAS
>>> in the following case?
>>>
>>> I use Cassandra 2.2.6.
>>> There are 3 nodes (A, B and C) in a cluster.
>>> Replication factor of keyspace is 3.
>>> CAS operation on node A starts to update row X (updating the value in row
>>> from 0 to 1).
>>>
>>> 1. prepare/promise phase succeeds on node A
>>> 2. node C is down
>>> 3. read/results phase in node A sends read requests to node B and C and
>>> waits for read responses from them.
>>> 4. (unrelated) read operation (CL: SERIAL) reads the same row X and gets
>>> the value "1" in the row!!
>>> 5. read/results phase fails by ReadTimeoutException caused by failure of
>>> node C
>>>
>>> Thanks,
>>> Yuji Ito
>>
>>
>>
>>
>> --
>> Tyler Hobbs
>> DataStax
>
>