cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <>
Subject [Cassandra Wiki] Update of "ArchitectureGossip" by JonathanEllis
Date Fri, 04 Dec 2009 14:37:47 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Cassandra Wiki" for change notification.

The "ArchitectureGossip" page has been changed by JonathanEllis.


  = Gossiper =
+ The gossiper is responsible for making sure every node in the system eventually knows important
information about every other node's state, including those that are unreachable or not yet
in the cluster when any given state change occurs.
+ == API ==
+ Information to gossip is wrapped in an !ApplicationState object, which is essentially a
key/value pair.  (See "Data Structures" below for more detail.)  The gossiper propagates these
to other nodes, where interested classes subscribe to changes via the !IEndPointStateChangeSubscriber
interface.  This provides onJoin, onAlive, and onDead methods indicating the obvious things,
and onChange for !ApplicationState changes.  onChange is called once for each !ApplicationState.
 There are two non-obvious properties to this:
+  1. If a node makes multiple changes to a given !ApplicationState key, other nodes are guaranteed
to see the most recent one but not intermediate ones
+  1. There is no provision for deleting an !ApplicationState entirely
+ == Gossiper implementation ==
  Gossip timer task runs every second. During each of these runs the node initiates gossip
exchange according to following rules:
   1. Gossip to random live endpoint (if any)

View raw message