在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)庫(kù)/ Cassandra的架構(gòu)
Cassandra批量
Cassandra與HBase比較(區(qū)別)
Cassandra截?cái)啾?/span>
Cassandra刪除鍵空間
Cassandra刪除索引
Cassandra是什么?
Cassandra創(chuàng)建表
Cassandra數(shù)據(jù)類(lèi)型
Cassandra修改鍵空間
Cassandra刪除表
Cassandra讀取數(shù)據(jù)
Cassandra數(shù)據(jù)模型
Cassandra教程
Cassandra刪除數(shù)據(jù)記錄
Cassandra更新數(shù)據(jù)
Cassandra修改表
Cassandra安裝與配置
Cassandra插入數(shù)據(jù)
Cassandra歷史
Cassandra的特點(diǎn)
Cassandra創(chuàng)建索引
Cassandra創(chuàng)建鍵空間(Keyspace)
Cassandra應(yīng)用場(chǎng)景(案例)
Cassandra與關(guān)系數(shù)據(jù)庫(kù)比較(區(qū)別)
Cassandra數(shù)據(jù)類(lèi)型
Cassandra集合
Cassandra的架構(gòu)
Cassandra CQLsh

Cassandra的架構(gòu)

Cassandra旨在處理多個(gè)節(jié)點(diǎn)之間的大數(shù)據(jù)工作負(fù)載,而無(wú)需擔(dān)心單點(diǎn)故障。 它在其節(jié)點(diǎn)之間具有對(duì)等分布式系統(tǒng),數(shù)據(jù)分布在集群中的所有節(jié)點(diǎn)上。

  • 在Cassandra中,每個(gè)節(jié)點(diǎn)是獨(dú)立的,同時(shí)與其他節(jié)點(diǎn)互連。 集群中的所有節(jié)點(diǎn)都扮演著相同的角色。
  • 集群中的每個(gè)節(jié)點(diǎn)都可以接受讀取和寫(xiě)入請(qǐng)求,而不管數(shù)據(jù)實(shí)際位于集群中的位置。
  • 在一個(gè)節(jié)點(diǎn)發(fā)生故障的情況下,可以從網(wǎng)絡(luò)中的其他節(jié)點(diǎn)提供讀/寫(xiě)請(qǐng)求。

Cassandra中的數(shù)據(jù)復(fù)制

在Cassandra中,集群中的節(jié)點(diǎn)作為給定數(shù)據(jù)片段的副本。 如果某些節(jié)點(diǎn)以超時(shí)值響應(yīng),Cassandra會(huì)將最新的值返回給客戶(hù)端。 返回最新值后,Cassandra會(huì)在后臺(tái)執(zhí)行讀取修復(fù),以更新舊值。

請(qǐng)參閱以下圖示,以了解Cassandra如何在集群中的節(jié)點(diǎn)之間使用數(shù)據(jù)復(fù)制的原理圖,以確保沒(méi)有單點(diǎn)故障。

Cassandra的組成部分

Cassandra的主要組成部分主要有:

  • 節(jié)點(diǎn)(Node):Cassandra節(jié)點(diǎn)是存儲(chǔ)數(shù)據(jù)的地方。
  • 數(shù)據(jù)中心(Data center):數(shù)據(jù)中心是相關(guān)節(jié)點(diǎn)的集合。
  • 集群(Cluster):集群是包含一個(gè)或多個(gè)數(shù)據(jù)中心的組件。
  • 提交日志(Commit log):在Cassandra中,提交日志是一個(gè)崩潰恢復(fù)機(jī)制。 每個(gè)寫(xiě)入操作都將寫(xiě)入提交日志。
  • 存儲(chǔ)表(Mem-table):內(nèi)存表是內(nèi)存駐留的數(shù)據(jù)結(jié)構(gòu)。 提交日志后,數(shù)據(jù)將被寫(xiě)入內(nèi)存表。 有時(shí),對(duì)于單列系列,將有多個(gè)內(nèi)容表。
  • SSTable:當(dāng)內(nèi)容達(dá)到閾值時(shí),它是從內(nèi)存表刷新數(shù)據(jù)的磁盤(pán)文件。
  • 布魯姆過(guò)濾器(Bloom filter):這些只是快速,非確定性的,用于測(cè)試元素是否是集合成員的算法。 它是一種特殊的緩存。 每次查詢(xún)后都會(huì)訪(fǎng)問(wèn)Bloom過(guò)濾器。

Cassandra查詢(xún)語(yǔ)言

Cassandra查詢(xún)語(yǔ)言(CQL)用于通過(guò)其節(jié)點(diǎn)訪(fǎng)問(wèn)Cassandra。 CQL將數(shù)據(jù)庫(kù)(Keyspace)視為表的容器。 程序員使用cqlsh:提示使用CQL或單獨(dú)的應(yīng)用程序語(yǔ)言驅(qū)動(dòng)程序。
客戶(hù)端可以接近任何節(jié)點(diǎn)進(jìn)行讀寫(xiě)操作。 該節(jié)點(diǎn)(協(xié)調(diào)器)在客戶(hù)機(jī)和保存數(shù)據(jù)的節(jié)點(diǎn)之間扮演代理。

寫(xiě)操作

節(jié)點(diǎn)的每個(gè)寫(xiě)入活動(dòng)都由寫(xiě)入節(jié)點(diǎn)的提交日志捕獲。 之后,數(shù)據(jù)將被捕獲并存儲(chǔ)在內(nèi)存表中。 每當(dāng)內(nèi)存表已滿(mǎn)時(shí),數(shù)據(jù)將被寫(xiě)入SStable數(shù)據(jù)文件。 所有寫(xiě)入在整個(gè)集群中自動(dòng)分區(qū)和復(fù)制。 Cassandra定期整合SSTables,丟棄不必要的數(shù)據(jù)。

讀操作

在讀操作中,Cassandra從mem-table中獲取值,并檢查bloom過(guò)濾器以找到包含所需數(shù)據(jù)的適當(dāng)SSTable。

有三種類(lèi)型的讀請(qǐng)求被協(xié)調(diào)者發(fā)送給副本。

  • 直接請(qǐng)求
  • 摘要要求
  • 讀修復(fù)請(qǐng)求

協(xié)調(diào)器發(fā)送的直接請(qǐng)求到副本中的一個(gè)。 之后,協(xié)調(diào)器將摘要請(qǐng)求發(fā)送到由一致性級(jí)別指定的副本數(shù),并檢查返回的數(shù)據(jù)是否是更新的數(shù)據(jù)。

之后,協(xié)調(diào)器將所有剩余的副本發(fā)送摘要請(qǐng)求。 如果任何節(jié)點(diǎn)發(fā)出過(guò)期值,后臺(tái)讀修復(fù)請(qǐng)求將更新該數(shù)據(jù)。 這個(gè)過(guò)程稱(chēng)為讀修復(fù)機(jī)制。