[
https://issues.apache.org/jira/browse/CASSANDRA-12347?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15403031#comment-15403031
]
Jason Brown commented on CASSANDRA-12347:
-----------------------------------------
A first pass implementation can be found here:
https://github.com/jasobrown/cassandra/tree/broadcast_thicket
The functionality is 97% complete - I discovered a missing functionality this
morning while reviewing, and I also need to update the simulator (as I finally
discovered {{IMessageSink}}) as well as adding more documentation. That being
said, I wanted to get this out for review in conjunction with CASSANDRA-12346
(which this ticket depends on; current thicket implementation is based upon
hyparview branch's git sha e132ef289d14a0522a5f0c44bc81d65a67894e9e).
> Gossip 2.0 - broadcast tree for data dissemination
> --------------------------------------------------
>
> Key: CASSANDRA-12347
> URL: https://issues.apache.org/jira/browse/CASSANDRA-12347
> Project: Cassandra
> Issue Type: Improvement
> Reporter: Jason Brown
>
> Description: A broadcast tree (spanning tree) allows an originating node to
> efficiently send out updates to all of the peers in the cluster by
> constructing a balanced, self-healing tree based upon the view it gets from
> the peer sampling service (CASSANDRA-12346).
> I propose we use an algorithm based on the [Thicket
> paper|http://www.gsd.inesc-id.pt/%7Ejleitao/pdf/srds10-mario.pdf], which
> describes a dynamic, self-healing broadcast tree. When a given node needs to
> send out a message, it dynamically builds a tree for each node in the
> cluster; thus giving us a unique tree for every node in the cluster (a tree
> rooted at every cluster node). The trees, of course, would be reusable until
> the cluster configurations changes or failures are detected (by the mechanism
> described in the paper). Additionally, Thicket includes a mechanism for
> load-balancing the trees such that nodes spread out the work amongst
> themselves.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)