通過上面2節,大家了解到了RDBMS遇到的問題,以及對Cassandra有了基本的了解。下面將介紹下Cassandra內部簡單結構。
通過本章,大家應該了解到:
Cassandra Write流程
什么是SSTable
Cassandra Read流程
Cassandra Write流程
Writes可以被寫入到集群中的任意節點
Writes被寫入到commit log,同時寫到memtable
每一個write包含一個timestamp
Memtable定期flush到硬盤中(sstable)
當memtable的內容超過了其配置的限制,它包含的數據就會被放到一個隊列中并刷新到磁盤。你可以通過修改cassandra.yaml中 memtable_flush_queue_size的值來改變隊列的長度
新的memtable在內存中創建
刪除是一種特殊write,稱之為”tombstone”(墓碑)
什么是SSTable
SSTable有序字符串表(Sorted String Table),是從Google的Bigtable里借鑒過來的概念。一旦memtable被刷寫入磁盤,成為一個SSTable,它就是不可變的了。
特點如下:
數據文件:存儲記錄,不可變
每一個write包含一個timestamp
Partition被分割到多個SSTable
新的memtable在內存中創建
通過compaction合并,只保存最新的timestamp
刪除被標記為tombstone
Cassandra Read流程
任何server都可以作為coordinator被查詢
通過查詢key定位交互的nodes
在每一個node上,數據都是從SSTable拉取并合并
一致性< ALL時,將會在后臺執行read repaire(read_repaire_chance)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。