You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@gora.apache.org by "Roland von Herget (JIRA)" <ji...@apache.org> on 2013/04/11 10:11:16 UTC

[jira] [Commented] (GORA-167) Make Cassandra keyspace consistency configurable within gora.properties

    [ https://issues.apache.org/jira/browse/GORA-167?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13628755#comment-13628755 ] 

Roland von Herget commented on GORA-167:
----------------------------------------

Hi Lewis,

great :) This is in some way related to GORA-215, maybe I'll find time to do these things the same way, after this one is fixed.

So, here my comments:
- documentation of checkKeyspace() is a bit unclear to me:
  * "Unless explicitly turned off, Hadoop by default specifies two resources, loaded in-order from the classpath: "?!
  * "Applications may add additional resources, which are loaded subsequent to these resources in the order they are added"
  * And you're missing a few "</p>"
- I get test failures on my box:
{code}
Test set: org.apache.gora.cassandra.store.TestCassandraStore
-------------------------------------------------------------------------------
Tests run: 28, Failures: 0, Errors: 13, Skipped: 0, Time elapsed: 65.264 sec <<< FAILURE!
testTruncateSchema(org.apache.gora.cassandra.store.TestCassandraStore)  Time elapsed: 2.729 sec  <<< ERROR!
java.lang.NullPointerException: Null not allowed, number 1
        at me.prettyprint.cassandra.utils.Assert.noneNull(Assert.java:25)
        at me.prettyprint.cassandra.model.AbstractBasicQuery.<init>(AbstractBasicQuery.java:26)
        at me.prettyprint.cassandra.model.AbstractQuery.<init>(AbstractQuery.java:15)
        at me.prettyprint.cassandra.model.AbstractSliceQuery.<init>(AbstractSliceQuery.java:24)
        at me.prettyprint.cassandra.model.thrift.ThriftRangeSlicesQuery.<init>(ThriftRangeSlicesQuery.java:41)
        at me.prettyprint.hector.api.factory.HFactory.createRangeSlicesQuery(HFactory.java:447)
        at org.apache.gora.cassandra.store.CassandraClient.execute(CassandraClient.java:374)
        at org.apache.gora.cassandra.store.CassandraStore.addSubColumns(CassandraStore.java:158)
        at org.apache.gora.cassandra.store.CassandraStore.execute(CassandraStore.java:146)
        at org.apache.gora.query.impl.QueryBase.execute(QueryBase.java:71)
        at org.apache.gora.store.DataStoreTestUtil.assertNumResults(DataStoreTestUtil.java:495)
        at org.apache.gora.store.DataStoreTestUtil.assertEmptyResults(DataStoreTestUtil.java:490)
        at org.apache.gora.store.DataStoreTestUtil.testTruncateSchema(DataStoreTestUtil.java:114)
        at org.apache.gora.store.DataStoreTestBase.testTruncateSchema(DataStoreTestBase.java:152)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
[...]
testPutNested(org.apache.gora.cassandra.store.TestCassandraStore)  Time elapsed: 2.239 sec  <<< ERROR!
java.lang.NullPointerException
        at org.apache.gora.cassandra.store.CassandraClient.addColumn(CassandraClient.java:216)
        at org.apache.gora.cassandra.store.CassandraStore.addOrUpdateField(CassandraStore.java:352)
        at org.apache.gora.cassandra.store.CassandraStore.flush(CassandraStore.java:228)
        at org.apache.gora.store.DataStoreTestBase.testPutNested(DataStoreTestBase.java:195)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
        at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
        at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
        at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
        at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30)
[...]
{code}
(I'm on trunk - rev1466780 - patch applied with a few offsets, plain trunk has no errors during testing)

                
> Make Cassandra keyspace consistency configurable within gora.properties
> -----------------------------------------------------------------------
>
>                 Key: GORA-167
>                 URL: https://issues.apache.org/jira/browse/GORA-167
>             Project: Apache Gora
>          Issue Type: Improvement
>          Components: gora-cassandra
>    Affects Versions: 0.2.1
>            Reporter: Lewis John McGibbney
>            Assignee: Lewis John McGibbney
>            Priority: Minor
>             Fix For: 0.3
>
>         Attachments: GORA-167.patch
>
>
> Current in CassandraClient#checkKeyspace() consistency is hard coded such that consistency level is .ONE which permits consistency to wait until one replica has responded. This could be improved to enable users to specify other consistency profiles e.g. 
>         ANY: Wait until some replica has responded.
>         ONE: Wait until one replica has responded.
>         TWO: Wait until two replicas have responded.
>         THREE: Wait until three replicas have responded.
>         LOCAL_QUORUM: Wait for quorum on the datacenter the connection was stablished.
>         EACH_QUORUM: Wait for quorum on each datacenter.
>         QUORUM: Wait for a quorum of replicas (no matter which datacenter).
>         ALL: Blocks for all the replicas before returning to the client.
> Configuration should be made available through gora.properties

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira