cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jason Brown (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-12347) Gossip 2.0 - broadcast tree for data dissemination
Date Mon, 01 Aug 2016 23:28:20 GMT

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

Mime
View raw message