incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bhaskar Rathod <bhaskar_rat...@yahoo.com>
Subject get_slice() inconsistent in 0.4?
Date Wed, 02 Sep 2009 02:28:09 GMT
Hi,

I have been playing with get_slice() in cassandra 0.4, and I have noticed the following issue:

When the column name is a Long, multiple invocations of get_slice() returns different values
(sometimes none at all).

After a bit of a digging, I noticed that package org.apache.cassandra.db.marshal.LongType.java
deserializes longs with a little endian byte order. The default java byte ordering is big
endian. This seems to impact the way SliceQueryFilter iterates over the columns. Once I changed
LongType to use big endian byte order, the problem went away for me.

Was wondering if this was a known issue (or an issue at all - cropped up by how I am using
it).

My setup is as below:
- Cassandra 0.4
- Running on Mac OS Leopard 10.5.8, JDK 1.6.0_13
- Storage config has one keyspace, with one (simple) column family :
    <ColumnFamily CompareWith="LongType" Name="revs"/>
- When inserting data, I convert the long (my column name) to byte array as such:
        ByteArrayOutputStream bos = null;
        DataOutputStream dos = null;
        try {
        bos = new ByteArrayOutputStream();
        dos = new DataOutputStream(bos);
        dos.writeLong(l);
        dos.flush();
        byte[] ret =  bos.toByteArray();
        return ret;
- When querying, I use the below: (I use thrift. The example uses reverse order, I tried both
ways)
         ColumnParent column_parent = new ColumnParent("revs", null);
         SlicePredicate predicate = new SlicePredicate();
         predicate.setSlice_range(new SliceRange(CarmotUtil.getBytes(System.currentTimeMillis()),
CarmotUtil.getBytes(0l), true, 1000));            
        List<ColumnOrSuperColumn> ret = cl.get_slice("Objects", id, column_parent, predicate,
1);

I would appreciate any feedback/insights on this. I can provide more details as needed.

 Thanks,
Bhaskar


Mime
View raw message