Skip to content

Latest commit

 

History

History
140 lines (99 loc) · 4.79 KB

6-cassandra-architecture.md

File metadata and controls

140 lines (99 loc) · 4.79 KB

6 The Cassandra Architecture

Data Centers and Racks - 105

  1. What is a data center?
  2. What is a rack?

Gossip and Failure Detection - 106

  1. What is Cassandra's gossip protocol?
  2. How offten the gossiper runs?
  3. What are gossip protocols in general used for, and where?
  4. What is the Gossiper class used for?
  5. How the gossiper works? What messages each round of gossip requires?
  6. What happens if the gossiper determines that another endpoint is dead?
  7. What is accrual failure detection (AFD)? (what accrual means?)
  8. What are two primary ideas of accrual failure detection?
  9. What is the advantage of AFD when compared to a simple binary assessment?

Snitches - 108

  1. What is a job of the snitch?
  2. What is the role of snitch in a read opperation?
  3. What is the default snitch?
  4. What is dynamic snithcing? How it works? What is a similarity with gossip?
  5. What is badness threshold?

Rings and Tokens - 109

  1. What is a ring?
  2. How are ranges assigned to a node in a ring?
  3. What is a token?

Virtual Nodes - 110

  1. Why did Cassandra introduces the concept of virtual nodes (vnodes)? How the tokens and ranges were calculated before virtual nodes?
  2. What is num_tokens property in the cassandra.yaml file used for?
  3. Why vnodes speed up bootstrapping, decommissioning, and repairing a node?

Partitioners - 111

  1. What a partitioner is used for?
  2. Is it possible to plug your own implementation of a partitioner? How?

Replication Strategies - 112

  1. What is a replica?
  2. What is a replication factor?
  3. How the first replica?
  4. What is replication strategy?
  5. What are two primary implementations of AbstractReplicationStrategy? How they place replicas?

Consistency Levels - 113

  1. When is the consistency level specified?
  2. What does consistency level specify for read and write?
  3. What are available consistency levels?
  4. Which consistency levels are considered weak and which are considered strong?
  5. What is the difference between consistency level and replication factor?

Queries and Coordinator Nodes - 114

  1. What is coordinator node? What does it do?

Memtables, SSTables, and Commit Logs - 115

  1. What is the purpose of commit log? When a commit log is read from?
  2. What is a memtable? In which memory memtables are (mostly) stored and why?
  3. When are memtables flushed to disk?
  4. What happens with commit log when a memtable is flushed?
  5. What is a SSTable?
  6. Explain properties of SSTable (immutability, sequetial writes).
  7. On read, where does Cassandra read from?

Caching - 117

  1. Which forms of caching does Cassandra provide? Explain each one.
  2. Which ones are enabled by default?

Hinted Handoff - 118, docs

  1. What is a hinted handoff?
  2. Do hints count as writes for the purposes of consistency level?

Lightweight Transactions and Paxos - 118, docs

  1. What is linearizable consistency?
  2. What is Paxos?
  3. Explain LWT and Paxos :)

Tombstones - 120

  1. What is a tombstone?
  2. What is GCGraceSeconds setting and what is the default value for it?

Bloom Filters - 120

  1. What is a bloom filter?
  2. How bloom filter works (on a high level)?

Compaction - 121

  1. What is compaction, why it occurs, and what happens during compaction?
  2. Which compaction strategies are available with Cassandra?

Anty-Entropy, Repair, and Merkle Trees - 122

  1. What is an anti-entropy protocol and how it works?
  2. How are replica synchronized (two modes)?
  3. What is a read repair and how it works?
  4. What is an anti-entropy repair (a.k.a. manual repair) and how it works?
  5. What is a Merkle tree?

Staged Even-Driven Architecture (SEDA) - 124

  1. What is SEDA?
  2. What are the stages in Cassandra?

Managers and Services - 125

  1. What is CassandraDaemon interface used for? What opperations does it support?
  2. What is EmbeddedCassadnraService class used for?
  3. What is ColumnFamilyStore class used for?
  4. What is StorageService class used for?
  5. What is StorageProxy class used for?
  6. What is MessageService class used for?
  7. What is streaming? Which protocol does it use?
  8. What is CQL Native Protocol?

System Keyspaces

  1. Describe following System keyspaces:
  2. system.local and system.peers
  3. system.range_xfers and system.available_ranges
  4. system_schema.keyspaces, system_schema.tables, and system_schema.columns
  5. systemmaterialized_views_builds_in_progress, system.built_materialized_views, and syste_schema.materialized_views
  6. system_schema.types, system_schema.triggers, system_schema.functions, system_schema.aggregates
  7. system.paxos, system.batchlog
  8. system.size_estimates