You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Eric Evans (JIRA)" <ji...@apache.org> on 2012/09/04 22:32:07 UTC
[jira] [Reopened] (CASSANDRA-4383) Binary encoding of vnode tokens
[ https://issues.apache.org/jira/browse/CASSANDRA-4383?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Evans reopened CASSANDRA-4383:
-----------------------------------
I'm seeing these:
{noformat}
java.lang.NullPointerException
at org.apache.cassandra.utils.UUIDGen.decompose(UUIDGen.java:120)
at org.apache.cassandra.db.HintedHandOffManager.deliverHintsToEndpointInternal(HintedHandOffManager.java:304)
at org.apache.cassandra.db.HintedHandOffManager.deliverHintsToEndpoint(HintedHandOffManager.java:250)
at org.apache.cassandra.db.HintedHandOffManager.access$400(HintedHandOffManager.java:87)
at org.apache.cassandra.db.HintedHandOffManager$4.runMayThrow(HintedHandOffManager.java:433)
at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
{noformat}
... and some of these:
{noformat}
java.lang.NullPointerException
at org.apache.cassandra.service.StorageService.getApplicationStateValue(StorageService.java:1117)
at org.apache.cassandra.service.StorageService.getTokensFor(StorageService.java:1125)
at org.apache.cassandra.service.StorageService.handleStateNormal(StorageService.java:1196)
at org.apache.cassandra.service.StorageService.onChange(StorageService.java:1103)
at org.apache.cassandra.gms.Gossiper.doNotifications(Gossiper.java:915)
at org.apache.cassandra.gms.Gossiper.applyNewStates(Gossiper.java:906)
at org.apache.cassandra.gms.Gossiper.applyStateLocally(Gossiper.java:868)
at org.apache.cassandra.gms.GossipDigestAck2VerbHandler.doVerb(GossipDigestAck2VerbHandler.java:43)
at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:55)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
{noformat}
In both cases it looks like an event is firing before HOST_ID or TOKENS respectively are being set.
To reproduce I use ccm to run a 3 node cluster, replication factor 2. I load about 70k rows at CL = ONE, read them back at CL = ALL, and then restart all of the nodes.
> Binary encoding of vnode tokens
> -------------------------------
>
> Key: CASSANDRA-4383
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4383
> Project: Cassandra
> Issue Type: Sub-task
> Reporter: Brandon Williams
> Assignee: Brandon Williams
> Fix For: 1.2.0 beta 1
>
> Attachments: 0001-Add-HOST_ID-and-TOKENS-app-states-binary-serialization.txt, 0002-Fix-tests.txt
>
>
> Since after CASSANDRA-4317 we can know which version a remote node is using (that is, whether it is vnode-aware or not) this a good opportunity to change the token encoding to binary, since with a default of 256 tokens per node even a fixed-length 16 byte encoding per token provides a great deal of savings in gossip traffic over a text representation.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira