cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eric Evans (JIRA)" <>
Subject [jira] Commented: (CASSANDRA-2067) refactor o.a.c.utils.UUIDGen to allow creating type 1 UUIDs for a given time
Date Sat, 29 Jan 2011 05:26:44 GMT


Eric Evans commented on CASSANDRA-2067:

bq. message digest instantiation is expensive and synchronized, so we made a threadlocal for
that in FBUtilities. Should probably use that.


bq. I don't understand the purpose of clockOffsetTicker. it's only used during the constructor,
but constructor is only used once so clockOffsetTicker has no effect.

it was a throw-back from an earlier iteration. removed.

bq. i'd be happier if we used an AtomicLong instead of synchronization to protect lastNanos.
(look at java Random class for an example of using AtomicLong for a similar purpose)

I don't think this will work.  Each UUID is supposed to have a higher value than the previous
(even with identical timestamps), and this would allow racing threads to get out of order.
 For what it's worth, JUG's UUIDGenerator was synchronized in the same way here.


Also included in this most recent patchset is caching to makeNode() so that addresses only
need to be hashed once.

> refactor o.a.c.utils.UUIDGen to allow creating type 1 UUIDs for a given time
> ----------------------------------------------------------------------------
>                 Key: CASSANDRA-2067
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Eric Evans
>            Assignee: Eric Evans
>             Fix For: 0.8
>         Attachments: v1-0001-CASSANDRA-2067-o.a.c.utils.UUIDGen-adapted-from-flewto.txt,
v1-0002-eliminate-usage-of-JUG-for-UUIDs.txt, v1-0003-remove-JUG-jar-and-references.txt, v2-0001-CASSANDRA-2067-o.a.c.utils.UUIDGen-adapted-from-flewto.txt,
v2-0002-eliminate-usage-of-JUG-for-UUIDs.txt, v2-0003-remove-JUG-jar-and-license-files.txt
> CASSANDRA-2027 creates the need to generate type 1 UUIDs using arbitrary date/times.
 IMO, this would be a good opportunity to replace o.a.c.utils.UUIDGen with the class that
Gary Dusbabek wrote for Flewton (,
which is better/more comprehensive.  We can even eliminate the dependency on JUG.
> Patches to follow.

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

View raw message