• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      面向云存儲(chǔ)的非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)研究

      2015-05-30 10:48:04王存宇等
      計(jì)算機(jī)時(shí)代 2015年5期
      關(guān)鍵詞:云存儲(chǔ)

      王存宇等

      摘 要: 云存儲(chǔ)是網(wǎng)格、并行和分布式計(jì)算等眾多技術(shù)發(fā)展和延伸,云存儲(chǔ)實(shí)現(xiàn)了存儲(chǔ)的完全虛擬化,提供更強(qiáng)大的存儲(chǔ)及共享功能[1]。非機(jī)構(gòu)化數(shù)據(jù)包括文本、圖像、音頻、視頻、PDF、電子表格等。非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)通常有兩種方式,一種是使用文件系統(tǒng)以文件的方式存儲(chǔ),將文件的路徑或者鏈接存儲(chǔ)在關(guān)系型數(shù)據(jù)庫表中;另一種是將這些數(shù)據(jù)存儲(chǔ)在傳統(tǒng)的數(shù)據(jù)庫表的大對(duì)象字段中。文章主要研究非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)方式,結(jié)合非結(jié)構(gòu)化數(shù)據(jù)的特點(diǎn),云存儲(chǔ)的優(yōu)勢以及MongoDB的數(shù)據(jù)存儲(chǔ)特性,提出非結(jié)構(gòu)化數(shù)據(jù)云存儲(chǔ)的必要性。

      關(guān)鍵詞: 云存儲(chǔ); 非結(jié)構(gòu)化數(shù)據(jù); MongoDB

      中圖分類號(hào):TP399 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2015)05-13-03

      Abstract: Cloud storage is the development and extension of a number of technologies, such as grid, parallel and distributed computing. The storage virtualization has been completely realized to provide more powerful storage and sharing functions. Unstructured data is including text, image, audio, video, PDF, spreadsheet, etc. Typically, there are two ways to store unstructured data, the first way is to store it as a file, and store the path or the link to the file in the table of relational database, and the other way is to store it in the Blob field in table of traditional relational database. This paper mainly studies the ways to store unstructured data, combined with the characteristics of unstructured data, the advantages of cloud storage and the storage characteristics of MongoDB, proposes the necessity of storing unstructured data in cloud.

      Key words: cloud storage; unstructureddata; MongoDB

      0 引言

      隨著社會(huì)信息化進(jìn)程的不斷加快,網(wǎng)絡(luò)中的數(shù)據(jù)量變得龐大,原有的數(shù)據(jù)處理方式已經(jīng)不能滿足現(xiàn)階段人們對(duì)于數(shù)據(jù)處理的高要求。所以云計(jì)算和云存儲(chǔ)在這種環(huán)境下應(yīng)運(yùn)而生,這加快了大規(guī)模數(shù)據(jù)的處理速度,增加了大規(guī)模數(shù)據(jù)的存儲(chǔ)量。而現(xiàn)階段由于數(shù)據(jù)結(jié)構(gòu)化過于受限于人工處理,非結(jié)構(gòu)化數(shù)據(jù)的增長速度遠(yuǎn)遠(yuǎn)大于結(jié)構(gòu)化數(shù)據(jù)。所以對(duì)于非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)研究將非常有意義。

      1 分布式存儲(chǔ)技術(shù)介紹

      1.1 什么是分布式存儲(chǔ)技術(shù)

      分布式存儲(chǔ)系統(tǒng)是大量普通PC服務(wù)器通過Internet互聯(lián),對(duì)外作為一個(gè)整體提供存儲(chǔ)服務(wù)。

      1.2 分布式存儲(chǔ)系統(tǒng)中數(shù)據(jù)如何分布

      分布式系統(tǒng)要解決的主要問題是數(shù)據(jù)分布。如何將數(shù)據(jù)均勻分布到多個(gè)存儲(chǔ)服務(wù)器節(jié)點(diǎn)中,這些分布的數(shù)據(jù)要保證可靠性和可用性,需要將數(shù)據(jù)復(fù)制到多個(gè)副本。我們要做的就是要保證多個(gè)副本之間的數(shù)據(jù)一致性。

      一般來說,分布式存儲(chǔ)系統(tǒng)會(huì)保存多份數(shù)據(jù)在不同的服務(wù)器上,當(dāng)其中一份數(shù)據(jù)在服務(wù)器上發(fā)生故障時(shí),能通過其他的副本繼續(xù)提供服務(wù)。其中一個(gè)副本為主副本,其他副本為備份副本,通常操作方法為:數(shù)據(jù)寫入到主副本,由主副本確定操作順序并復(fù)制到其他副本。主要的操作方法有兩種:強(qiáng)同步復(fù)制副本和異步復(fù)制副本。

      1.2.1 強(qiáng)同步復(fù)制副本

      客戶端將寫請(qǐng)求發(fā)送給主副本,主副本將寫請(qǐng)求復(fù)制到其他備份副本中和,常見的做法是同步操作日志。主副本首先將操作日志同步到備份副本,備份副本回放操作日志,完成后通知主副本。接著,主副本修改本服務(wù)器,等到所有的操作都完成后通知客戶端寫成功。這種要求主、備同步成功才可以返回給客戶端寫成功的協(xié)議稱作強(qiáng)同步協(xié)議。如圖1所示:W1寫請(qǐng)求發(fā)給主副本;W2主副本將寫請(qǐng)求同步給副本;W3備份副本通知主副本同步成功;W4主副本返回客戶端寫成功。

      實(shí)現(xiàn)強(qiáng)同步復(fù)制時(shí),主副本可以將操作日志并發(fā)的發(fā)給所有備份副本并等待回復(fù),只要有一個(gè)備份副本返回成功就可以回復(fù)客戶端操作成功。其優(yōu)點(diǎn)為:如果主副本出現(xiàn)故障,至少有一個(gè)備份副本擁有完整的數(shù)據(jù),分布式存儲(chǔ)系統(tǒng)可以自動(dòng)地將服務(wù)切換到最新的備份副本,不用擔(dān)心數(shù)據(jù)的丟失。

      1.2.2 異步復(fù)制副本

      與強(qiáng)同步對(duì)應(yīng)的復(fù)制方式就是異步復(fù)制。在這種復(fù)制模式下,主副本不需要等待備份副本的回應(yīng),只需要本地修改成功就可以告知客戶端操作成功。其優(yōu)點(diǎn)在于系統(tǒng)的可用性較好,但是一致性較差,如果主副本發(fā)生不可恢復(fù)性故障,可能丟失最后一部分更新操作[1]。

      2 非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)方式

      非結(jié)構(gòu)化數(shù)據(jù)具有如下五個(gè)特點(diǎn):第一,存儲(chǔ)方式不統(tǒng)一,通常情況下,用戶各自管理自己的非結(jié)構(gòu)化數(shù)據(jù),包括結(jié)構(gòu)化的數(shù)據(jù)管理、FTP以及傳統(tǒng)的紙質(zhì)資料管理等多種方式;第二,非結(jié)構(gòu)化數(shù)據(jù)格式多樣化,如Word、Excel、PDF、JPEG圖等等;第三,業(yè)務(wù)流程多樣,非結(jié)構(gòu)數(shù)據(jù)處理涉及的流程主要有上傳下載、打印掃描、系統(tǒng)內(nèi)部流傳等;第四,非結(jié)構(gòu)化數(shù)據(jù)難以標(biāo)準(zhǔn)化,相對(duì)結(jié)構(gòu)化數(shù)據(jù),也更難理解,所以在存儲(chǔ)、檢索、發(fā)布以及利用上需要更加智能的IT技術(shù),比如內(nèi)容保護(hù)、知識(shí)挖掘、智能檢索、海量存儲(chǔ)等;第五,非結(jié)構(gòu)化數(shù)據(jù)遍布于異構(gòu)系統(tǒng)中,信息量非常大,尤其是多媒體數(shù)據(jù),從信息整合的角度分析,信息需要集成。基于上述五點(diǎn),存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù)在技術(shù)上是一項(xiàng)巨大的挑戰(zhàn)。目前對(duì)非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)方式主要有如下三種:文件系統(tǒng)存儲(chǔ)、數(shù)據(jù)庫存儲(chǔ)以及數(shù)據(jù)庫與文件系統(tǒng)結(jié)合存儲(chǔ)的方式。

      2.1 文件系統(tǒng)存儲(chǔ)方式

      文件系統(tǒng)存儲(chǔ)方式通過文件系統(tǒng)直接把數(shù)據(jù)存儲(chǔ)在文件服務(wù)器中。數(shù)據(jù)資源以文件的形式存放在計(jì)算機(jī)的特定目錄下,僅僅通過人工對(duì)文件夾進(jìn)行簡單的分類,所以數(shù)據(jù)的存儲(chǔ)通常是無序的。需要訪問數(shù)據(jù)時(shí),應(yīng)用程序直接通過文件存儲(chǔ)路徑讀取文件。早啟的計(jì)算機(jī)對(duì)數(shù)據(jù)存儲(chǔ)要求簡單,文件系統(tǒng)可以滿足數(shù)據(jù)的管理要求。

      隨著計(jì)算機(jī)技術(shù)的發(fā)展,計(jì)算機(jī)的應(yīng)用領(lǐng)域擴(kuò)展,數(shù)據(jù)不僅類型變的多樣,數(shù)據(jù)量也迅速積累、增長,文件系統(tǒng)提供的數(shù)據(jù)存儲(chǔ)能力已經(jīng)無法滿足應(yīng)用的需求。文件系統(tǒng)存儲(chǔ)方式無法更好的解決根據(jù)屬性對(duì)數(shù)據(jù)進(jìn)行索引、查找、排序的問題,通常需要程序進(jìn)行定制[3]。

      2.2 數(shù)據(jù)庫存儲(chǔ)方式

      關(guān)系數(shù)據(jù)庫自出現(xiàn)以來,功能不斷發(fā)展。目前大多數(shù)應(yīng)用系統(tǒng)中的非結(jié)構(gòu)化數(shù)據(jù)都是以二進(jìn)制的格式存儲(chǔ)在關(guān)系型數(shù)據(jù)庫的BLOB字段中。用戶直接向數(shù)據(jù)庫發(fā)送請(qǐng)求進(jìn)行數(shù)據(jù)操作。但是存儲(chǔ)在BLOB字段中有一些缺點(diǎn):一是非結(jié)構(gòu)化數(shù)據(jù)文件大,隨著數(shù)據(jù)量的不斷增大,會(huì)導(dǎo)致關(guān)系型數(shù)據(jù)庫存儲(chǔ)量迅速膨脹,影響數(shù)據(jù)庫性能,進(jìn)而使得整個(gè)應(yīng)用系統(tǒng)的性能下降;二是各應(yīng)用系統(tǒng)之間相對(duì)封閉和獨(dú)立,其他應(yīng)用無法共享相關(guān)文檔資料。

      關(guān)系型數(shù)據(jù)庫是針對(duì)結(jié)構(gòu)化數(shù)據(jù)的處理而產(chǎn)生的,無法很好地滿足現(xiàn)在網(wǎng)絡(luò)環(huán)境下對(duì)于非結(jié)構(gòu)化數(shù)據(jù)的處理要求,例如數(shù)據(jù)的全文檢索就顯得力不從心。

      多媒體數(shù)據(jù)包含多種信息類型,數(shù)據(jù)格式的特殊性帶來了數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)和存取處理的差別。多媒體數(shù)據(jù)庫隨需要應(yīng)運(yùn)而生。多媒體數(shù)據(jù)庫結(jié)合了數(shù)據(jù)庫技術(shù)和多媒體技術(shù),繼承了傳統(tǒng)關(guān)系數(shù)據(jù)庫的優(yōu)點(diǎn),其作為一種全新的數(shù)據(jù)系統(tǒng),可有效實(shí)現(xiàn)多媒體數(shù)據(jù)的存儲(chǔ)檢索。

      非結(jié)構(gòu)化數(shù)據(jù)庫是基于網(wǎng)絡(luò)應(yīng)用的新型數(shù)據(jù)庫,作為結(jié)構(gòu)化數(shù)據(jù)庫的補(bǔ)充,可以表達(dá)復(fù)雜的嵌套,支持更多的數(shù)據(jù)類型。關(guān)系數(shù)據(jù)庫限制了數(shù)據(jù)長度且改寫不方便,而非結(jié)構(gòu)化數(shù)據(jù)庫支持重復(fù)字段,變長記錄可由若干重復(fù)的字段組成,每個(gè)字段又可由若干可重復(fù)的子字段組成。非結(jié)構(gòu)化數(shù)據(jù)庫概括而言,就是字段數(shù)和字段長度可變的數(shù)據(jù)庫,在處理非結(jié)構(gòu)化信息方面有著傳統(tǒng)關(guān)系型數(shù)據(jù)庫無法與之相比的優(yōu)勢。

      2.3 數(shù)據(jù)庫與文件系統(tǒng)結(jié)合存儲(chǔ)方式

      數(shù)據(jù)庫與文件系統(tǒng)相結(jié)合的模式是將非結(jié)構(gòu)化數(shù)據(jù)以文件的形式存放在計(jì)算機(jī)中,數(shù)據(jù)文件的存儲(chǔ)路徑存放在數(shù)據(jù)庫中。此種方式下非結(jié)構(gòu)化數(shù)據(jù)源文件存放在的文件系統(tǒng)中,便于數(shù)據(jù)的瀏覽、傳遞和更改。而非結(jié)構(gòu)化數(shù)據(jù)文件的屬性則采用數(shù)據(jù)庫中的數(shù)據(jù)表字段進(jìn)行表述,方便數(shù)據(jù)的檢索、分類、查找,有序地存儲(chǔ)了數(shù)據(jù)文件。內(nèi)容管理系統(tǒng)便是數(shù)據(jù)庫與文件系統(tǒng)相結(jié)合模式的典型應(yīng)用。內(nèi)容的含義比數(shù)據(jù)更為廣泛,“內(nèi)容”強(qiáng)調(diào)對(duì)象,可以是任何結(jié)構(gòu)的數(shù)據(jù)類型,不僅包含了結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化信息,還涉及到知識(shí)??梢哉f,內(nèi)容是一個(gè)比數(shù)據(jù)、文檔和信息更加全面的概念,是對(duì)所有結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)及信息的聚合。內(nèi)容管理側(cè)重于管理半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。在研究數(shù)據(jù)存儲(chǔ)方式的基礎(chǔ)上,內(nèi)容管理還致力于對(duì)象的處理過程,例如收集、存儲(chǔ)、檢索、分析、更新、傳遞等,以便將內(nèi)容能夠及時(shí)準(zhǔn)確的傳遞到正確的地點(diǎn)和用戶。內(nèi)容管理是數(shù)據(jù)管理新的發(fā)展方向。

      非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)技術(shù)與數(shù)據(jù)庫的發(fā)展密切相關(guān),更與文件系統(tǒng)及其存儲(chǔ)技術(shù)的的發(fā)展密不可分。設(shè)計(jì)無限大的存儲(chǔ)空間、無限制的I/O帶寬和更高的性價(jià)比的理想存儲(chǔ)系統(tǒng)是緩解存儲(chǔ)壓力的總體目標(biāo)。云存儲(chǔ)技術(shù)發(fā)展結(jié)合各種存儲(chǔ)技術(shù)應(yīng)用的特點(diǎn),在吞吐量、冗余、容錯(cuò)、讀寫分布、數(shù)據(jù)劃分、負(fù)載均衡等特性方面進(jìn)行技術(shù)提升,并綜合多種存儲(chǔ)技術(shù)適應(yīng)復(fù)雜的不同種類的數(shù)據(jù)存儲(chǔ)需求[4]。

      3 MongoDB

      MongoDB是lOgen公司研發(fā)的面向文檔 開源的NoSQL數(shù)據(jù)庫系統(tǒng),用C++語言編寫,是當(dāng)前最流行的NoSQL數(shù)據(jù)庫。它提供一種強(qiáng)大、靈活、可擴(kuò)展的數(shù)據(jù)存儲(chǔ)方式。

      3.1 MongoDB數(shù)據(jù)模型

      一個(gè)MongoDB系統(tǒng)由多個(gè)數(shù)據(jù)庫組成,每個(gè)數(shù)據(jù)庫由一組集合組成,每個(gè)集合由任意個(gè)文檔組成,而文檔由一系列字段組成,每個(gè)字段是一個(gè)鍵值對(duì),其中鍵是字段名稱,值為對(duì)應(yīng)的屬性值,數(shù)據(jù)模型如圖2所示。MongoDB的集合類似關(guān)系型數(shù)據(jù)庫中的表,用戶不用預(yù)先定義一個(gè)集合的字段結(jié)構(gòu),可以存儲(chǔ)不同結(jié)構(gòu)的文檔在同一個(gè)集合,在數(shù)據(jù)庫運(yùn)行時(shí),可以隨時(shí)動(dòng)態(tài)地添加或刪除文檔的字段。MongoDB的文檔使用BSON結(jié)構(gòu),一個(gè)文檔對(duì)應(yīng)一個(gè)BSON對(duì)象,包含多個(gè)鍵值對(duì),BSON是一種二進(jìn)制序列化的類JSON數(shù)據(jù)交換語言。它以二進(jìn)制字節(jié)的形式存儲(chǔ)鍵值對(duì),鍵為字符串格式,值可以為任意數(shù)據(jù)類型,除了基本的整數(shù)、浮點(diǎn)數(shù)、字符串、日期等,還可以是數(shù)組或鍵值對(duì)。

      MongoDB的文檔采用BSON的二進(jìn)制結(jié)構(gòu),可以節(jié)省存儲(chǔ)空間,BSON格式的存儲(chǔ)效率在最壞的情況下也比JSON做好情況下的高。除此之外,BSON還支持鍵值對(duì)、數(shù)組這類的復(fù)雜數(shù)據(jù)結(jié)構(gòu),使得MongoDB的文檔可以嵌套子文檔或者數(shù)組,如此,MongoDB就不用像關(guān)系型數(shù)據(jù)庫那樣需要依靠外鍵關(guān)聯(lián)其他的集合,而只需要設(shè)計(jì)一個(gè)集合,提高了數(shù)據(jù)庫的性能。在某些情況下,BSON會(huì)犧牲額外的存儲(chǔ)空間換取更高的傳輸速度。下面代碼為一個(gè)典型的BSON對(duì)象。

      {

      Name:”Jack”,

      Address:{city:”Hangzhou”,state:”China”},

      Likes:[‘Bascketball,Music,F(xiàn)ootball],

      Grade:[{lesson:”Computer”,score:99},{lesson:”math”,score:88}]

      }

      3.2 MongoDB特性分析

      MongoDB擴(kuò)展了關(guān)系型數(shù)據(jù)庫的眾多功能,如輔助索引、分片、復(fù)制等。與其他NoSQL數(shù)據(jù)庫不同的是,MongoDB還具有建立索引、使用聚合等功能,在完成這些功能的同時(shí),MongoDB并未犧牲速度。MongoDB的主要特性如圖3所示。

      [無模式][非關(guān)系型][面向文檔的數(shù)據(jù)存儲(chǔ)] [可擴(kuò)展][數(shù)據(jù)分片][負(fù)載均衡][支持海量

      數(shù)據(jù)] [功能豐富][索引][聚合][JavaScript][固定集合] [高性能][空間預(yù)分配][內(nèi)存映射][非事務(wù)性] [易管理][動(dòng)態(tài)集群][Server自治機(jī)構(gòu)][自動(dòng)故障

      轉(zhuǎn)移]

      圖3 MongoDB特性

      ⑴ 豐富的數(shù)據(jù)類:MongoDB是面向文檔的數(shù)據(jù)庫,為了獲得更加靈活的橫向擴(kuò)展性,MongoDB拋棄關(guān)系存儲(chǔ)模型。它是無模式的,文檔中的字段不用事先定義,也不是一成不變的,應(yīng)用層可以很容易地向文檔中添加字段,更改數(shù)據(jù)模型。

      ⑵ 容易擴(kuò)展:MongoDB在設(shè)計(jì)之初就考慮到數(shù)據(jù)庫擴(kuò)展的問題,無模式的數(shù)據(jù)模型可實(shí)現(xiàn)服務(wù)器之間的自動(dòng)分割。通過MongoDB的自動(dòng)分片機(jī)制,可以動(dòng)態(tài)實(shí)現(xiàn)集群中數(shù)據(jù)的均衡負(fù)載。

      ⑶ 功能豐富:支持輔助索引、存儲(chǔ)JavaScript和MapReduce等其他獨(dú)特功能。

      ⑷ 卓越的性能:MongoDB中文檔記錄是可以動(dòng)態(tài)擴(kuò)充,預(yù)先分配數(shù)據(jù)文件,用空間換取穩(wěn)定的性能。默認(rèn)情況下,存儲(chǔ)引擎配置了內(nèi)存映射文件,管理內(nèi)存的工作交由操作系統(tǒng)處理。

      ⑸ 管理簡便:MongoDB采用復(fù)制集機(jī)制提升系統(tǒng)的可靠性,盡可能讓服務(wù)器進(jìn)行自動(dòng)配置。MongoDB的核心是文檔,每個(gè)文檔中的字段名和值有序地存放在一起,文檔可以比喻成關(guān)系型數(shù)據(jù)庫中的元組。集合類似于關(guān)系數(shù)據(jù)庫中的表,一個(gè)集合中包含若干個(gè)文檔,多個(gè)集合構(gòu)成一個(gè)數(shù)據(jù)庫,一個(gè)MongoDB的實(shí)例創(chuàng)建多個(gè)相互獨(dú)立的數(shù)據(jù)庫[5-6]。

      3.3 MongoDB分布式存儲(chǔ)架構(gòu)

      MongoDB復(fù)雜數(shù)據(jù)的存儲(chǔ)、管理和出錯(cuò)處理,它是一個(gè)高度容錯(cuò)的分布式存儲(chǔ)系統(tǒng),適合用于大規(guī)模非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ),部署在大規(guī)模的集群上,系統(tǒng)擴(kuò)展能力強(qiáng)。

      ⑴ 分片

      在MongoDB中,每個(gè)分片(shard)由一個(gè)或多個(gè)服務(wù)器構(gòu)成,其上運(yùn)行mongod進(jìn)程來存儲(chǔ)數(shù)據(jù)。在實(shí)際的生產(chǎn)環(huán)境中,為了提高系統(tǒng)的可靠性和實(shí)現(xiàn)自動(dòng)故障恢復(fù),每個(gè)shard就是一個(gè)replica set。replica set支持兩個(gè)以上節(jié)點(diǎn)的自動(dòng)故障恢復(fù),其結(jié)構(gòu)如圖5所示。replica set實(shí)質(zhì)上是一種異步的主從復(fù)制機(jī)制,每個(gè)replica set只能有一個(gè)primary節(jié)點(diǎn),負(fù)責(zé)數(shù)據(jù)的寫入;secondary節(jié)點(diǎn)只能讀數(shù)據(jù),并不能進(jìn)行寫操作。兩類節(jié)點(diǎn)之間的一致性通過oplog來保證,所有的操作及其對(duì)應(yīng)的時(shí)間戳都會(huì)被寫入oplog,因其大小固定,所以新數(shù)據(jù)的寫入會(huì)覆蓋舊數(shù)據(jù)。所有的secondary節(jié)點(diǎn)監(jiān)聽oplog的變化情況,以實(shí)現(xiàn)與primary節(jié)點(diǎn)的同步。

      ⑵ 配置服務(wù)

      配置服務(wù)(config servers)用于存儲(chǔ)MongoDB集群的元數(shù)據(jù)信息,這些元數(shù)據(jù)包括兩部分:一是shard server上的chunks信息;二是chunk上的集合信息和文檔信息。每一個(gè)config server都包括了 MongoDB中所有chunk的信息,使用一個(gè)兩階段提交協(xié)議來保證config server中配置信息的一致性。config server擁有自己的復(fù)制模型,并不使用replica set的復(fù)制方式。當(dāng)任何一個(gè)config server發(fā)生宕機(jī)時(shí),集群中的元數(shù)據(jù)就變?yōu)橹蛔x狀態(tài),這樣處理方式避免了系統(tǒng)在不穩(wěn)定的情況下,冒然改動(dòng)元數(shù)據(jù)信息,導(dǎo)致config servers節(jié)點(diǎn)間中出現(xiàn)元數(shù)據(jù)不一致的情形。但這并不影響集群的正常工作,仍然可以向集群中寫入數(shù)據(jù)或從集群中讀取數(shù)據(jù)。

      ⑶ 路由進(jìn)程

      路由進(jìn)程(mongos),可以當(dāng)作一個(gè)路由和協(xié)調(diào)進(jìn)程,它使集群中的多個(gè)組件形如一個(gè)單一的系統(tǒng)。mongos接收到用戶請(qǐng)求時(shí),首先查詢config server,找到存放相應(yīng)數(shù)據(jù)的shard servers,然后把用戶請(qǐng)求轉(zhuǎn)發(fā)給對(duì)應(yīng)shard servers。當(dāng)所有的shard servers完成操作后,把結(jié)果分別發(fā)送給mongos。當(dāng)mongos匯總了所有的結(jié)果后,再把最終結(jié)果返回給用戶。mongos的每次啟動(dòng),都要到config servers中讀取元數(shù)據(jù),并緩存在本地。每當(dāng)config server中的元數(shù)據(jù)有改動(dòng),它都會(huì)通知所有的mongos。mongos可以運(yùn)行在任何服務(wù)器上,同時(shí)啟動(dòng)的mongos進(jìn)程數(shù)量也沒有限制[7]。

      4 結(jié)論

      本文介紹了分布式存儲(chǔ)技術(shù),重點(diǎn)介紹了強(qiáng)同步復(fù)制副本,它比較穩(wěn)定。比較了非結(jié)構(gòu)化數(shù)據(jù)的三種存儲(chǔ)方式。其中數(shù)據(jù)庫與文件系統(tǒng)結(jié)合存儲(chǔ)方式更適合非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)。研究了非關(guān)系型數(shù)據(jù)庫MongoDB的數(shù)據(jù)模型和它的一些特性,分析了MongoDB的分布式存儲(chǔ)架構(gòu)、工作原理以及它在非結(jié)構(gòu)性數(shù)據(jù)存儲(chǔ)上所起的作用。

      參考文獻(xiàn):

      [1] 中國互聯(lián)網(wǎng)絡(luò)信息中心.中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告[R].CNNIC,2014.

      [2] Mell P,Grance T. The NIST definition of cloud computing (draft)[J]. NIST specialpublication,2011.800(145):7

      [3] 陳康,鄭緯民.云計(jì)算:系統(tǒng)實(shí)例與研究現(xiàn)狀[J].軟件學(xué)報(bào),2009.20(5):1337-1348

      [4] 謝華成,陳向東.面向云存儲(chǔ)的非結(jié)構(gòu)化數(shù)據(jù)存取[J].計(jì)算機(jī)應(yīng)用,2012.32(7):1924-1928

      [5] 劉正偉,文中領(lǐng),張海濤.云計(jì)算和云數(shù)據(jù)管理技術(shù)[J].計(jì)算機(jī)研究與發(fā)展,2012.49(1):26-31

      [6] 倪永軍,謝長生.網(wǎng)絡(luò)存儲(chǔ)技術(shù)現(xiàn)狀,存在的問題及對(duì)策研究[J].計(jì)算機(jī)工程與應(yīng)用,2003.39(10):159-161

      [7] 張薇,馬建峰.LPCA分布式存儲(chǔ)中的數(shù)據(jù)分離方法[J].系統(tǒng)工程與電子技術(shù),2007.29(3):20-22

      猜你喜歡
      云存儲(chǔ)
      天地一體化網(wǎng)絡(luò)環(huán)境下的云存儲(chǔ)技術(shù)探討
      基于橢圓曲線的云存儲(chǔ)數(shù)據(jù)完整性的驗(yàn)證研究
      高校檔案云存儲(chǔ)模式探究
      地鐵高清視頻存儲(chǔ)技術(shù)的應(yīng)用分析
      云數(shù)據(jù)存儲(chǔ)安全關(guān)鍵技術(shù)研究
      基于云存儲(chǔ)的氣象數(shù)字化圖像檔案存儲(chǔ)研究
      試論云存儲(chǔ)與數(shù)字版權(quán)的沖突、法制與協(xié)同
      出版廣角(2016年14期)2016-12-13 02:10:43
      云存儲(chǔ)出版服務(wù)的版權(quán)侵權(quán)責(zé)任風(fēng)險(xiǎn)分析
      出版廣角(2016年14期)2016-12-13 02:06:45
      云存儲(chǔ)技術(shù)的起源與發(fā)展
      基于云存儲(chǔ)的數(shù)據(jù)庫密文檢索研究
      焦作市| 肇源县| 疏附县| 岗巴县| 溧阳市| 平舆县| 东丽区| 修水县| 安乡县| 本溪| 木里| 府谷县| 台中市| 垣曲县| 芜湖县| 通州市| 松阳县| 溧阳市| 岚皋县| 察雅县| 屏山县| 望谟县| 綦江县| 衡山县| 上杭县| 大港区| 惠东县| 聊城市| 逊克县| 南开区| 长汀县| 榆中县| 绥棱县| 黑水县| 响水县| 芒康县| 东乡| 宾阳县| 安图县| 五指山市| 盖州市|