時間 主題 內容 第一部份【1】 Cassandra介紹 SQL and NoSQL CAP理論(CAP theorem) Database or Datastore Cassandra history Cassandra主要結構(Node, Rack, Datacenter, Cluster) 【2】 Cassandra基本概念 種子節點(Seed nodes) Gossip Protocol 失敗檢測(Detecing a failed node) 分區(Partitioner) Ring architecture 數據復制(Data Replication) 集群管理(Snitch) 分段式事件驅動架構(SEDA architecture) 討論1: Debate – adding capacity strategy 討論2: Debate – Failover design strategy 第二部份【1】 Cassandra安裝和配置 Cassandra配置文件: Cassandra.yaml, Cassandra-env.sh 防火墻和Cassandra端口(firewall and port) 用戶驗證(Authentication) Cassandra客戶端 – CQLSH Debate – Cassandra自動化安裝 【2】 Cassandra 建模 表空間(keyspace) 表(Table, column family) 主鍵,分區鍵(parimey key, parititon key) 一致性(Consistency Level) 寫一致性(Write Consistency Level) 讀一致性(Read Consistency Level) 討論 – R + W > N 建模的基本原則(Modeling guidelines) 反范式建模 數據類型(datetype) Counter 寬行(wide row) 查詢條件選擇 二級索引(Secondary Index) 輕量級事務(lightweight transaction) 討論1: 關系型數據在Cassandra里的存儲 討論2: 二級索引的使用場景 第三部份【1】 Cassandra驅動 連接池配置(Connection Pool) 跨數據中心連接(Access Remote DC) 出錯重試機制(Retry Policy) 負載均衡(Load Balancing) 同步/異步訪問(Sync/ASync access) 討論– 如何實現應用層的failover 【2】Cassandra讀寫 數據緩存(Memtable) 日志(CommitLog) 數據文件命名規則(data file name rule) 寫邏輯(Write path) 讀邏輯(Read Path) 主鍵緩存(Key Cache) 行緩存(Row cache) 數據合并(Compaction) 數據壓縮(Compression) 第四部份【1】 Cassandra監控 Opscenter的安裝和配置 JMX收集 Metric分析 Java GC【2】 Cassandra管理 數據修復(nodetool repair) 查看統計信息(nodetool cfstats) CQL跟蹤(CQL tracing) Backup and Recovery(備份和恢復) Cassandra升級(Cassandra upgrading) 討論: 數據修復的最佳實踐