[ 
https://issues.apache.org/jira/browse/CASSANDRA-1043?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12863405#action_12863405
 ] 

James Golick commented on CASSANDRA-1043:
-----------------------------------------

Sylvain, you're right about hi & 0x0FFF. Full disclosure: I'm not a UUID expert 
either.

You're also probably right that we can remove the subtraction and division from 
the end. I don't see any harm in that, since it's only really there for 
creating a timestamp that can be converted in to a Date object of some kind.

I'm working on some unit tests to make sure this works as expected...

> Faster UUID comparisons
> -----------------------
>
>                 Key: CASSANDRA-1043
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1043
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: James Golick
>            Priority: Minor
>         Attachments: faster_uuid_compare.diff
>
>
> As I explained on the mailing list, doing slice queries on CFs that are 
> sorted by TimeUUIDType gets slower as the value of count increases. According 
> to my profiles, this is largely due to the fact that ConcurrentSkipListMap 
> calls the comparator very frequently, which is extremely inefficient. In 
> order to compare two UUIDs, it has to materialize them both in to 
> java.util.UUID objects which is quite slow. The more UUIDs to compare, the 
> slower it is.
> Attached is a patch that compares UUIDs by extracting the timestamp directly 
> from the byte[] representation. According to my tests, it's close to a 50% 
> performance improvement.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to