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 <[email protected]> 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 <[email protected]> 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 <[email protected]>
>> 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 <[email protected]> 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
>>
>>
>