> That is the order I would expect to find if I read the CF, but if I do, I 
> obtain (with any client or library I've tried):
> 
What happens if you export sstables with sstable2json ?

Put some logging in Memtable.FlushRunnable.writeSortedContents to see the order 
the rows are written 

Cheers

-----------------
Aaron Morton
Freelance Cassandra Consultant
New Zealand

@aaronmorton
http://www.thelastpickle.com

On 28/03/2013, at 5:05 AM, Carlos Pérez Miguel <cperez...@gmail.com> wrote:

> Thanks, Lanny. That is what I am doing.
> 
> Actually I'm having another problem. My UUIDOrderedPartitioner doesn't order 
> by time. Instead, it orders by byte order and I cannot find why. Which are 
> the functions that control ordering between tokens? I have implemented time 
> ordering in the "compareTo" function of my UUID token class, but it seems 
> that Cassandra is ignoring it. For example:
> 
> Let's suppouse that I have a Users CF where each row represents a user in a 
> cluster of 1 node. Rows are ordered by TimeUUID. I create some users in the 
> next order:
> 
> user a created with user_id: eac850fa-96f4-11e2-9f22-72ad6af0e500
> user b created with user_id: f17f9ae8-96f4-11e2-98aa-421151417092
> user c created with user_id: f82fccfa-96f4-11e2-8d99-26f8461d074c
> user d created with user_id: fee21cec-96f4-11e2-945b-f9a2a2e32308
> user e created with user_id: 058ec180-96f5-11e2-8c88-4aaf94e4f04e
> user f created with user_id: 0c5032ba-96f5-11e2-95a5-60a128c0b3f4
> user g created with user_id: 13036b86-96f5-11e2-80dd-566654c686cb
> user h created with user_id: 19b245f6-96f5-11e2-9c8f-b315f455e5e0
> 
> That is the order I would expect to find if I read the CF, but if I do, I 
> obtain (with any client or library I've tried):
> 
> user_id: 058ec180-96f5-11e2-8c88-4aaf94e4f04e name:"e"
> user_id: 0c5032ba-96f5-11e2-95a5-60a128c0b3f4 name:"f"
> user_id: 13036b86-96f5-11e2-80dd-566654c686cb name:"g"
> user_id: 19b245f6-96f5-11e2-9c8f-b315f455e5e0 name:"h"
> user_id: eac850fa-96f4-11e2-9f22-72ad6af0e500 name:"a"
> user_id: f17f9ae8-96f4-11e2-98aa-421151417092 name:"b"
> user_id: f82fccfa-96f4-11e2-8d99-26f8461d074c name:"c"
> user_id: fee21cec-96f4-11e2-945b-f9a2a2e32308 name:"d"
> 
> Any idea what's happening?
> 
> 
> Carlos Pérez Miguel
> 
> 
> 2013/3/27 Lanny Ripple <la...@spotright.com>
> Ah. TimeUUID.  Not as useful for you then but still something for the toolbox.
> 
> On Mar 27, 2013, at 8:42 AM, Lanny Ripple <la...@spotright.com> wrote:
> 
> > A type 4 UUID can be created from two Longs.  You could MD5 your strings 
> > giving you 128 hashed bits and then make UUIDs out of that.  Using Scala:
> >
> >   import java.nio.ByteBuffer
> >   import java.security.MessageDigest
> >   import java.util.UUID
> >
> >   val key = "Hello, World!"
> >
> >   val md = MessageDigest.getInstance("MD5")
> >   val dig = md.digest(key.getBytes("UTF-8"))
> >   val bb = ByteBuffer.wrap(dig)
> >
> >   val msb = bb.getLong
> >   val lsb = bb.getLong
> >
> >   val uuid = new UUID(msb, lsb)
> >
> >
> > On Mar 26, 2013, at 3:22 PM, aaron morton <aa...@thelastpickle.com> wrote:
> >
> >>> Any idea?
> >> Not off the top of my head.
> >>
> >> Cheers
> >>
> >> -----------------
> >> Aaron Morton
> >> Freelance Cassandra Consultant
> >> New Zealand
> >>
> >> @aaronmorton
> >> http://www.thelastpickle.com
> >>
> >> On 26/03/2013, at 2:13 AM, Carlos Pérez Miguel <cperez...@gmail.com> wrote:
> >>
> >>> Yes it does. Thank you Aaron.
> >>>
> >>> Now I realized that the system keyspace uses string as keys, like "Ring" 
> >>> or "ClusterName", and I don't know how to convert these type of keys into 
> >>> UUID. Any idea?
> >>>
> >>>
> >>> Carlos Pérez Miguel
> >>>
> >>>
> >>> 2013/3/25 aaron morton <aa...@thelastpickle.com>
> >>> The best thing to do is start with a look at ByteOrderedPartitoner and 
> >>> AbstractByteOrderedPartitioner.
> >>>
> >>> You'll want to create a new TimeUUIDToken extends Token<UUID> and a new 
> >>> UUIDPartitioner that extends AbstractPartitioner<>
> >>>
> >>> Usual disclaimer that ordered partitioners cause problems with load 
> >>> balancing.
> >>>
> >>> Hope that helps.
> >>>
> >>> -----------------
> >>> Aaron Morton
> >>> Freelance Cassandra Consultant
> >>> New Zealand
> >>>
> >>> @aaronmorton
> >>> http://www.thelastpickle.com
> >>>
> >>> On 25/03/2013, at 1:12 AM, Carlos Pérez Miguel <cperez...@gmail.com> 
> >>> wrote:
> >>>
> >>>> Hi,
> >>>>
> >>>> I store in my system rows where the key is a UUID version1, TimeUUID. I 
> >>>> would like to maintain rows ordered by time. I know that in this case, 
> >>>> it is recomended to use an external CF where column names are UUID 
> >>>> ordered by time. But in my use case this is not possible, so I would 
> >>>> like to use a custom Partitioner in order to do this. If I use 
> >>>> ByteOrderedPartitioner rows are not correctly ordered because of the way 
> >>>> a UUID stores the timestamp. What is needed in order to implement my own 
> >>>> Partitioner?
> >>>>
> >>>> Thank you.
> >>>>
> >>>> Carlos Pérez Miguel
> >>>
> >>>
> >>
> >
> 
> 

Reply via email to