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
road.)

On Tue, Nov 27, 2012 at 6:14 PM, Isaac Huang <he.hu...@intel.com> 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
co-founder, http://www.datastax.com
@spyced

Reply via email to