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 >>>