日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
詳解Cassandra數(shù)據(jù)庫(kù)的寫(xiě)操作

我們已經(jīng)開(kāi)始在OneSpot使用Cassandra來(lái)作為我們下一代的存儲(chǔ)引擎(使用一個(gè)EC2的機(jī)器集群代替一臺(tái)非常大的PostgreSQL機(jī)器),因此,之前幾周的時(shí)間我一直在使用Cassandra. 由于我本人是一個(gè)基礎(chǔ)設(shè)施方面的書(shū)***,并且堅(jiān)信需要理解系統(tǒng)堆棧的各個(gè)層面,因?yàn)槲议喿x了部分關(guān)于Cassandra如何工作的資料,并且想寫(xiě)出點(diǎn)總結(jié)以期對(duì)后來(lái)者有所幫助.由于Cassandra的寫(xiě)性能表現(xiàn)卓越這一點(diǎn)眾所周知,我認(rèn)為我的介紹應(yīng)該由此開(kāi)始.

十載專(zhuān)注成都網(wǎng)站制作,成都定制網(wǎng)頁(yè)設(shè)計(jì),個(gè)人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識(shí)、方案,網(wǎng)站設(shè)計(jì)流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),專(zhuān)注于成都定制網(wǎng)頁(yè)設(shè)計(jì),高端網(wǎng)頁(yè)制作,對(duì)成都假山制作等多個(gè)行業(yè),擁有豐富的網(wǎng)站營(yíng)銷(xiāo)經(jīng)驗(yàn)。

需要理解的***件事是,Cassandra***運(yùn)行在多臺(tái)機(jī)器上.據(jù)我所知,Twitter使用了一個(gè)45臺(tái)機(jī)器組成的集群.在一臺(tái)機(jī)器上運(yùn)行Cassandra可能不是很有意義,因?yàn)槟銓⑹](méi)有單點(diǎn)故障的系統(tǒng)的優(yōu)勢(shì).

客戶(hù)端向一個(gè)隨機(jī)的Cassandra節(jié)點(diǎn)發(fā)出一個(gè)寫(xiě)請(qǐng)求.這個(gè)節(jié)點(diǎn)作為代理往集群寫(xiě)入數(shù)據(jù).節(jié)點(diǎn)的集群存儲(chǔ)在一個(gè)節(jié)點(diǎn)”環(huán)”上,寫(xiě)會(huì)按照復(fù)制放置策略(replication placement strategy)復(fù)制到N個(gè)節(jié)點(diǎn)上.當(dāng)使用RackAwareStrategy策略時(shí),為了保證可靠性(reliability)與可用性(Availability), Cassandra會(huì)按照復(fù)制節(jié)點(diǎn)到當(dāng)前節(jié)點(diǎn)的距離將復(fù)制節(jié)點(diǎn)分為3個(gè)桶:與當(dāng)前節(jié)點(diǎn)位于同一機(jī)架、與當(dāng)前節(jié)點(diǎn)位于同一數(shù)據(jù)中心、或位于不同的數(shù)據(jù)中心.你配置了Cassandra寫(xiě)數(shù)據(jù)到N個(gè)節(jié)點(diǎn)來(lái)做冗余,Cassandra會(huì)將***份拷貝寫(xiě)入到此數(shù)據(jù)的主節(jié)點(diǎn),第二份拷貝到環(huán)上的位于另一個(gè)數(shù)據(jù)中心的節(jié)點(diǎn),剩余的其它拷貝到與代理節(jié)點(diǎn)位于同一個(gè)數(shù)據(jù)中心的機(jī)器上.這樣就可以確保單點(diǎn)故障不會(huì)導(dǎo)致整個(gè)集群不可用,即使在整個(gè)數(shù)據(jù)中心都不可用時(shí)集群仍然保持可用.

因此,寫(xiě)請(qǐng)求從你的客戶(hù)端出發(fā)到單一隨機(jī)節(jié)點(diǎn),此節(jié)點(diǎn)根據(jù)復(fù)制放置策略將寫(xiě)操作發(fā)送到N個(gè)不同的節(jié)點(diǎn).我沒(méi)有在此討論很多邊緣用例極端情況(節(jié)點(diǎn)宕機(jī)、集群中新增節(jié)點(diǎn)、等等),但是,節(jié)點(diǎn)需要等待N個(gè)節(jié)點(diǎn)返回成功并返回成功給客戶(hù)端.(此處的描述有問(wèn)題,Cassandra中,還有另外一個(gè)W的參數(shù),也就是需要等待幾份寫(xiě)拷貝成功才返回成功給客戶(hù)端,譯者加).

節(jié)點(diǎn)中的每一個(gè)都會(huì)以”RowMutation”消息的形式接收到此寫(xiě)請(qǐng)求.對(duì)于此消息,節(jié)點(diǎn)會(huì)采取以下兩種行動(dòng):

◆追加此變更到提交日志(Commit log)以滿(mǎn)足事務(wù)性目的

◆使用此變更修改一個(gè)內(nèi)存內(nèi)的Memtable 結(jié)構(gòu)

它的工作就此結(jié)束.這就是為什么Cassandra的寫(xiě)操作如此快的原因:最慢的部分就是追加變更日志到文件的操作.與關(guān)系型數(shù)據(jù)庫(kù)不同的是,Cassandra不會(huì)修改存儲(chǔ)在磁盤(pán)上的數(shù)據(jù),也不會(huì)去更新索引,因此沒(méi)有密集的同步磁盤(pán)操作來(lái)阻塞這次寫(xiě)操作.

還有多個(gè)定期發(fā)生的異步操作:

◆當(dāng)Memtable結(jié)構(gòu)數(shù)據(jù)滿(mǎn)的時(shí)候需要寫(xiě)入到SSTable,一個(gè)基于磁盤(pán)的結(jié)構(gòu),因此我們不會(huì)有太多只存在于內(nèi)存的數(shù)據(jù).

◆每個(gè)給定列族(ColumnFamily)的一組臨時(shí)的SSTable會(huì)被合并到一個(gè)大的SSTable.此時(shí),臨時(shí)的SSTable就沒(méi)有用了,它們會(huì)在將來(lái)的某個(gè)時(shí)間點(diǎn)被當(dāng)作垃圾回收掉.

還有大量的邊緣用例極端情況與復(fù)雜情況,我都沒(méi)有在此討論,我強(qiáng)烈建議大家至少要去閱讀下Cassandra維基(Wiki)中關(guān)于ArchitectureInternals與Operations的相關(guān)描述.分布式系統(tǒng)相當(dāng)復(fù)雜,Cassandra也不例外.

如果有發(fā)現(xiàn)錯(cuò)誤或想要添加更多細(xì)節(jié)請(qǐng)留下意見(jiàn),我不是Cassandra的開(kāi)發(fā)者,因此我確定一定有1-2處的錯(cuò)誤隱藏其中.

【編輯推薦】

  1. 詳解NoSQL數(shù)據(jù)庫(kù)Apache Cassandra的配置
  2. 漫談Cassandra客戶(hù)端的使用
  3. 詳解Cassandra數(shù)據(jù)模型
  4. 超越關(guān)系型數(shù)據(jù)庫(kù) pureXML技術(shù)應(yīng)用及展望
  5. 新興數(shù)據(jù)庫(kù)打破整個(gè)舊規(guī)則
  6. 探尋關(guān)系數(shù)據(jù)庫(kù)和ORM的***替代者

新聞名稱(chēng):詳解Cassandra數(shù)據(jù)庫(kù)的寫(xiě)操作
URL分享:http://m.5511xx.com/article/dpchsep.html