cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sam Overton (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-4121) TokenMetadata supports multiple tokens per host
Date Wed, 04 Jul 2012 13:38:34 GMT


Sam Overton commented on CASSANDRA-4121:

bq. If we do go with these wrappers I'd prefer to keep it as thin as possible – no internal
synchronization, no copies on inverse(). (I think the existing synchronizied wrapper around
the bootstrapTokens BiMap saves us exactly one use of the explicit lock, in pendingRangeChanges.
I'm fine with giving that up.)

I think given the changes to synchronization in TokenMetadata for CASSANDRA-3881 I will revisit
synchronization in these BMVMaps - they can probably just rely on the ReadWriteLock in TMD.
Re: "no copies on inverse()" - unmodifiableMultimap just makes the returned inverse map immutable,
there is no copy.

bq. I think the code reads better with, than without them, but I can understand the argument
for keeping them "thin". Sam?

I do think these wrappers are useful. It cuts down on the size of the interface that TMD has
to provide. Looking up the endpoint to tokens mapping in both directions is useful and we
already use the reverse mapping of bootstrapTokens in SS.calculatePendingRanges(). I would
be tempted to make TMD.getEndpointToTokenMapForReading return the BMVMap too (currently it
copies into a Multimap).

> TokenMetadata supports multiple tokens per host
> -----------------------------------------------
>                 Key: CASSANDRA-4121
>                 URL:
>             Project: Cassandra
>          Issue Type: Sub-task
>          Components: Core
>            Reporter: Sam Overton
>            Assignee: Sam Overton
>              Labels: vnodes
>             Fix For: 1.2
> _Edit0: Append patch information._
> h3. Patches
> ||Compare||Raw diff||Description||
> |[01_support_multiple_tokens_per_host|]|[01_support_multiple_tokens_per_host.patch|]|Support
associating more than one token per node|
> ----
> _Note: These are branches managed with TopGit. If you are applying the patch output manually,
you will either need to filter the TopGit metadata files (i.e. {{wget -O - <url> | filterdiff
-x*.topdeps -x*.topmsg | patch -p1}}), or remove them afterward ({{rm .topmsg .topdeps}})._

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message