分布式存儲和計算系統(tǒng)_第1頁
分布式存儲和計算系統(tǒng)_第2頁
分布式存儲和計算系統(tǒng)_第3頁
分布式存儲和計算系統(tǒng)_第4頁
分布式存儲和計算系統(tǒng)_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

分布式存儲和計算系統(tǒng)第一頁,共62頁。返回MapReduceBigTableGoogle的三駕馬車GFS第二頁,共62頁。GFS簡介組件失效不再被認(rèn)為是意外,而是被看做正常的現(xiàn)象。常量監(jiān)視器,錯誤偵測,容錯以及自動恢復(fù)系統(tǒng)集成在系統(tǒng)中。文件非常巨大。大部分文件的修改,不是覆蓋原有數(shù)據(jù),而是在文件尾追加新數(shù)據(jù)。應(yīng)用程序和文件系統(tǒng)API的協(xié)同設(shè)計。第三頁,共62頁。GFS設(shè)計預(yù)期這個系統(tǒng)由許多廉價易損的普通組件組成。這個系統(tǒng)保存一定數(shù)量的大文件。負(fù)載中主要包含兩種讀操作:大規(guī)模的流式讀取和小規(guī)模隨機讀取。負(fù)載中還包括許多大規(guī)模的順序的寫操作,追加數(shù)據(jù)到文件尾部。系統(tǒng)必須高效的實現(xiàn)良好定義的多客戶端并行追加到一個文件的語意。高度可用的帶寬比低延遲更加重要。第四頁,共62頁。GFS架構(gòu)第五頁,共62頁。GFS單一主服務(wù)器主服務(wù)器可以通過全局的信息精確確定塊的位置以及進(jìn)行復(fù)制決定。主服務(wù)器保存三種主要類型的元數(shù)據(jù):文件和塊的命名空間,文件到塊的映射,以及每個塊副本的位置。主服務(wù)器執(zhí)行所有的名稱空間操作。另外,它管理整個系統(tǒng)的所有塊副本:它決定塊的位置,創(chuàng)建新塊和相應(yīng)的副本,協(xié)調(diào)多變的系統(tǒng)活動,保持塊被完全復(fù)制,均衡所有塊服務(wù)器之間的負(fù)載,回收沒有使用的存儲空間。第六頁,共62頁。GFS系統(tǒng)交互第七頁,共62頁。GFS創(chuàng)建、重新復(fù)制、負(fù)載均衡當(dāng)主服務(wù)器創(chuàng)建一個塊,會選擇哪里放置初始的空副本。新的副本放置在低于平均硬盤使用率的塊服務(wù)器。

限制每一個塊服務(wù)器上"近期"創(chuàng)建操作的數(shù)量。把塊分布在機架之間。一旦塊的可用副本數(shù)少于用戶指定的值,主服務(wù)器會重新復(fù)制它。主服務(wù)器周期性地對副本進(jìn)行負(fù)載均衡:它檢查當(dāng)前的副本分布情況,然后移動副本以得到更好的硬盤剩余空間以及負(fù)載的均衡。第八頁,共62頁。GFS垃圾回收及過期副本檢測文件刪除后,主服務(wù)器把文件改成一個包含刪除時間戳的隱藏的名字。在主服務(wù)器對命名空間進(jìn)行常規(guī)掃描時,物理刪除超過某個時間段的包含刪除時間戳的文件。在相似的對塊命名空間的常規(guī)掃描,主服務(wù)器找到孤兒塊(無法從任何文件到達(dá)的塊)并擦除它們的元數(shù)據(jù)。主服務(wù)器在周期的垃圾回收中移除所有的過期副本。無論何時主服務(wù)器獲得一個塊的新租約,它增加塊的版本號,然后通知當(dāng)前副本。主服務(wù)器和這些副本都把新的版本號記錄在它們的持久化存儲的狀態(tài)中。如果塊服務(wù)器失效,或者塊服務(wù)器當(dāng)機的時候錯過了一些操作,塊副本會過期。第九頁,共62頁。GFS容錯和診斷高可用性??焖倩謴?fù)。不管主服務(wù)器和塊服務(wù)器是如何關(guān)閉的,它們被設(shè)計為可以在數(shù)秒鐘內(nèi)恢復(fù)它們的狀態(tài)并啟動。

塊復(fù)制。每個塊被復(fù)制到不同機架上的不同的塊服務(wù)器上。主節(jié)點復(fù)制。為了可靠性主服務(wù)器狀態(tài)要被復(fù)制。它的操作日志和檢查點都要復(fù)制到多臺機器上。數(shù)據(jù)完整性。每個塊服務(wù)器利用校驗和來檢查存儲的數(shù)據(jù)是否損壞。塊被分為64KB的大小,每個有一個對應(yīng)的32位的校驗和。診斷工具。廣泛而詳盡的分析日志。第十頁,共62頁。MapReduce簡介MapReduce是一個編程模型,也是一個處理和生成超大數(shù)據(jù)集的算法模型的相關(guān)實現(xiàn)。用戶首先創(chuàng)建一個Map函數(shù)處理一個基于key/valuepair的數(shù)據(jù)集合,輸出中間的基于key/valuepair的數(shù)據(jù)集合;然后再創(chuàng)建一個Reduce函數(shù),用來合并所有的具有相同中間key值的中間value值。MapReduce架構(gòu)的程序能夠在大量的普通配置的計算機上實現(xiàn)并行化處理。第十一頁,共62頁。MapReduce一般算法第十二頁,共62頁。MapReduce編程模型第十三頁,共62頁。MapReduce一個例子舉例:計算一個大的文檔集合中每個單詞出現(xiàn)的次數(shù):map(Stringkey,Stringvalue)://key:documentname//value:documentcontents foreachwordwinvalue: EmitIntermediate(w,"1");reduce(Stringkey,Iteratorvalues)://key:aword//values:alistofcounts intresult=0; foreachvinvalues: result+=ParseInt(v); Emit(AsString(result));第十四頁,共62頁。MapReduce容錯worker故障。

master周期性的ping每個worker。如果在一個約定的時間范圍內(nèi)沒有收到worker返回的信息,master將把這個worker標(biāo)記為失效。所有由這個失效的worker完成的Map任務(wù)被重設(shè)為初始的空閑狀態(tài),之后這些任務(wù)就可以被安排給其他的worker。同樣的,worker失效時正在運行的Map或Reduce任務(wù)也將被重新置為空閑狀態(tài),等待重新調(diào)度。master故障master周期性的將當(dāng)前運行狀況寫入磁盤,即檢查點。如果這個master任務(wù)失效了,可以從最后一個檢查點開始啟動另一個master進(jìn)程。第十五頁,共62頁。MapReduce備用任務(wù)木桶效應(yīng)

在運算過程中,如果有一臺機器花了很長的時間才完成最后幾個Map或Reduce任務(wù),會導(dǎo)致MapReduce操作總的執(zhí)行時間超過預(yù)期。流程優(yōu)化當(dāng)一個MapReduce操作接近完成的時候,master調(diào)度備用任務(wù)進(jìn)程來執(zhí)行剩下的、處于處理中狀態(tài)的任務(wù)。無論是最初的執(zhí)行進(jìn)程、還是備用任務(wù)進(jìn)程完成了任務(wù),我們都把這個任務(wù)標(biāo)記成為已經(jīng)完成。第十六頁,共62頁。BigTable簡介分布式的結(jié)構(gòu)化數(shù)據(jù)存儲系統(tǒng)。被設(shè)計用來處理海量數(shù)據(jù):通常是分布在數(shù)千臺普通服務(wù)器上的PB級的數(shù)據(jù)。適用性廣泛、可擴展、高性能和高可用性。Google的很多項目使用Bigtable存儲數(shù)據(jù),包括Web索引、GoogleEarth、GoogleFinance。第十七頁,共62頁。BigTable數(shù)據(jù)模型稀疏的、分布式的、持久化存儲的多維度排序Map。Map的索引是行關(guān)鍵字、列關(guān)鍵字以及時間戳;Map中的每個value都是一個未經(jīng)解析的byte數(shù)組。(row:string,column:string,time:int64)->string應(yīng)用示例第十八頁,共62頁。BigTable數(shù)據(jù)模型行表中的行關(guān)鍵字可以是任意的字符串。對同一個行關(guān)鍵字的讀或者寫操作都是原子的。Bigtable通過行關(guān)鍵字的字典順序來組織數(shù)據(jù)。列族關(guān)鍵字組成的集合叫做“列族”。訪問控制、磁盤和內(nèi)存的使用統(tǒng)計都是在列族層面進(jìn)行的。時間戳在Bigtable中,表的每一個數(shù)據(jù)項都可以包含同一份數(shù)據(jù)的不同版本,不同版本的數(shù)據(jù)通過時間戳來索引。第十九頁,共62頁。BigTableAPI建立、刪除表及列族。修改集群、表和列族的元數(shù)據(jù)。寫入或者刪除Bigtable中的值。從每個行中查找值。遍歷表中的一個數(shù)據(jù)子集。第二十頁,共62頁。BigTable構(gòu)件Bigtable建立在其它的幾個Google基礎(chǔ)構(gòu)件之上。使用GFS存儲日志文件和數(shù)據(jù)文件。依賴集群管理系統(tǒng)來調(diào)度任務(wù)、管理共享的機器上的資源、處理機器的故障、以及監(jiān)視機器的狀態(tài)。內(nèi)部存儲數(shù)據(jù)的文件是GoogleSSTable格式的。SSTable是一個持久化的、排序的、不可更改的Map結(jié)構(gòu),而Map是一個key-value映射的數(shù)據(jù)結(jié)構(gòu),key和value的值都是任意的Byte串。BigTable還依賴一個高可用的、序列化的分布式鎖服務(wù)組件,叫做Chubby。第二十一頁,共62頁。BigTable組件Bigtable包括了三個主要的組件:鏈接到客戶程序中的庫、一個Master服務(wù)器和多個Tablet服務(wù)器。Master服務(wù)器主要負(fù)責(zé)以下工作:為Tablet服務(wù)器分配Tablets、檢測新加入的或者過期失效的Tablet服務(wù)器、對Tablet服務(wù)器進(jìn)行負(fù)載均衡、以及對保存在GFS上的文件進(jìn)行垃圾收集。除此之外,它還處理對模式的相關(guān)修改操作,例如建立表和列族。每個Tablet服務(wù)器都管理一個Tablet的集合(通常每個服務(wù)器有大約數(shù)十個至上千個Tablet)。每個Tablet服務(wù)器負(fù)責(zé)處理它所加載的Tablet的讀寫操作,以及在Tablets過大時,對其進(jìn)行分割。每個Tablet包含了某個范圍內(nèi)的行的所有相關(guān)數(shù)據(jù),每個Tablet的尺寸大約是100MB到200MB。第二十二頁,共62頁。BigTableTablet的位置使用一個三層的、類似B+樹的結(jié)構(gòu)存儲Tablet的位置信息。第二十三頁,共62頁。BigTableTablet服務(wù)第二十四頁,共62頁。返回HDFS體系結(jié)構(gòu)及關(guān)鍵運行機制HadoopVS.Google(分布式文件系統(tǒng))HadoopHadoop項目簡介第二十五頁,共62頁。Google云計算MapReduceBigTableGFSChubbyGFS-->HDFSMapReduce-->Hadoop

BigTable-->HBase

Apache的解決方案Hadoop項目簡介第二十六頁,共62頁。Apache的解決方案Hadoop項目簡介HDFS為了做到可靠性(reliability)創(chuàng)建了多份數(shù)據(jù)塊(datablocks)的復(fù)制(replicas),并將它們放置在服務(wù)器群的計算節(jié)點中(computenodes),MapReduce就可以在它們所在的節(jié)點上處理這些數(shù)據(jù)了。第二十七頁,共62頁。HDFS的體系結(jié)構(gòu)HDFS體系結(jié)構(gòu)NameNodeMaster。DataNodeChunksever。第二十八頁,共62頁。可靠性保障HDFS關(guān)鍵運行機制一個名字節(jié)點和多個數(shù)據(jù)節(jié)點數(shù)據(jù)復(fù)制(冗余機制)

--存放的位置(機架感知策略)故障檢測

--數(shù)據(jù)節(jié)點

心跳包(檢測是否宕機)

塊報告(安全模式下檢測)

數(shù)據(jù)完整性檢測(校驗和比較)--名字節(jié)點(日志文件,鏡像文件)空間回收機制第二十九頁,共62頁。寫文件流程HDFS關(guān)鍵運行機制客戶端緩存流水線復(fù)制并發(fā)寫控制流程:

客戶端把數(shù)據(jù)緩存到本地臨時文件夾。

臨時文件夾數(shù)據(jù)超過64M,客戶端聯(lián)系NameNode,NameNode分配DataNode,DataNode依照客戶端的位置被排列成一個有著最近物理距離和最小的序列。

與序列的第一個數(shù)據(jù)服務(wù)器建立Socket連接,發(fā)送請求頭,然后等待回應(yīng),依次下傳,客戶端得到回包,流水線建立成功。

正式發(fā)送數(shù)據(jù),以4K為大小傳送。第三十頁,共62頁。讀文件流程HDFS關(guān)鍵運行機制客戶端聯(lián)系NameNode,得到所有數(shù)據(jù)塊信息,以及數(shù)據(jù)塊對應(yīng)的所有數(shù)據(jù)服務(wù)器的位置信息。嘗試從某個數(shù)據(jù)塊對應(yīng)的一組數(shù)據(jù)服務(wù)器中選出一個,進(jìn)行連接(選取算法未加入相對位置的考慮)。數(shù)據(jù)被一個包一個包發(fā)送回客戶端,等到整個數(shù)據(jù)塊的數(shù)據(jù)都被讀取完了,就會斷開此鏈接,嘗試連接下一個數(shù)據(jù)塊對應(yīng)的數(shù)據(jù)服務(wù)器,整個流程,依次如此反復(fù),直到所有想讀的都讀取完了為止。第三十一頁,共62頁。技術(shù)架構(gòu)HadoopVS.Google數(shù)據(jù)結(jié)構(gòu)化管理組件:Hbase→BigTable。并行計算模型:MapReduce→MapReduce。分布式文件系統(tǒng):HDFS→GFS。Hadoop缺少分布式鎖服務(wù)Chubby。HBaseMapReduceHDFSBigTableMapReduceGFSHadoop云計算應(yīng)用ChubbyGoogle云計算應(yīng)用第三十二頁,共62頁。HDFS與GFS比較HadoopVS.Google中心服務(wù)器模式的差異。GFS:多臺物理服務(wù)器,選擇一臺對外服務(wù),損壞時可選擇另外一臺提供服務(wù)。HDFS:單一中心服務(wù)器模式,存在單點故障。原因:Hadoop缺少分布式鎖服務(wù)。安全模式的差異。HDFS具備安全模式。獲知數(shù)據(jù)塊副本狀態(tài),若副本不足,則拷貝副本至安全數(shù)目(如3個)GFS不具備安全模式。副本損壞處理:API讀取副本失敗時,Master負(fù)責(zé)發(fā)起拷貝任務(wù)。HDFS具備空間回收機制。文件刪除時,僅刪除目錄結(jié)構(gòu)實際數(shù)據(jù)的刪除在等待一段時間后實施優(yōu)點:便于恢復(fù)文件第三十三頁,共62頁。HDFS與GFS比較HadoopVS.Google子服務(wù)器管理模式差異。GFS:ChunkServer在Chubby中獲取獨占鎖表示其生存狀態(tài),Master通過輪詢這些獨占鎖獲知ChunkServer的生存狀態(tài)。HDFS:DataNode通過心跳的方式告知NameNode其生存狀態(tài)。GFS中,Master損壞時,替補服務(wù)器可以快速獲知ChunkServer的狀態(tài)。HDFS中,NameNode損壞后,NameNode恢復(fù)時需要花費一段時間獲知DataNode的狀態(tài)。

在添加數(shù)據(jù)存儲節(jié)點時,GFS的伸縮性較HDFS要好。原因:Hadoop缺乏分布式鎖服務(wù)。第三十四頁,共62頁。返回架構(gòu)數(shù)據(jù)復(fù)制、自動分片MongoDB簡介第三十五頁,共62頁。簡介MongoDB簡介分布式文檔存儲數(shù)據(jù)庫MongoDB是一個可擴展、高性能的下一代數(shù)據(jù)庫,由C++語言編寫,旨在為web應(yīng)用提供可擴展的高性能數(shù)據(jù)存儲解決方案。介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品。支持的數(shù)據(jù)結(jié)構(gòu)非常松散。類似json的bjson格式,可以存儲比較復(fù)雜的數(shù)據(jù)類型。支持的查詢語言非常強大。語法類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,支持對數(shù)據(jù)建立索引。第三十六頁,共62頁。功能特征MongoDB簡介面向集合存儲,易存儲對象類型的數(shù)據(jù)。模式自由。支持動態(tài)查詢。支持完全索引,包含內(nèi)部對象。支持復(fù)制和故障恢復(fù)。使用高效的二進(jìn)制數(shù)據(jù)存儲,包括大型對象(如視頻等)。自動處理碎片,以支持云計算層次的擴展性。支持RUBY,PYTHON,JAVA,C++,PHP等多種語言。文件存儲格式為BSON(一種JSON的擴展)??赏ㄟ^網(wǎng)絡(luò)訪問。第三十七頁,共62頁。適用場景MongoDB簡介網(wǎng)站數(shù)據(jù):Mongo非常適合實時的插入,更新與查詢,并具備網(wǎng)站實時數(shù)據(jù)存儲所需的復(fù)制及高度伸縮性。緩存:由于性能很高,Mongo也適合作為信息基礎(chǔ)設(shè)施的緩存層。在系統(tǒng)重啟之后,由Mongo搭建的持久化緩存層可以避免下層的數(shù)據(jù)源過載。大尺寸,低價值的數(shù)據(jù):使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫存儲一些數(shù)據(jù)時可能會比較昂貴,在此之前,很多時候程序員往往會選擇傳統(tǒng)的文件進(jìn)行存儲。高伸縮性的場景:Mongo非常適合由數(shù)十或數(shù)百臺服務(wù)器組成的數(shù)據(jù)庫。Mongo的路線圖中已經(jīng)包含對MapReduce引擎的內(nèi)置支持。用于對象及JSON數(shù)據(jù)的存儲:Mongo的BSON數(shù)據(jù)格式非常適合文檔化格式的存儲及查詢。第三十八頁,共62頁。架構(gòu)圖MongoDB架構(gòu)第三十九頁,共62頁。組件MongoDB架構(gòu)一個或多個分片,每個分片持有部分?jǐn)?shù)據(jù)(自動管理)。讀寫操作自動路由到合適的分片上。一個分片是一臺或多臺服務(wù)器,每臺機器持有相同數(shù)據(jù)的拷貝。同一時間只有一個主節(jié)點,如果主節(jié)點死掉了,其中一臺從節(jié)點自動接管為主節(jié)點。所有的寫操作和一致性讀操作都進(jìn)入主節(jié)點,而所有的最終一致性讀操作分布到所有從節(jié)點上。多臺配置服務(wù)器,其中每臺配置服務(wù)器持有表明數(shù)據(jù)位于哪個分片的元數(shù)據(jù)的拷貝。每個路由器都作為一個或多個客戶端的服務(wù)器。客戶端向路由器發(fā)起查詢和更新,路由器詢問配置服務(wù)器后將請求分發(fā)到合適的分片上??蛻舳耸怯脩魬?yīng)用程序的一部分,它使用自身語言的mongo客戶端驅(qū)動向路由器發(fā)起請求。第四十頁,共62頁。自動分片數(shù)據(jù)復(fù)制、自動分片第四十一頁,共62頁。自動復(fù)制使用master-slave方式實現(xiàn)數(shù)據(jù)的讀寫分離。master更新數(shù)據(jù)的同時,會自動的把數(shù)據(jù)復(fù)制到從slave。MongoDB提供了replicapairs模式啟動數(shù)據(jù)庫,以這種方式啟動后,數(shù)據(jù)庫會自動協(xié)商誰是master誰是slave。一旦一個數(shù)據(jù)庫服務(wù)器斷電,另一個會自動接管,并從那一刻起起為master。萬一另一個將來也出錯了,那么master狀態(tài)將會轉(zhuǎn)回給第一個服務(wù)器。數(shù)據(jù)復(fù)制、自動分片第四十二頁,共62頁。返回TairTaobaoTFS第四十三頁,共62頁。簡介TFS介紹一個高可擴展、高可用、高性能、面向互聯(lián)網(wǎng)服務(wù)的分布式文件系統(tǒng)。主要針對海量的非結(jié)構(gòu)化數(shù)據(jù)。構(gòu)筑在普通的Linux機器集群上,可為外部提供高可靠和高并發(fā)的存儲訪問。適用于海量小文件存儲。采用了HA架構(gòu)和平滑擴容,保證了整個文件系統(tǒng)的可用性和擴展性。扁平化的數(shù)據(jù)組織結(jié)構(gòu),可將文件名映射到文件的物理地址,簡化了文件的訪問流程,一定程度上為TFS提供了良好的讀寫性能。第四十四頁,共62頁。架構(gòu)TFS架構(gòu)第四十五頁,共62頁。NameServer功能TFS組件所有一級元數(shù)據(jù)的管理。負(fù)責(zé)文件到達(dá)DataServer的定位,寫文件塊的分配。數(shù)據(jù)更新一致性控制。DataSever管理。數(shù)據(jù)備份監(jiān)控,數(shù)據(jù)分布和垃圾回收。DataServer功能存儲、管理數(shù)據(jù)文件。處理客戶端文件訪問請求。復(fù)制、整理、備份數(shù)據(jù)文件。第四十六頁,共62頁。NameServer管理的一級元數(shù)據(jù)TFS組件第四十七頁,共62頁。平滑靈敏的負(fù)載策略TFS負(fù)載均衡策略讀寫流量負(fù)載均衡。復(fù)制、整理負(fù)載均衡。實時動態(tài)反饋參數(shù)加權(quán)平均。塊復(fù)制策略按塊復(fù)制。單個文件損壞的自動恢復(fù)功能。塊分布均衡策略DataServer主機間的均衡。DataServer進(jìn)程間的均衡。第四十八頁,共62頁。加入集群TFS平滑擴展TFS集群容量不足時,只需將新的機器部署好應(yīng)用程序以后,即可加入到運行中的TFS集群。TFS會根據(jù)容量的比率,自動選擇寫入新數(shù)據(jù)到新服務(wù)器。TFS會在適當(dāng)?shù)臅r候?qū)λ械臄?shù)據(jù)服務(wù)器進(jìn)行數(shù)據(jù)均衡。退出集群數(shù)據(jù)服務(wù)器的退出不影響TFS服務(wù)。TFS檢測到DS退出后,會針對該DS擁有的數(shù)據(jù)做復(fù)制。TFS重新均衡數(shù)據(jù)。第四十九頁,共62頁。集群容錯TFS容錯機制TFS可以配置主輔集群,一般主輔集群會存放在兩個不同的機房。主集群提供所有功能,輔集群只提供讀。主集群會把所有操作重放到輔集群。這樣既提供了負(fù)載均衡,又可以在主集群機房出現(xiàn)異常的情況不會中斷服務(wù)或者丟失數(shù)據(jù)。NameServer容錯NameServer采用了HA結(jié)構(gòu),一主一備,主NameServer上的操作會重放至備NameServer。NameServer和DataServer之間有定時的心跳機制,DataServer會把自己擁有的Block發(fā)送給NameServer。NameServer會根據(jù)這些信息重建DataServer和Block的關(guān)系。DataServer容錯TFS采用Block存儲多份的方式來實現(xiàn)DataServer的容錯。每一個Block會在TFS中存在多份,一般為3份,并且分布在不同網(wǎng)段的不同DataServer上。第五十頁,共62頁。文件命名規(guī)則TFS文件名的規(guī)則第五十一頁,共62頁。寫流程TFS讀寫流程第五十二頁,共62頁。讀流程TFS讀寫流程獲得BlockID和。獲取dataserver地址。請求文件。第五十三頁,共62頁。簡介Tair介紹由淘寶自主開發(fā)的一個分布式key/value存儲引擎。分為持久化和非持久化兩種使用方式。非持久化的tair可以看成是一個分布式緩存。Tair除了普通Key/Value系統(tǒng)提供的功能,比如get、put、delete以及批量接口外,還有一些附加的實用功能,包括:Version支持原子計數(shù)器Item支持多備份支持。第五十四頁,共62頁。特性Tair介紹Version支持。Tair中的每個數(shù)據(jù)都包含版本號,版本號在每次更新后都會遞增。這個特性有助于防止由于數(shù)據(jù)的并發(fā)更新導(dǎo)致的問題。原子計數(shù)器。Tair從服務(wù)器端支持原子的計數(shù)器操作,這使得Tair成為一個簡單易用的分布式計數(shù)器。Item支持。Tair還支持將value視為一個item數(shù)組,對value中的部分item進(jìn)行操作。比如有個key的value為[1,2,3,4,5],我們可以只獲取前兩個item

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論