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