Token算法
Range數據庫
Partitoner服務器
用於在環內節點之間傳播狀態信息網絡
週期運行,每次在環中隨機挑選一個對象節點,發起會話數據結構
每次會話傳送三條消息函數
Phi增量故障檢測算法spa
· 進行寫操做時,首先要寫commit logexcel
· 只有操做被寫入 commit log 的數據,纔算寫入成功對象
· 當發生掉電,實例崩潰等問題的時候,可使用commit log 進行回覆blog
· 數據操做成功寫入到 commit log後,就開始寫入內存中的memtable
· memtable中的數據達到必定閾值後,就開始寫入硬盤中的 SSTable,而後內存中從新創建一個memtable接收下一批數據
· 上述刷寫過程是非阻塞的
· 查詢時先查詢memtable
SSTable:
· 起源於Google的Bigtable
· 墓碑: 刪除數據並非物理刪除,實際上打刪除標記,軟刪除
· 壓緊: 對用戶透明,數據庫本身控制。(墓碑打標記行刪除 / 重建索引)
· Bloomfilter(布隆過濾器):相比其餘的數據結構,Bloom Filter再空間和時間方面都有巨大的優點,Bloom Filter存儲空間和插入/查詢時間都是常數。另外,Hash函數相互之間沒有關係,方便由硬件並行實現,Bloom Filter不須要存儲元素自己,再某些對保密要求很是嚴格的場合有優點。
2) data:
3) saved_caches:
安裝JAVA環境
部署Cassandra安裝包
修改Cassandra配置文件,設置集羣名
規劃IP地址,設置做爲seed的IP
決定snitch
Cassandra還能夠支持多數據中心集羣
修改其它可能的配置
啓動Cassandra並加入集羣
cluster_name: 'cluster01'
num_tokens: 256
seeds: "192.168.1.100" --種子機
listen_address: 192.168.1.100
rpc_address: 192.168.1.100
rpc_port: 9160
rpc_keepalive: true
endpoint_snitch: SimpleSnitch --假設全部服務器都在一個機架
· Simple Snitch:經過IP地址判斷
· PropertyFileSnitch: 指定IP屬於哪一個數據中心,哪一個機架
建立keyspace時候指定
create keyspace excelsior with replication = {'class':'SimpleStrategy', 'replication_factor' : 3};
create keyspace "Excalibur" with replication = {'class':'NetworkTopologyStrategy','dc1':3,'dc2':2};