Glad you got it figured out, but I'm confused about the @Version
annotation.  The DataStax Java Driver just handles statements, as far as I
know it's never going to modify statement text.  It sounds like you're
using an entity mapping framework on top of the java driver, which uses
@Version for optimistic locking, and that upgraded the generated statement
to a CAS operation.

On Wed, Nov 4, 2015 at 1:20 AM Ajay Garg <ajaygargn...@gmail.com> wrote:

> Hi All.
>
> I think we got the root-cause.
>
> One of the fields in one of the class was marked with "@Version"
> annotation, which was causing the Cassandra-Java-Driver to insert "If Not
> Exists" in the insert query, thus invoking SERIAL consistency-level.
>
> We removed the annotation (didn't really need that), and we have not
> observed the error since about an hour or so.
>
>
> Thanks Eric and Bryan for the help !!!
>
>
> Thanks and Regards,
> Ajay
>
> On Wed, Nov 4, 2015 at 8:51 AM, Ajay Garg <ajaygargn...@gmail.com> wrote:
>
>> Hmm... ok.
>>
>> Ideally, we require ::
>>
>> a)
>> The intra-DC-node-syncing takes place at the statement/query level.
>>
>> b)
>> The inter-DC-node-syncing takes place at cassandra level.
>>
>>
>> That way, we don't spend too much delay at the statement/query level.
>>
>>
>> For the so-called CAS/lightweight transactions, the above are impossible
>> then?
>>
>> On Wed, Nov 4, 2015 at 5:58 AM, Bryan Cheng <br...@blockcypher.com>
>> wrote:
>>
>>> What Eric means is that SERIAL consistency is a special type of
>>> consistency that is only invoked for a subset of operations: those that use
>>> CAS/lightweight transactions, for example "IF NOT EXISTS" queries.
>>>
>>> The differences between CAS operations and standard operations are
>>> significant and there are large repercussions for tunable consistency. The
>>> amount of time such an operation takes is greatly increased as well; you
>>> may need to increase your internal node-to-node timeouts .
>>>
>>> On Mon, Nov 2, 2015 at 8:01 PM, Ajay Garg <ajaygargn...@gmail.com>
>>> wrote:
>>>
>>>> Hi Eric,
>>>>
>>>> I am sorry, but I don't understand.
>>>>
>>>> If there had been some issue in the configuration, then the
>>>> consistency-issue would be seen everytime (I guess).
>>>> As of now, the error is seen sometimes (probably 30% of times).
>>>>
>>>> On Mon, Nov 2, 2015 at 10:24 PM, Eric Stevens <migh...@gmail.com>
>>>> wrote:
>>>>
>>>>> Serial consistency gets invoked at the protocol level when doing
>>>>> lightweight transactions such as CAS operations.  If you're expecting that
>>>>> your topology is RF=2, N=2, it seems like some keyspace has RF=3, and so
>>>>> there aren't enough nodes available to satisfy serial consistency.
>>>>>
>>>>> See
>>>>> http://docs.datastax.com/en/cassandra/2.0/cassandra/dml/dml_ltwt_transaction_c.html
>>>>>
>>>>> On Mon, Nov 2, 2015 at 1:29 AM Ajay Garg <ajaygargn...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Hi All.
>>>>>>
>>>>>> I have a 2*2 Network-Topology Replication setup, and I run my
>>>>>> application via DataStax-driver.
>>>>>>
>>>>>> I frequently get the errors of type ::
>>>>>> *Cassandra timeout during write query at consistency SERIAL (3
>>>>>> replica were required but only 0 acknowledged the write)*
>>>>>>
>>>>>> I have already tried passing a "write-options with LOCAL_QUORUM
>>>>>> consistency-level" in all create/save statements, but I still get this
>>>>>> error.
>>>>>>
>>>>>> Does something else need to be changed in
>>>>>> /etc/cassandra/cassandra.yaml too?
>>>>>> Or may be some another place?
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Regards,
>>>>>> Ajay
>>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Regards,
>>>> Ajay
>>>>
>>>
>>>
>>
>>
>> --
>> Regards,
>> Ajay
>>
>
>
>
> --
> Regards,
> Ajay
>

Reply via email to