cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Cassandra Wiki] Update of "ArchitectureInternals" by JonathanEllis
Date Thu, 28 Mar 2013 01:32:46 GMT
Dear Wiki user,

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

The "ArchitectureInternals" page has been changed by JonathanEllis:
http://wiki.apache.org/cassandra/ArchitectureInternals?action=diff&rev1=28&rev2=29

Comment:
add note on names

   * !AbstractReplicationStrategy controls what nodes get secondary, tertiary, etc. replicas
of each key range.  Primary replica is always determined by the token ring (in !TokenMetadata)
but you can do a lot of variation with the others.  !SimpleStrategy just puts replicas on
the next N-1 nodes in the ring.  !NetworkTopologyStrategy allows the user to define how many
replicas to place in each datacenter, and then takes rack locality into account for each DC
-- we want to avoid multiple replicas on the same rack, if possible.
   * !MessagingService handles connection pooling and running internal commands on the appropriate
stage (basically, a threaded executorservice).  Stages are set up in !StageManager; currently
there are read, write, and stream stages.  (Streaming is for when one node copies large sections
of its SSTables to another, for bootstrap or relocation on the ring.)  The internal commands
are defined in !StorageService; look for `registerVerbHandlers`.
   * Configuration for the node (administrative stuff, such as which directories to store
data in, as well as global configuration, such as which global partitioner to use) is held
by !DatabaseDescriptor. Per-KS, per-CF, and per-Column metadata are all stored as parts of
the Schema: !KSMetadata, !CFMetadata, !ColumnDefinition. See also ConfigurationNotes.
+ 
+ = Some historial baggage =
+  * Some classes have misleading names, notably !ColumnFamily (which represents a single
row, not a table of data) and !Table (which represents a keyspace).
  
  = Write path =
   * !StorageProxy gets the nodes responsible for replicas of the keys from the !ReplicationStrategy,
then sends !RowMutation messages to them.

Mime
View raw message