cassandra-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jonathan Ellis <>
Subject Re: overhead of the Gossip protocol
Date Tue, 27 Nov 2012 16:00:32 GMT
Because one message per second is dwarfed by user request traffic even
with 1000s of nodes.  (vnodes may make this a bigger concern down the

On Tue, Nov 27, 2012 at 6:14 PM, Isaac Huang <> wrote:
> Hi list,
> I've been looking at the Cassandra implementation of the gossip
> protocol, and it appeared to me that the size of each
> GossipDigestSynMessage would grow linearly with the size of the
> system:
> makeRandomGossipDigest():
> ......
> List<InetAddress> endpoints = new ArrayList<InetAddress>(endpointStateMap.keySet());
> Collections.shuffle(endpoints, random);
> So if there's N servers participating in the gossip protocol, at each
> cycle, there's totally N GossipDigestSynMessage's, each of a size linear
> to N - the aggregate protocol overhead would be O(N**2).
> I'm totally new to both Cassandra and Java, so this understanding
> could be very wrong. But if it's true, why hasn't it been a scalability
> concern? Is it because Cassandra servers are often geographically
> distributed so the protocol overhead doesn't hit a single site? Or
> does Cassandra servers gossip in a hierarchy of groups that I failed
> to see?
> Also, what purpose does the Collections.shuffle() serve?
> Thanks and please kindly CC me on replies.
> - Isaac

Jonathan Ellis
Project Chair, Apache Cassandra

View raw message