Cassandra 數據一致性

 

基本概念

一致性: 在分佈式系統中的全部數據備份,在同一時刻是否一樣的值node

QUORUM: 是一個能夠計算的數字,對數據一致性起重要做用服務器

Node: 主要用來存儲數據分佈式

Data Center: 數據中心blog

機櫃(機架): 機房中放服務器的架子,一般一個機架上會放置多臺服務器內存

Cluster: 一個Cluster包括多個數據中心string

CommitLog: 主要記錄下客戶端提交過來的數據以及操做。這個數據將被持久化到磁盤中以便數據沒有被持久化到磁盤時能夠用來恢復,當持久化完成後,CommitLog會被自動清除it

Memtable: 數據在CommitLog中記錄完成後會寫入Memtable,用戶寫數據在內存中的表現形式io

SSTable(sorted string table):: 數據持久化到磁盤,排好序存儲的,Cassandra會把Memtable中的數據持久化到SSTable中,新的數據老是追加到文件末尾,一個列族一個SSTable文件table

 

寫操做一致性

一致性級別指定當多少個副本幾點成功寫入數據後,通知客戶端執行成功。最終一致性請求

一般使用Cassandra,咱們選擇QUORUM級別,表示有半數副本收到請求的時候,返回客戶端響應,這樣保證插入的數據,能夠確定被查詢到

 

 

 

讀操做一致性級別

 

 

QUORUM級別

QUORUM級別確保寫到指定QUORUM數量的節點,計算公式:

quorum = (sum_of_replication_factors / 2 ) + 1

假如如今有一個數據中心共3個副本節點,若是想確保讀寫一致性能夠使用下面公式:

(nodes_written + node_read) > replication_factor

相關文章
相關標籤/搜索