亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種分布式數(shù)據(jù)庫的控制方法及系統(tǒng)與流程

文檔序號:11199317閱讀:611來源:國知局
一種分布式數(shù)據(jù)庫的控制方法及系統(tǒng)與流程

本發(fā)明涉及數(shù)據(jù)庫技術(shù)領(lǐng)域,更具體地說,涉及一種分布式數(shù)據(jù)庫的控制方法及系統(tǒng)。



背景技術(shù):

鍵值分布式數(shù)據(jù)庫查詢速度快、存放數(shù)據(jù)量大、支持高并發(fā),非常適合通過主鍵進行查詢。其中,level數(shù)據(jù)庫是一個谷歌實現(xiàn)的非常高效的鍵值分布式數(shù)據(jù)庫,而rocks數(shù)據(jù)庫則是在level數(shù)據(jù)庫進行改進得到的產(chǎn)物。rocks數(shù)據(jù)庫的能夠充分利用閃存的較高的每秒進行讀寫(i/o)操作的次數(shù)性能,同時也能利用多核服務(wù)器的計算性能,臉書目前已經(jīng)在rocks數(shù)據(jù)庫的github(一個面向開源及私有軟件項目的托管平臺)頁面上發(fā)布了rocks數(shù)據(jù)庫在fusion-io(一個做數(shù)據(jù)庫的公司)服務(wù)器上的跑分基準測試結(jié)果,臉書聲稱其速度比谷歌的level數(shù)據(jù)庫快很多。rocks數(shù)據(jù)庫本身是基于文件系統(tǒng)的,不能直接操作物理塊設(shè)備,但rocks數(shù)據(jù)庫將系統(tǒng)相關(guān)的處理抽象成env,默認的env是posixenv,直接對接本地文件系統(tǒng),用戶可用繼承實現(xiàn)envwrapper接口,為rocks數(shù)據(jù)庫提供底層系統(tǒng)的封裝。

然而,rocks數(shù)據(jù)庫一般運行在宿主機的文件系統(tǒng)之上(比如xfs),存在文件系統(tǒng)自身的日志信息和rocks數(shù)據(jù)庫的預(yù)寫日志系統(tǒng)的冗余寫的問題。在現(xiàn)有技術(shù)中,并沒有用于解決這個問題的技術(shù)方案。



技術(shù)實現(xiàn)要素:

有鑒于此,本發(fā)明的目的在于提供一種分布式數(shù)據(jù)庫的控制方法,掛載一個文件系統(tǒng),使數(shù)據(jù)庫在文件系統(tǒng)上運行,通過文件系統(tǒng)可將數(shù)據(jù)保存在物理塊設(shè)備上,直接操作物理塊設(shè)備,解決了冗余寫的問題。

為實現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:

一種分布式數(shù)據(jù)庫的控制方法,所述方法包括以下步驟:

初始化物理塊設(shè)備;

掛載文件系統(tǒng),所述文件系統(tǒng)用于運行所述數(shù)據(jù)庫;

基于所述文件系統(tǒng)的對象創(chuàng)建第一類的對象,所述第一類為第二類的繼承類,所述第二類為所述數(shù)據(jù)庫的對外開發(fā)的類;

將所述第一類的對象發(fā)送至所述數(shù)據(jù)庫;

運行所述數(shù)據(jù)庫。

優(yōu)選地,所述初始化物理塊設(shè)備包括:

格式化所述物理塊設(shè)備;

生成超級塊的元數(shù)據(jù)信息及預(yù)寫日志文件的元數(shù)據(jù)信息;

生成操作符;

將所述操作符存儲至所述預(yù)寫日志文件中;

將所述超級塊及所述預(yù)寫日志文件存儲至所述物理塊設(shè)備。

優(yōu)選地,所述掛載文件系統(tǒng)包括:

讀取所述物理塊設(shè)備中的所述超級塊,基于所述超級塊生成存放所述文件系統(tǒng)的元數(shù)據(jù)信息;

基于所述存放所述文件系統(tǒng)的元數(shù)據(jù)信息讀取所述預(yù)寫日志文件;

基于所述預(yù)寫日志文件及所述操作符生成目錄的元數(shù)據(jù)及文件的元數(shù)據(jù);

加載所述目錄的元數(shù)據(jù)及所述文件的元數(shù)據(jù);

建立所述預(yù)寫日志文件的對象。

優(yōu)選地,基于所述存放所述文件系統(tǒng)的元數(shù)據(jù)信息讀取所述預(yù)寫日志文件包括:

基于所述存放所述文件系統(tǒng)的元數(shù)據(jù)信息中的偏移量、長度及所在邏輯快設(shè)備讀取所述預(yù)寫日志文件。

一種分布式數(shù)據(jù)庫的控制裝置,所述控制裝置包括系統(tǒng)處理器、物理塊管理裝置及運行處理器,其中:

所述物理塊管理裝置及所述系統(tǒng)處理器初始化物理塊設(shè)備;

所述物理塊管理裝置及所述系統(tǒng)處理器掛載文件系統(tǒng),所述文件系統(tǒng)用于運行所述數(shù)據(jù)庫;

所述系統(tǒng)處理器基于所述文件系統(tǒng)的對象創(chuàng)建第一類的對象,所述第一類為第二類的繼承類,所述第二類為所述數(shù)據(jù)庫的對外開發(fā)的類;

所述運行處理器將所述第一類的對象發(fā)送至所述數(shù)據(jù)庫;

所述系統(tǒng)處理器及所述運行處理器運行所述數(shù)據(jù)庫。

優(yōu)選地,所述物理塊管理裝置包括空間管理處理器及讀寫處理器;所述初始化物理塊設(shè)備包括:

所述空間管理處理器格式化所述物理塊設(shè)備;

所述系統(tǒng)處理器生成超級塊的元數(shù)據(jù)信息及預(yù)寫日志文件的元數(shù)據(jù)信息;

所述系統(tǒng)處理器生成操作符;

所述系統(tǒng)處理器將所述操作符存儲至所述預(yù)寫日志文件中;

所述讀寫處理器將所述超級塊及所述預(yù)寫日志文件存儲至所述物理塊設(shè)備。

優(yōu)選地,所述物理塊管理裝置包括空間管理處理器及讀寫處理器;所述掛載文件系統(tǒng)包括:

所述讀寫處理器讀取所述物理塊設(shè)備中的所述超級塊,所述系統(tǒng)處理器基于所述超級塊生成存放所述文件系統(tǒng)的元數(shù)據(jù)信息;

所述讀寫處理器基于所述存放所述文件系統(tǒng)的元數(shù)據(jù)信息讀取所述預(yù)寫日志文件;

所述系統(tǒng)處理器基于所述預(yù)寫日志文件及所述操作符生成目錄的元數(shù)據(jù)及文件的元數(shù)據(jù);

所述系統(tǒng)處理器加載所述目錄的元數(shù)據(jù)及所述文件的元數(shù)據(jù);

所述系統(tǒng)處理器建立所述預(yù)寫日志文件的對象。

優(yōu)選地,基于所述存放所述文件系統(tǒng)的元數(shù)據(jù)信息讀取所述預(yù)寫日志文件包括:

所述讀寫處理器基于所述存放所述文件系統(tǒng)的元數(shù)據(jù)信息中的偏移量、長度及所在邏輯快設(shè)備讀取所述預(yù)寫日志文件。

從上述技術(shù)方案可以看出,本發(fā)明公開了一種分布式數(shù)據(jù)庫的控制方法,所述方法包括初始化物理塊設(shè)備,掛載文件系統(tǒng),文件系統(tǒng)用于運行數(shù)據(jù)庫,基于文件系統(tǒng)的對象創(chuàng)建第一類的對象,第一類為第二類的繼承類,第二類為數(shù)據(jù)庫的對外開發(fā)的類,將第一類的對象發(fā)送至數(shù)據(jù)庫,運行數(shù)據(jù)庫。掛載一個文件系統(tǒng),使數(shù)據(jù)庫在文件系統(tǒng)上運行,通過文件系統(tǒng)可將數(shù)據(jù)保存在物理塊設(shè)備上,直接操作物理塊設(shè)備,解決了冗余寫的問題。

附圖說明

為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。

圖1為本發(fā)明公開的一種分布式數(shù)據(jù)庫的控制方法的實施例1的流程圖;

圖2為本發(fā)明公開的另一種分布式數(shù)據(jù)庫的控制方法的實施例2的流程圖;

圖3為本發(fā)明公開的另一種分布式數(shù)據(jù)庫的控制方法的實施例2的流程圖;

圖4為本發(fā)明公開的一種分布式數(shù)據(jù)庫的控制系統(tǒng)的實施例1的結(jié)構(gòu)示意圖;

圖5為本發(fā)明公開的一種分布式數(shù)據(jù)庫的控制系統(tǒng)的實施例2的結(jié)構(gòu)示意圖;

圖6為本發(fā)明公開的一種分布式數(shù)據(jù)庫的控制系統(tǒng)的實施例3的結(jié)構(gòu)示意圖。

具體實施方式

下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。

如圖1所示,本發(fā)明公開的一種分布式數(shù)據(jù)庫的控制方法的實施例1的流程圖,本方法包括以下步驟:

s101、初始化物理塊設(shè)備;

為便于rocks數(shù)據(jù)庫的運行,系統(tǒng)開機后,將物理塊設(shè)備初始化,其中物理塊設(shè)備可包括非易失性隨機訪問存儲器、固態(tài)硬盤及機械硬盤。

s102、掛載文件系統(tǒng),文件系統(tǒng)用于運行數(shù)據(jù)庫;

為了支撐inspurfs,定義基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)超級塊信息、inode信息、文件系統(tǒng)的擴展信息(記錄快的信息),其中超級塊存放通用唯一識別碼、版本號、塊大小、預(yù)寫日志文件的元數(shù)據(jù)等信息;inode信息存放文件的inode號、大小、創(chuàng)建時間、所在物理塊設(shè)備等信息;文件系統(tǒng)的擴展信息(記錄快的信息)存放文件內(nèi)容在物理塊設(shè)備的偏移及長度。

s103、基于文件系統(tǒng)的對象創(chuàng)建第一類的對象,第一類為第二類的繼承類,第二類為數(shù)據(jù)庫的對外開發(fā)的類;

rocks數(shù)據(jù)庫::envwrapper為rocks數(shù)據(jù)庫的對外開發(fā)的類,rocks數(shù)據(jù)庫::envwrapper即為第二類,第一類為inspurrocksenv,inspurrocksenv是繼承rocks數(shù)據(jù)庫::envwrapper的實現(xiàn)類?;谖募到y(tǒng)的對象創(chuàng)建第一類的對象,即創(chuàng)建inspurrocksenv的對象。

s104、將第一類的對象發(fā)送至數(shù)據(jù)庫;

將第一類的對象發(fā)送至數(shù)據(jù)庫,即將inspurrocksenv的對象發(fā)送至rocks數(shù)據(jù)庫。

s105、運行數(shù)據(jù)庫;

將inspurrocksenv的對象發(fā)送至rocks數(shù)據(jù)庫,即可運行所述rocks數(shù)據(jù)庫。

本發(fā)明公開了一種分布式數(shù)據(jù)庫的控制方法,所述方法包括初始化物理塊設(shè)備,掛載文件系統(tǒng),文件系統(tǒng)用于運行數(shù)據(jù)庫,基于文件系統(tǒng)的對象創(chuàng)建第一類的對象,第一類為第二類的繼承類,第二類為數(shù)據(jù)庫的對外開發(fā)的類,將第一類的對象發(fā)送至數(shù)據(jù)庫,運行數(shù)據(jù)庫。掛載一個文件系統(tǒng),使數(shù)據(jù)庫在文件系統(tǒng)上運行,通過文件系統(tǒng)可將數(shù)據(jù)保存在物理塊設(shè)備上,直接操作物理塊設(shè)備,解決了冗余寫的問題。

如圖2所示,為本發(fā)明在所述實施例的基礎(chǔ)上公開的另一種分布式數(shù)據(jù)庫的控制方法的實施例2的流程圖,本方法包括以下步驟:

s201、格式化物理塊設(shè)備;

讀取物理設(shè)備塊設(shè)備的大小,初始化物理設(shè)備塊設(shè)備的空間分配情況。

s202、生成超級塊的元數(shù)據(jù)信息及預(yù)寫日志文件的元數(shù)據(jù)信息;

s203、生成操作符;

生成操作符(op),其中op為操作碼。

s204、將操作符存儲至預(yù)寫日志文件中;

將操作符(op)存儲至預(yù)寫日志文件,用于后續(xù)的文件系統(tǒng)的掛載。

s205、將超級塊及預(yù)寫日志文件存儲至物理塊設(shè)備;

將超級塊及預(yù)寫日志文件存儲至物理塊設(shè)備,存儲后,可清空相關(guān)的內(nèi)存數(shù)據(jù)。

如圖3所示,為本發(fā)明在所述實施例的基礎(chǔ)上公開的另一種分布式數(shù)據(jù)庫的控制方法的實施例3的流程圖,本方法包括以下步驟:

s301、讀取物理塊設(shè)備中的超級塊,基于超級塊生成存放文件系統(tǒng)的元數(shù)據(jù)信息;

讀取物理塊設(shè)備中的超級塊,在物理塊設(shè)備存放預(yù)寫日志文件偏移4096處,解析出存放文件系統(tǒng)的元數(shù)據(jù)信息。

s302、基于存放文件系統(tǒng)的元數(shù)據(jù)信息讀取預(yù)寫日志文件;

基于存放文件系統(tǒng)的元數(shù)據(jù)信息,讀取預(yù)寫日志文件。其中,可基于存放文件系統(tǒng)的元數(shù)據(jù)信息中的偏移量、長度及所在邏輯快設(shè)備讀取預(yù)寫日志文件。

s303、基于預(yù)寫日志文件及操作符生成目錄的元數(shù)據(jù)及文件的元數(shù)據(jù);

讀取預(yù)寫日志文件后,基于操作符(op)恢復出目錄的元數(shù)據(jù)(dir_map)及文件的元數(shù)據(jù)(file_map)。

s304、加載目錄的元數(shù)據(jù)及文件的元數(shù)據(jù);

將目錄的元數(shù)據(jù)(dir_map)及文件的元數(shù)據(jù)(file_map)加載在內(nèi)存中。

s305、建立預(yù)寫日志文件的對象;

建立預(yù)寫日志文件的對象,用于后序的預(yù)寫日志文件信息的處理。

如圖4所示,為本發(fā)明公開的一種分布式數(shù)據(jù)庫的控制裝置的實施例1的結(jié)構(gòu)示意圖,所述控制裝置包括系統(tǒng)處理器102、物理塊管理裝置101及運行處理器103,其中:

物理塊管理裝置101及系統(tǒng)處理器102初始化物理塊設(shè)備;

為便于rocks數(shù)據(jù)庫的運行,系統(tǒng)開機后,將物理塊設(shè)備初始化,其中物理塊設(shè)備可包括非易失性隨機訪問存儲器、固態(tài)硬盤及機械硬盤。

物理塊管理裝置101及系統(tǒng)處理器102掛載文件系統(tǒng),文件系統(tǒng)用于運行數(shù)據(jù)庫;

為了支撐inspurfs,定義基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)超級塊信息、inode信息、文件系統(tǒng)的擴展信息(記錄快的信息),其中超級塊存放通用唯一識別碼、版本號、塊大小、預(yù)寫日志文件的元數(shù)據(jù)等信息;inode信息存放文件的inode號、大小、創(chuàng)建時間、所在物理塊設(shè)備等信息;文件系統(tǒng)的擴展信息(記錄快的信息)存放文件內(nèi)容在物理塊設(shè)備的偏移及長度。

系統(tǒng)處理器102基于文件系統(tǒng)的對象創(chuàng)建第一類的對象,第一類為第二類的繼承類,第二類為數(shù)據(jù)庫的對外開發(fā)的類;

rocks數(shù)據(jù)庫::envwrapper為rocks數(shù)據(jù)庫的對外開發(fā)的類,rocks數(shù)據(jù)庫::envwrapper即為第二類,第一類為inspurrocksenv,inspurrocksenv是繼承rocks數(shù)據(jù)庫::envwrapper的實現(xiàn)類。基于文件系統(tǒng)的對象創(chuàng)建第一類的對象,即創(chuàng)建inspurrocksenv的對象。

運行處理器103將第一類的對象發(fā)送至數(shù)據(jù)庫;

將第一類的對象發(fā)送至數(shù)據(jù)庫,即將inspurrocksenv的對象發(fā)送至rocks數(shù)據(jù)庫。

系統(tǒng)處理器102及運行處理器103運行數(shù)據(jù)庫;

將inspurrocksenv的對象發(fā)送至rocks數(shù)據(jù)庫,即可運行rocks數(shù)據(jù)庫。

本發(fā)明公開了一種分布式數(shù)據(jù)庫的控制方法,方法包括初始化物理塊設(shè)備,掛載文件系統(tǒng),文件系統(tǒng)用于運行數(shù)據(jù)庫,基于文件系統(tǒng)的對象創(chuàng)建第一類的對象,第一類為第二類的繼承類,第二類為數(shù)據(jù)庫的對外開發(fā)的類,將第一類的對象發(fā)送至數(shù)據(jù)庫,運行數(shù)據(jù)庫。掛載一個文件系統(tǒng),使數(shù)據(jù)庫在文件系統(tǒng)上運行,通過文件系統(tǒng)可將數(shù)據(jù)保存在物理塊設(shè)備上,直接操作物理塊設(shè)備,解決了冗余寫的問題。

如圖5所示,為本發(fā)明在上述實施例的基礎(chǔ)上公開的另一種分布式數(shù)據(jù)庫的控制裝置的實施例2的結(jié)構(gòu)示意圖,所述控制裝置包括系統(tǒng)處理器201、空間管理處理器202及讀寫處理器203,物理塊管理裝置包括空間管理處理器202及讀寫處理器203;所述控制裝置包括:

空間管理處理器202格式化物理塊設(shè)備;

讀取物理設(shè)備塊設(shè)備的大小,初始化物理設(shè)備塊設(shè)備的空間分配情況。

系統(tǒng)處理器201生成超級塊的元數(shù)據(jù)信息及預(yù)寫日志文件的元數(shù)據(jù)信息;

系統(tǒng)處理器201生成操作符;

生成操作符(op),其中op為操作碼。

系統(tǒng)處理器201將操作符存儲至預(yù)寫日志文件中;

將操作符(op)存儲至預(yù)寫日志文件,用于后續(xù)的文件系統(tǒng)的掛載。

讀寫處理器203將超級塊及預(yù)寫日志文件存儲至物理塊設(shè)備;

將超級塊及預(yù)寫日志文件存儲至物理塊設(shè)備,存儲后,可清空相關(guān)的內(nèi)存數(shù)據(jù)。

如圖6所示,為本發(fā)明在上述實施例的基礎(chǔ)上公開的另一種分布式數(shù)據(jù)庫的控制裝置的實施例3的結(jié)構(gòu)示意圖,所述控制裝置包括系統(tǒng)處理器301、空間管理處理器302及讀寫處理器303,物理塊管理裝置包括空間管理處理器302及讀寫處理器303;所述控制裝置包括:

讀寫處理器303讀取物理塊設(shè)備中的超級塊,系統(tǒng)處理器301基于超級塊生成存放文件系統(tǒng)的元數(shù)據(jù)信息;

讀取物理塊設(shè)備中的超級塊,在物理塊設(shè)備存放預(yù)寫日志文件偏移4096處,解析出存放文件系統(tǒng)的元數(shù)據(jù)信息。

讀寫處理器303基于存放文件系統(tǒng)的元數(shù)據(jù)信息讀取預(yù)寫日志文件;

基于存放文件系統(tǒng)的元數(shù)據(jù)信息,讀取預(yù)寫日志文件。其中,可基于存放文件系統(tǒng)的元數(shù)據(jù)信息中的偏移量、長度及所在邏輯快設(shè)備讀取預(yù)寫日志文件。

系統(tǒng)處理器301基于預(yù)寫日志文件及操作符生成目錄的元數(shù)據(jù)及文件的元數(shù)據(jù);

讀取預(yù)寫日志文件后,基于操作符(op)恢復出目錄的元數(shù)據(jù)(dir_map)及文件的元數(shù)據(jù)(file_map)。

系統(tǒng)處理器301加載目錄的元數(shù)據(jù)及文件的元數(shù)據(jù);

將目錄的元數(shù)據(jù)(dir_map)及文件的元數(shù)據(jù)(file_map)加載在內(nèi)存中。

系統(tǒng)處理器301建立預(yù)寫日志文件的對象;

建立預(yù)寫日志文件的對象,用于后序的預(yù)寫日志文件信息的處理。

本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其它實施例的不同之處,各個實施例之間相同相似部分互相參見即可。

對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1