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.
