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