Thanks, we'll have a look. -- Sylvain
On Wed, Jul 4, 2012 at 3:04 PM, Henning Kropp <kr...@nurago.com> wrote: > I was able to rule out that the Composite class from hector is causing > this issue. I opened up a ticket on this, please find it here: > https://issues.apache.org/jira/browse/CASSANDRA-4410 > > regards > > On 29.06.2012 09:23, Sylvain Lebresne wrote: >> On Thu, Jun 28, 2012 at 6:43 PM, Henning Kropp <kr...@nurago.com> wrote: >>> I would like to use the BulkOutputFormat so. Is it likely to cause the below >>> exception? If so, why? Can it be fixed? >> It could, and if that only happens when you use it, then there is a >> good change this is >> where there is a problem. But I'll admit I don't know the BulkOutputFormat >> well >> enough to be definitive. Would you mind opening a ticket on >> https://issues.apache.org/jira/browse/CASSANDRA will all those details ? >> >> -- >> Sylvain >>> regards >>> >>> ________________________________ >>> Am 26.06.2012 17:02 schrieb Sylvain Lebresne <sylv...@datastax.com>: >>> On Tue, Jun 26, 2012 at 4:00 PM, Henning Kropp <kr...@nurago.com> wrote: >>>> Thanks for the reply. Should have thought about looking into the log files >>>> sooner. An AssertionError happens at execution. I haven't figured out yet >>>> why. Any input is very much appreciated: >>>> >>>> ERROR [ReadStage:1] 2012-06-26 15:49:54,481 AbstractCassandraDaemon.java >>>> (line 134) Exception in thread Thread[ReadStage:1,5,main] >>>> java.lang.AssertionError: Added column does not sort as the last column >>>> at >>>> org.apache.cassandra.db.ArrayBackedSortedColumns.addColumn(ArrayBackedSortedColumns.java:130) >>>> at >>>> org.apache.cassandra.db.AbstractColumnContainer.addColumn(AbstractColumnContainer.java:107) >>>> at >>>> org.apache.cassandra.db.AbstractColumnContainer.addColumn(AbstractColumnContainer.java:102) >>>> at >>>> org.apache.cassandra.db.filter.SliceQueryFilter.collectReducedColumns(SliceQueryFilter.java:141) >>>> at >>>> org.apache.cassandra.db.filter.QueryFilter.collateColumns(QueryFilter.java:139) >>>> at >>>> org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:283) >>>> at >>>> org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:63) >>>> at >>>> org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1321) >>>> at >>>> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1183) >>>> at >>>> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1118) >>>> at org.apache.cassandra.db.Table.getRow(Table.java:374) >>>> at >>>> org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:69) >>>> at >>>> org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:816) >>>> at >>>> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1250) >>>> at >>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) >>>> at >>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) >>>> at java.lang.Thread.run(Thread.java:662) >>> Obviously that shouldn't happen. You didn't happen to change the >>> comparator for the column family or something like that from the >>> hector side? >>> Are you able to reproduce from a blank DB? >>> >>> -- >>> Sylvain >>> >>>> >>>> BTW: I really would love to understand as of why the combined comparator >>>> will not allow two ranges be specified for two key parts. Obviously I still >>>> lack a profound understanding of cassandras architecture to have a clue. >>>> And while client side filtering might seem like a valid option I am still >>>> trying to get might head around a cassandra data model that would allow >>>> this. >>>> >>>> best regards >>>> >>>> ________________________________________ >>>> Von: Sylvain Lebresne [sylv...@datastax.com] >>>> Gesendet: Dienstag, 26. Juni 2012 10:21 >>>> Bis: user@cassandra.apache.org >>>> Betreff: Re: Request Timeout with Composite Columns and CQL3 >>>> >>>> On Mon, Jun 25, 2012 at 11:10 PM, Henning Kropp <kr...@nurago.com> wrote: >>>>> Hi, >>>>> >>>>> I am running into timeout issues using composite columns in cassandra >>>>> 1.1.1 >>>>> and cql 3. >>>>> >>>>> My keyspace and table is defined as the following: >>>>> >>>>> create keyspace bn_logs >>>>> with strategy_options = [{replication_factor:1}] >>>>> and placement_strategy = >>>>> 'org.apache.cassandra.locator.SimpleStrategy'; >>>>> >>>>> CREATE TABLE logs ( >>>>> id text, >>>>> ref text, >>>>> time bigint, >>>>> datum text, >>>>> PRIMARY KEY(id, ref, time) >>>>> ); >>>>> >>>>> I import some data to the table by using a combination of the thrift >>>>> interface and the hector Composite.class by using its serialization as >>>>> the >>>>> column name: >>>>> >>>>> Column col = new Column(composite.serialize()); >>>>> >>>>> This all seems to work fine until I try to execute the following query >>>>> which >>>>> leads to a request timeout: >>>>> >>>>> SELECT datum FROM logs WHERE id='861' and ref = 'raaf' and time > '3000'; >>>> If it timeouts the likely reason is that this query selects more data >>>> than the machine is able to fetch before the timeout. You can either >>>> add a limit to the query, or increase the timeout. >>>> If that doesn't seem to fix it, it might be worth checking the server >>>> log to see if there isn't an error. >>>> >>>>> I really would like to figure out, why running this query on my laptop >>>>> (single node, for development) will not finish. I also would like to know >>>>> if >>>>> the following query would actually work >>>>> >>>>> SELECT datum FROM logs WHERE id='861' and ref = 'raaf*' and time > >>>>> '3000'; >>>> It won't. You can perform the following query: >>>> >>>> SELECT datum FROM logs WHERE id='861' and ref = 'raaf'; >>>> >>>> which will select every datum whose ref starts with 'raaf', but then >>>> you cannot restrict >>>> the time parameter, so you will get ref where the time is <= 3000. Of >>>> course you can >>>> always filter client side if that is an option. >>>> >>>>> or how else there is a way to define a range for the second component of >>>>> the >>>>> column key? >>>> As described above, you can define a range on the second component, but >>>> then you >>>> won't be able to restrict on the 3rd component. >>>> >>>>> Any thoughts? >>>>> >>>>> Thanks in advance and kind regards >>>>> Henning >>>>> >