基于domino數(shù)據(jù)庫的系統(tǒng)進行自動分庫的方法
【專利摘要】本發(fā)明提供一種基于domino數(shù)據(jù)庫的系統(tǒng)進行自動分庫的方法,該方法具體為建立一分庫策略配置模塊、一動態(tài)分庫引擎、一索引庫以及一調(diào)度模塊;通過動態(tài)分庫引擎和分庫策略配置模塊來負責(zé)數(shù)據(jù)庫的動態(tài)拆分,通過索引庫和調(diào)度模塊來負責(zé)數(shù)據(jù)庫分庫后的創(chuàng)建和讀取兼容傳統(tǒng)方式。本發(fā)明通過數(shù)據(jù)分散存儲和請求的分攤,解決了基于domino數(shù)據(jù)庫的系統(tǒng)性能問題,提高了對數(shù)據(jù)庫的訪問速度。
【專利說明】基于domino數(shù)據(jù)庫的系統(tǒng)進行自動分庫的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于domino數(shù)據(jù)庫的系統(tǒng)進行自動分庫的方法。
【背景技術(shù)】
[0002]IBM (國際商業(yè)機器公司)旗下的辦公自動化Lotus軟件,Notes數(shù)據(jù)庫文件(文件后綴為:.NSF),該數(shù)據(jù)庫文件包容應(yīng)用程序的數(shù)據(jù),其結(jié)構(gòu)由表單、域、文件夾、視圖及其他顯示功能部件(諸如導(dǎo)航器和數(shù)據(jù)庫圖標)組成。根據(jù)官方提供的數(shù)據(jù),Notes數(shù)據(jù)庫存在以下的限制:數(shù)據(jù)庫的最大大小:即最大的OS文件大小限制(最大為64GB);文本域的最大大小:15KB; RTF文本域中單個段落的最大大小:64KB; —個層次結(jié)構(gòu)視圖中有幾級響應(yīng):31級;每一級中有幾個文檔:300,000個文檔;一個視圖索引最大可為:130MB。
[0003]Notes數(shù)據(jù)庫連接是線性的。隨著數(shù)據(jù)行變大,Notes數(shù)據(jù)庫響應(yīng)所花的時間呈指數(shù)增加。在Notes數(shù)據(jù)庫中與在關(guān)系數(shù)據(jù)庫中連接表的性能差別可能是千倍以上,在使用很大的數(shù)據(jù)庫時尤其如此。根據(jù)實際的使用經(jīng)驗,一個Notes數(shù)據(jù)庫在滿足系統(tǒng)一般性能和穩(wěn)定性要求的前提下,數(shù)據(jù)庫的大小限制遠達不到官方標準值。一般一個數(shù)據(jù)庫的文檔數(shù)據(jù)達到20W以上時,系統(tǒng)就會變得不穩(wěn)定或者出現(xiàn)各種故障。數(shù)據(jù)庫視圖的展現(xiàn)和搜索響應(yīng)的時長都會變得太長而不能滿足業(yè)務(wù)的要求。
[0004]企業(yè)級的管理信息化系統(tǒng),常常面臨大數(shù)據(jù)量的文檔,數(shù)千萬甚至上億的文檔量需要存儲和處理。一個可行且成熟的方案就是對數(shù)據(jù)庫進行分庫,但是原有的小數(shù)據(jù)量情況下,每隔兩三年對數(shù)據(jù)庫進行一次手動的分庫的方式還能解決問題,現(xiàn)有的大量數(shù)據(jù)增長情況下就不再適用,需要設(shè)計自動分庫的策略,由定時的任務(wù)對數(shù)據(jù)庫進行掃描管理,在需要的時候生成新的數(shù)據(jù)庫替代舊庫,并且分庫的過程需要保證系統(tǒng)的不間斷服務(wù),分庫前后對系統(tǒng)無影響。
[0005]傳統(tǒng)的Domino數(shù)據(jù)庫使用方式如圖1所示,對于Domino數(shù)據(jù)庫的訪問都是直接訪問和創(chuàng)建。隨著數(shù)據(jù)的增長,Domino數(shù)據(jù)庫(業(yè)務(wù)庫)的數(shù)據(jù)量會越來越大,性能會逐漸下降,甚至導(dǎo)致系統(tǒng)崩潰。所以傳統(tǒng)的Domino數(shù)據(jù)庫使用方式無法支撐數(shù)據(jù)增長快的大型信息系統(tǒng)。
【發(fā)明內(nèi)容】
[0006]本發(fā)明要解決的技術(shù)問題,在于提供一種基于domino數(shù)據(jù)庫的系統(tǒng)進行自動分庫的方法,解決了基于domino數(shù)據(jù)庫的系統(tǒng)性能問題,提高了對數(shù)據(jù)庫的訪問速度。
[0007]本發(fā)明是這樣實現(xiàn)的:一種基于domino數(shù)據(jù)庫的系統(tǒng)進行自動分庫的方法,所述方法具體為:
[0008]建立一分庫策略配置模塊,來配置分庫策略配置信息和記錄分庫后的分庫信息;
[0009]建立一動態(tài)分庫引擎,該動態(tài)分庫引擎負責(zé)對數(shù)據(jù)庫進行監(jiān)測和數(shù)據(jù)庫的創(chuàng)建,系統(tǒng)通過動態(tài)分庫引擎根據(jù)分庫策略配置模塊的分庫策略配置信息定時地對系統(tǒng)中超限的數(shù)據(jù)庫進行分庫處理,并通過分庫策略配置模塊記錄分庫后的分庫信息;[0010]建立一索引庫,將分庫處理中數(shù)據(jù)庫的數(shù)據(jù)增、刪、改操作實時同步到該索引庫中,索引庫存放關(guān)鍵字段,整合有所有文檔數(shù)據(jù),且存儲有各個分數(shù)據(jù)庫的索引信息;
[0011]建立一調(diào)度模塊,系統(tǒng)在需要創(chuàng)建新數(shù)據(jù)時,調(diào)度模塊讀取分庫后的分庫信息,并根據(jù)索引庫模塊對未超限的分數(shù)據(jù)庫進行數(shù)據(jù)創(chuàng)建;同時,系統(tǒng)需要訪問數(shù)據(jù)時,調(diào)度模塊通過索引庫模塊到對應(yīng)的分數(shù)據(jù)庫中讀取所需的數(shù)據(jù)。
[0012]本發(fā)明具有如下優(yōu)點:本發(fā)明打破domino原有的模塊單數(shù)據(jù)庫或手動分庫的模式,采用自動分庫的策略,使用系統(tǒng)自身對系統(tǒng)中的domino數(shù)據(jù)庫進行管理;改造系統(tǒng)的業(yè)務(wù)功能使其能夠適應(yīng)數(shù)據(jù)分庫的情況,自動分庫以滿足應(yīng)用系統(tǒng)下大數(shù)據(jù)量存儲與計算的情況;提高了對數(shù)據(jù)庫的訪問速度。
【專利附圖】
【附圖說明】
[0013]圖1為現(xiàn)有技術(shù)的Domino數(shù)據(jù)庫使用方式的示意圖。
[0014]圖2為本發(fā)明實現(xiàn)方法的原理框圖。
【具體實施方式】
[0015]請參閱圖2所示,本發(fā)明為一種基于domino數(shù)據(jù)庫的系統(tǒng)進行自動分庫的方法,所述方法具體為:
[0016]建立一分庫策略配置模塊,來配置分庫策略配置信息和記錄分庫后的分庫信息;
[0017]建立一動態(tài)分庫引擎,該動態(tài)分庫引擎負責(zé)對數(shù)據(jù)庫進行監(jiān)測和數(shù)據(jù)庫的創(chuàng)建,系統(tǒng)通過動態(tài)分庫引擎根據(jù)分庫策略配置模塊的分庫策略配置信息定時地對系統(tǒng)中超限的數(shù)據(jù)庫進行分庫處理,并通過分庫策略配置模塊記錄分庫后的分庫信息;
[0018]其中,系統(tǒng)通過動態(tài)分庫引擎根據(jù)分庫策略配置模塊的分庫策略配置信息定時地對系統(tǒng)中超限的數(shù)據(jù)庫進行分庫處理,具體為:動態(tài)分庫引擎讀取配置的分庫策略配置信息對數(shù)據(jù)庫進行監(jiān)測,判斷數(shù)據(jù)庫中的物理大小或文檔數(shù)量是否超過閾值;否,則不進行分庫處理,是,則對已經(jīng)達到分庫閾值的分數(shù)據(jù)庫標記為歷史分庫(不再新增數(shù)據(jù)),同時新增了一個相同設(shè)計空的分數(shù)據(jù)庫,并標記為活動分庫。
[0019]建立一索引庫,將分庫處理中數(shù)據(jù)庫的數(shù)據(jù)增、刪、改操作實時同步到該索引庫中,索引庫存放關(guān)鍵字段(即主鍵字段),整合有所有文檔數(shù)據(jù),且存儲有各個分數(shù)據(jù)庫的索引信息;這樣數(shù)據(jù)庫中的視圖和搜索結(jié)果實際訪問時根據(jù)索引庫的索引信息指向的實際數(shù)據(jù)庫和文檔進行訪問;
[0020]建立一調(diào)度模塊,系統(tǒng)在需要創(chuàng)建新數(shù)據(jù)時,調(diào)度模塊讀取分庫后的分庫信息,并根據(jù)索引庫模塊對未超限的分數(shù)據(jù)庫進行數(shù)據(jù)創(chuàng)建;同時,系統(tǒng)需要訪問數(shù)據(jù)時,調(diào)度模塊通過索引庫模塊到對應(yīng)的分數(shù)據(jù)庫中讀取所需的數(shù)據(jù)。
[0021]在本發(fā)明中,所述domino數(shù)據(jù)庫是文檔型數(shù)據(jù)庫,對于數(shù)據(jù)庫是否過大的評測標準為:數(shù)據(jù)庫的物理大小和數(shù)據(jù)庫的文檔數(shù)量大小;所述配置分庫策略配置信息為配置數(shù)據(jù)庫的物理大小達到第一閾值進行分庫或數(shù)據(jù)庫中的文檔數(shù)量達到第二閾值進行分庫;分庫的標準(閾值)可以是其中任意一個指標達到閾值,或者任意一個指標達到閾值,或者兩個指標都達到閾值。即A、B、A或B、A且B四種。所述分庫信息包括:數(shù)據(jù)庫中歷史分庫的數(shù)量、活動分庫的數(shù)量、各個分庫的名稱、各個分庫對應(yīng)的路徑;所述歷史分庫為存滿的分數(shù)據(jù)庫,活動分庫為未存滿的分數(shù)據(jù)庫;分庫信息由動態(tài)分庫引擎在分庫變更后進行更新維護。
[0022]所述索引庫實現(xiàn)方式為Domino庫(少量的字段可以承載更多的文檔數(shù))、關(guān)系型數(shù)據(jù)庫或者NoSql數(shù)據(jù)庫;所述索引信息包括關(guān)鍵業(yè)務(wù)字段、分數(shù)據(jù)庫路徑、分數(shù)據(jù)名稱和文檔id等。所述調(diào)度模塊在數(shù)據(jù)庫分庫后,創(chuàng)建新數(shù)據(jù)的時候需要選擇其中一個數(shù)據(jù)庫進行創(chuàng)建數(shù)據(jù);即讀取分庫策略配置模塊中的分庫信息,選取其中的活動分庫進行創(chuàng)建新文檔。如果存在多個活動分庫,則不僅需要選擇出活躍庫,還要使用隨機或者輪詢方式從各個活躍分庫中選擇一個以保證數(shù)據(jù)庫數(shù)據(jù)量的整體平衡。
[0023]這里需要說明的是:本發(fā)明通過分庫策略配置模塊、動態(tài)分庫引擎、索引庫以及調(diào)度模塊的四個部分相互協(xié)作,形成完整的動態(tài)分庫機制。動態(tài)分庫引擎的定時觸發(fā)保證了自動化,索引庫和調(diào)度模塊對外屏蔽了內(nèi)部的復(fù)雜結(jié)構(gòu),保持了統(tǒng)一的訪問入口。分庫策略配置模塊動態(tài)更新分庫情況的詳細信息,并提供調(diào)度模塊的查詢。
[0024]總之,本發(fā)明通過動態(tài)分庫引擎和分庫策略配置模塊來負責(zé)數(shù)據(jù)庫的動態(tài)拆分,通過索引庫和調(diào)度模塊來負責(zé)數(shù)據(jù)庫分庫后的創(chuàng)建和讀取兼容傳統(tǒng)方式。打破domino原有的模塊單數(shù)據(jù)庫或手動分庫的模式,采用自動分庫的策略,使用系統(tǒng)自身對系統(tǒng)中的domino數(shù)據(jù)庫進行管理;提高了對數(shù)據(jù)庫的訪問速度。
[0025]以上所述僅為本發(fā)明的較佳實施例,凡依本發(fā)明申請專利范圍所做的均等變化與修飾,皆應(yīng)屬本發(fā)明的涵蓋范圍。
【權(quán)利要求】
1.一種基于domino數(shù)據(jù)庫的系統(tǒng)進行自動分庫的方法,其特征在于:所述方法具體為: 建立一分庫策略配置模塊,來配置分庫策略配置信息和記錄分庫后的分庫信息;建立一動態(tài)分庫引擎,該動態(tài)分庫引擎負責(zé)對數(shù)據(jù)庫進行監(jiān)測和數(shù)據(jù)庫的創(chuàng)建,系統(tǒng)通過動態(tài)分庫引擎根據(jù)分庫策略配置模塊的分庫策略配置信息定時地對系統(tǒng)中超限的數(shù)據(jù)庫進行分庫處理,并通過分庫策略配置模塊記錄分庫后的分庫信息; 建立一索引庫,將分庫處理中數(shù)據(jù)庫的數(shù)據(jù)增、刪、改操作實時同步到該索引庫中,索引庫存放關(guān)鍵字段,整合有所有文檔數(shù)據(jù),且存儲有各個分數(shù)據(jù)庫的索引信息; 建立一調(diào)度模塊,系統(tǒng)在需要創(chuàng)建新數(shù)據(jù)時,調(diào)度模塊讀取分庫后的分庫信息,并根據(jù)索引庫模塊對未超限的分數(shù)據(jù)庫進行數(shù)據(jù)創(chuàng)建;同時,系統(tǒng)需要訪問數(shù)據(jù)時,調(diào)度模塊通過索引庫模塊到對應(yīng)的分數(shù)據(jù)庫中讀取所需的數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的基于domino數(shù)據(jù)庫的系統(tǒng)進行自動分庫的方法,其特征在于: 所述domino數(shù)據(jù)庫是文檔型數(shù)據(jù)庫,對于數(shù)據(jù)庫是否過大的評測標準為:數(shù)據(jù)庫的物理大小和數(shù)據(jù)庫的文檔數(shù)量大?。凰雠渲梅謳觳呗耘渲眯畔榕渲脭?shù)據(jù)庫的物理大小達到第一閾值進行分庫或數(shù)據(jù)庫中的文檔數(shù)量達到第二閾值進行分庫;所述分庫信息包括:數(shù)據(jù)庫中歷史分庫的數(shù)量、活動分庫的數(shù)量、各個分庫的名稱、各個分庫對應(yīng)的路徑;所述歷史分庫為存滿的分數(shù)據(jù)庫,活動分庫為未存滿的分數(shù)據(jù)庫;分庫信息由動態(tài)分庫引擎在分庫變更后進行更新維護。
3.根據(jù)權(quán)利要求2所述的基于domino數(shù)據(jù)庫的系統(tǒng)進行自動分庫的方法,其特征在于: 系統(tǒng)通過動態(tài)分庫引擎根據(jù)分庫策略配置模塊的分庫策略配置信息定時地對系統(tǒng)中超限的數(shù)據(jù)庫進行分庫處理,具體為:動態(tài)分庫引擎讀取配置的分庫策略配置信息對數(shù)據(jù)庫進行監(jiān)測,判斷數(shù)據(jù)庫中的物理大小或文檔數(shù)量是否超過閾值;否,則不進行分庫處理,是,則對已經(jīng)達到分庫閾值的分數(shù)據(jù)庫標記為歷史分庫,同時新增了一個相同設(shè)計空的分數(shù)據(jù)庫,并標記為活動分庫。
4.根據(jù)權(quán)利要求2所述的基于domino數(shù)據(jù)庫的系統(tǒng)進行自動分庫的方法,其特征在于: 所述索引庫實現(xiàn)方式為Domino庫、關(guān)系型數(shù)據(jù)庫或者NoSql數(shù)據(jù)庫;所述索引信息包括關(guān)鍵業(yè)務(wù)字段、分數(shù)據(jù)庫路徑、分數(shù)據(jù)名稱和文檔id。
【文檔編號】G06F17/30GK103744979SQ201410016631
【公開日】2014年4月23日 申請日期:2014年1月14日 優(yōu)先權(quán)日:2014年1月14日
【發(fā)明者】倪時龍, 林振天, 陳又詠, 謝海強, 蔡清遠 申請人:國家電網(wǎng)公司, 福建億榕信息技術(shù)有限公司