cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Anthony Ikeda <anthony.ikeda....@gmail.com>
Subject Re: Trying to understand QUORUM and Strategies
Date Thu, 01 Sep 2011 16:36:37 GMT
Thanks Evneniy,

We encountered this exception with the following settings:

    <bean id=*"consistencyLevelPolicy"* class=*
"me.prettyprint.cassandra.model.ConfigurableConsistencyLevel"*>

      <property name=*"defaultReadConsistencyLevel"* value=*"LOCAL_QUORUM"*
/>

      <property name=*"defaultWriteConsistencyLevel"* value=*"LOCAL_QUORUM"*
/>

    </bean>

Caused by: InvalidRequestException(why:consistency level LOCAL_QUORUM not
compatible with replication strategy (org.apache.cassandra.locator

.SimpleStrategy))

        at
org.apache.cassandra.thrift.Cassandra$batch_mutate_result.read(Cassandra.java:19045)

        at
org.apache.cassandra.thrift.Cassandra$Client.recv_batch_mutate(Cassandra.java:1035)

        at
org.apache.cassandra.thrift.Cassandra$Client.batch_mutate(Cassandra.java:1009)

        at
me.prettyprint.cassandra.service.KeyspaceServiceImpl$1.execute(KeyspaceServiceImpl.java:95)

        at
me.prettyprint.cassandra.service.KeyspaceServiceImpl$1.execute(KeyspaceServiceImpl.java:90)

        at
me.prettyprint.cassandra.service.Operation.executeAndSetResult(Operation.java:101)

        at
me.prettyprint.cassandra.connection.HConnectionManager.operateWithFailover(HConnectionManager.java:232)

        at
me.prettyprint.cassandra.service.KeyspaceServiceImpl.operateWithFailover(KeyspaceServiceImpl.java:131)

        at
me.prettyprint.cassandra.service.KeyspaceServiceImpl.batchMutate(KeyspaceServiceImpl.java:102)

        at
me.prettyprint.cassandra.service.KeyspaceServiceImpl.batchMutate(KeyspaceServiceImpl.java:108)

        at
me.prettyprint.cassandra.model.MutatorImpl$3.doInKeyspace(MutatorImpl.java:222)

        at
me.prettyprint.cassandra.model.MutatorImpl$3.doInKeyspace(MutatorImpl.java:219)

        at
me.prettyprint.cassandra.model.KeyspaceOperationCallback.doInKeyspaceAndMeasure(KeyspaceOperationCallback.java:20)

        at
me.prettyprint.cassandra.model.ExecutingKeyspace.doExecute(ExecutingKeyspace.java:85)

        at
me.prettyprint.cassandra.model.MutatorImpl.execute(MutatorImpl.java:219)

Which is why I raised this email originally. It is probable that we have not
configured the system correctly, I just need to find out what it is I'm
missing.

Anthony

On Wed, Aug 31, 2011 at 2:59 PM, Evgeniy Ryabitskiy <
evgeniy.ryabitskiy@wikimart.ru> wrote:

> Hi
> Actually you can use LOCAL_QUORUM and EACH_QUORUM policy everywhere on
> DEV/QA/Prod.
> Even it would be better for integration tests to use same Consistency level
> as on production.
>
> For production with multiple DC you usually need to chouse between 2 common
> solutions: Geographical Distribution or Disaster Recovery.
> See: http://www.datastax.com/docs/0.8/operations/datacenter
>
>  LOCAL_QUORUM and EACH_QUORUM for DEV/QA/Prod by examples:
>
> create keyspace KeyspaceDEV
>     with placement_strategy =
> 'org.apache.cassandra.locator.NetworkTopologyStrategy'
>     and strategy_options=[{*datacenter1*:1}];
>
> create keyspace KeyspaceQA
>     with placement_strategy =
> 'org.apache.cassandra.locator.NetworkTopologyStrategy'
>     and strategy_options=[{*datacenter1*:2}];
>
> create keyspace KeyspaceProd
>     with placement_strategy =
> 'org.apache.cassandra.locator.NetworkTopologyStrategy'
>     and strategy_options=[{*datacenter1*:3, datacenter2:3}];
>
>
> Be careful(!!!), usually default name of DC in new cluster is *datacenter1
> *. But cassandra-cli use default name *DC1*. (some small mismatch/bug
> maybe).
>
> Evgeny.
>

Mime
View raw message