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