You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jason Brown (JIRA)" <ji...@apache.org> on 2016/08/01 23:28:20 UTC

[jira] [Commented] (CASSANDRA-12347) Gossip 2.0 - broadcast tree for data dissemination

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