一種數(shù)據(jù)中間層實(shí)現(xiàn)方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種數(shù)據(jù)中間層實(shí)現(xiàn)方法及系統(tǒng),所述方法包括:部署配置內(nèi)存數(shù)據(jù)庫(kù);設(shè)定所述內(nèi)存數(shù)據(jù)庫(kù)和文件數(shù)據(jù)庫(kù)中數(shù)據(jù)表的對(duì)應(yīng)關(guān)系;應(yīng)用服務(wù)訪問(wèn)所述內(nèi)存數(shù)據(jù)庫(kù)提出讀寫(xiě)請(qǐng)求;所述內(nèi)存數(shù)據(jù)庫(kù)在響應(yīng)所述讀寫(xiě)請(qǐng)求之后,根據(jù)所述對(duì)應(yīng)關(guān)系,與所述文件數(shù)據(jù)庫(kù)進(jìn)行同步。本發(fā)明實(shí)施例的方案,能夠提高文件數(shù)據(jù)庫(kù)訪問(wèn)的速度和效率,并提高數(shù)據(jù)安全性,極大的提高了用戶體驗(yàn)度。
【專利說(shuō)明】
一種數(shù)據(jù)中間層實(shí)現(xiàn)方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)中間層實(shí)現(xiàn)方法及系統(tǒng)。
【背景技術(shù)】
[0002]中間件(middleware)是一類連接軟件組件和應(yīng)用的計(jì)算機(jī)軟件,它包括一組服務(wù)。以便于運(yùn)行在一臺(tái)或多臺(tái)機(jī)器上的多個(gè)軟件通過(guò)網(wǎng)絡(luò)進(jìn)行交互。該技術(shù)所提供的互操作性,推動(dòng)了一致分布式體系架構(gòu)的演進(jìn),該架構(gòu)通常用于支持并簡(jiǎn)化那些復(fù)雜的分布式應(yīng)用程序,它包括web服務(wù)器、事務(wù)監(jiān)控器和消息隊(duì)列軟件。
[0003]中間件是基礎(chǔ)軟件的一大類,屬于可復(fù)用軟件的范疇。顧名思義,中間件處于操作系統(tǒng)軟件與用戶的應(yīng)用軟件的中間。
[0004]中間件在操作系統(tǒng)、網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)之上,應(yīng)用軟件的下層,總的作用是為處于自己上層的應(yīng)用軟件提供運(yùn)行與開(kāi)發(fā)的環(huán)境,幫助用戶靈活、高效地開(kāi)發(fā)和集成復(fù)雜的應(yīng)用軟件。在眾多關(guān)于中間件的定義中,比較普遍被接受的是IDC表述的:中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源,中間件位于客戶機(jī)服務(wù)器的操作系統(tǒng)之上,管理計(jì)算資源和網(wǎng)絡(luò)通信。
[0005]IDC對(duì)中間件的定義表明,中間件是一類軟件,而非一種軟件;中間件不僅僅實(shí)現(xiàn)互連,還要實(shí)現(xiàn)應(yīng)用之間的互操作;中間件是基于分布式處理的軟件,最突出的特點(diǎn)是其網(wǎng)絡(luò)通信功能。
[0006]中間件分類(IDC的分類):大致可分為六類:終端仿真/屏幕轉(zhuǎn)換中間件、數(shù)據(jù)訪問(wèn)中間件、遠(yuǎn)程過(guò)程調(diào)用中間件、消息中間件、交易中間件、對(duì)象中間件。
[0007]數(shù)據(jù)訪問(wèn)服務(wù)中間件,就是指一切連接應(yīng)用程序和數(shù)據(jù)庫(kù)的軟件。
[0008]內(nèi)存數(shù)據(jù)庫(kù),顧名思義就是將數(shù)據(jù)放在內(nèi)存中直接操作的數(shù)據(jù)庫(kù)。相對(duì)于磁盤,內(nèi)存的數(shù)據(jù)讀寫(xiě)速度要高出幾個(gè)數(shù)量級(jí),將數(shù)據(jù)保存在內(nèi)存中相比從磁盤上訪問(wèn)能夠極大地提尚應(yīng)用的性能。
[0009]內(nèi)存數(shù)據(jù)庫(kù)拋棄了磁盤數(shù)據(jù)管理的傳統(tǒng)方式,基于全部數(shù)據(jù)都在內(nèi)存中重新設(shè)計(jì)了體系結(jié)構(gòu),并且在數(shù)據(jù)緩存、快速算法、并行操作方面也進(jìn)行了相應(yīng)的改進(jìn),所以數(shù)據(jù)處理速度比傳統(tǒng)數(shù)據(jù)庫(kù)的數(shù)據(jù)處理速度要快很多,一般都在10倍以上。內(nèi)存數(shù)據(jù)庫(kù)的最大特點(diǎn)是其“主拷貝”或“工作版本”常駐內(nèi)存,即活動(dòng)事務(wù)只與實(shí)時(shí)內(nèi)存數(shù)據(jù)庫(kù)的內(nèi)存拷貝打、.、、/.■父道。
[0010]現(xiàn)有技術(shù)中,越來(lái)越多的依賴于數(shù)據(jù)庫(kù)存儲(chǔ)的各類數(shù)據(jù)。但是,傳統(tǒng)的數(shù)據(jù)庫(kù)的讀寫(xiě)操作較為緩慢,往往成為數(shù)據(jù)訪問(wèn)的瓶頸。而且,直接對(duì)數(shù)據(jù)庫(kù)的讀取存在著諸多安全問(wèn)題。因而,亟需要一種對(duì)數(shù)據(jù)庫(kù)訪問(wèn)的數(shù)據(jù)中間層的實(shí)現(xiàn),以提高對(duì)數(shù)據(jù)庫(kù)訪問(wèn)的速度效率和安全性。
【發(fā)明內(nèi)容】
[0011]本發(fā)明提供一種數(shù)據(jù)中間層實(shí)現(xiàn)方法及系統(tǒng),用以解決現(xiàn)有技術(shù)中對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)存在的速度慢、效率低、安全性差的問(wèn)題。
[0012]本發(fā)明提供一種數(shù)據(jù)中間層實(shí)現(xiàn)方法,包括:
[0013]部署配置內(nèi)存數(shù)據(jù)庫(kù);
[0014]設(shè)定所述內(nèi)存數(shù)據(jù)庫(kù)和文件數(shù)據(jù)庫(kù)中數(shù)據(jù)表的對(duì)應(yīng)關(guān)系;
[0015]應(yīng)用服務(wù)訪問(wèn)所述內(nèi)存數(shù)據(jù)庫(kù)提出讀寫(xiě)請(qǐng)求;
[0016]所述內(nèi)存數(shù)據(jù)庫(kù)在響應(yīng)所述讀寫(xiě)請(qǐng)求之后,根據(jù)所述對(duì)應(yīng)關(guān)系,與所述文件數(shù)據(jù)庫(kù)進(jìn)行同步。
[0017]所述方法還包括:
[0018]所述內(nèi)存數(shù)據(jù)庫(kù)與文件數(shù)據(jù)庫(kù)結(jié)構(gòu)一致。
[0019]所述對(duì)應(yīng)關(guān)系包括:
[0020]將文件數(shù)據(jù)庫(kù)中存儲(chǔ)的只讀型數(shù)據(jù)添加到內(nèi)存數(shù)據(jù)庫(kù)readonly類型的cachegroup 中;
[0021]將文件數(shù)據(jù)庫(kù)中存儲(chǔ)的需要讀寫(xiě)的數(shù)據(jù)添加到內(nèi)存數(shù)據(jù)庫(kù)writethrough global類型的 cache group ο
[0022]所述方法還包括:
[0023]啟動(dòng)replicat1nagent,將文件數(shù)據(jù)庫(kù)中數(shù)據(jù)加載到內(nèi)存數(shù)據(jù)庫(kù)中;
[0024]調(diào)整應(yīng)用服務(wù)的數(shù)據(jù)訪問(wèn)方向,將應(yīng)用服務(wù)對(duì)文件數(shù)據(jù)庫(kù)的訪問(wèn)修改為對(duì)內(nèi)存數(shù)據(jù)庫(kù)的訪問(wèn)。
[0025]所述方法還包括:
[0026]所述內(nèi)存數(shù)據(jù)庫(kù)根據(jù)所述應(yīng)用服務(wù)的讀寫(xiě)請(qǐng)求,預(yù)判所述應(yīng)用服務(wù)下一步可能讀取數(shù)據(jù)內(nèi)容,向所述文件數(shù)據(jù)庫(kù)中讀取所述數(shù)據(jù)內(nèi)容。
[0027]所述方法還包括:
[0028]所述內(nèi)存數(shù)據(jù)庫(kù)對(duì)于所述應(yīng)用服務(wù)寫(xiě)入的數(shù)據(jù)內(nèi)容,預(yù)判所述應(yīng)用服務(wù)是否會(huì)立刻讀取,若是,不與所述文件數(shù)據(jù)庫(kù)同步;否則,與所述文件數(shù)據(jù)庫(kù)同步。
[0029]—種數(shù)據(jù)中間層實(shí)現(xiàn)系統(tǒng),包括:
[0030]內(nèi)存數(shù)據(jù)庫(kù)部署單元,用于部署配置內(nèi)存數(shù)據(jù)庫(kù);
[0031]對(duì)應(yīng)關(guān)系設(shè)定單元,用于部署配置內(nèi)存數(shù)據(jù)庫(kù);
[0032]讀寫(xiě)處理單元,用于接收所述應(yīng)用服務(wù)的讀寫(xiě)請(qǐng)求;
[0033]內(nèi)存數(shù)據(jù)庫(kù)單元,用于在響應(yīng)所述讀寫(xiě)請(qǐng)求之后,根據(jù)所述對(duì)應(yīng)關(guān)系,與所述文件數(shù)據(jù)庫(kù)進(jìn)行同步。
[0034]所述系統(tǒng)還包括:
[0035]所述內(nèi)存數(shù)據(jù)庫(kù)單元還用于啟動(dòng)replicat1n agent,將文件數(shù)據(jù)庫(kù)中數(shù)據(jù)加載到內(nèi)存數(shù)據(jù)庫(kù)中;
[0036]所述讀寫(xiě)處理單元還用于調(diào)整應(yīng)用服務(wù)的數(shù)據(jù)訪問(wèn)方向,將應(yīng)用服務(wù)對(duì)文件數(shù)據(jù)庫(kù)的訪問(wèn)修改為對(duì)內(nèi)存數(shù)據(jù)庫(kù)的訪問(wèn)。
[0037]所述內(nèi)存數(shù)據(jù)庫(kù)單元還用于:
[0038]根據(jù)所述應(yīng)用服務(wù)的讀寫(xiě)請(qǐng)求,預(yù)判所述應(yīng)用服務(wù)下一步可能讀取數(shù)據(jù)內(nèi)容,向所述文件數(shù)據(jù)庫(kù)中讀取所述數(shù)據(jù)內(nèi)容。
[0039]所述內(nèi)存數(shù)據(jù)庫(kù)單元還用于:
[0040]對(duì)所述應(yīng)用服務(wù)寫(xiě)入的數(shù)據(jù)內(nèi)容,預(yù)判所述應(yīng)用服務(wù)是否會(huì)立刻讀取,若是,不與所述文件數(shù)據(jù)庫(kù)同步;否則,與所述文件數(shù)據(jù)庫(kù)同步。
[0041]本發(fā)明實(shí)施例部署配置內(nèi)存數(shù)據(jù)庫(kù);設(shè)定所述內(nèi)存數(shù)據(jù)庫(kù)和文件數(shù)據(jù)庫(kù)中數(shù)據(jù)表的對(duì)應(yīng)關(guān)系;應(yīng)用服務(wù)訪問(wèn)所述內(nèi)存數(shù)據(jù)庫(kù)提出讀寫(xiě)請(qǐng)求;所述內(nèi)存數(shù)據(jù)庫(kù)在響應(yīng)所述讀寫(xiě)請(qǐng)求之后,根據(jù)所述對(duì)應(yīng)關(guān)系,與所述文件數(shù)據(jù)庫(kù)進(jìn)行同步。本發(fā)明實(shí)施例的方案,能夠提高文件數(shù)據(jù)庫(kù)訪問(wèn)的速度和效率,并提高數(shù)據(jù)安全性,極大的提高了用戶體驗(yàn)度。
[0042]本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說(shuō)明書(shū)中闡述,并且,部分地從說(shuō)明書(shū)中變得顯而易見(jiàn),或者通過(guò)實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過(guò)在所寫(xiě)的說(shuō)明書(shū)、權(quán)利要求書(shū)、以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。
[0043]下面通過(guò)附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
【附圖說(shuō)明】
[0044]附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說(shuō)明書(shū)的一部分,與本發(fā)明的實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:
[0045]圖1為本發(fā)明實(shí)施例1提供的一種數(shù)據(jù)中間層實(shí)現(xiàn)方法原理流程圖;
[0046]圖2為本發(fā)明實(shí)施例2提供的一種數(shù)據(jù)中間層實(shí)現(xiàn)系統(tǒng)結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0047]以下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說(shuō)明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說(shuō)明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0048]如圖1所示,為本發(fā)明實(shí)施例1提供的一種數(shù)據(jù)中間層實(shí)現(xiàn)方法原理流程圖,其中,
[0049]步驟11,部署配置內(nèi)存數(shù)據(jù)庫(kù)。
[0050]內(nèi)存數(shù)據(jù)庫(kù),顧名思義就是將數(shù)據(jù)放在內(nèi)存中直接操作的數(shù)據(jù)庫(kù)。相對(duì)于磁盤,內(nèi)存的數(shù)據(jù)讀寫(xiě)速度要高出幾個(gè)數(shù)量級(jí),將數(shù)據(jù)保存在內(nèi)存中相比從磁盤上訪問(wèn)能夠極大地提高應(yīng)用的性能。同時(shí),內(nèi)存數(shù)據(jù)庫(kù)拋棄了磁盤數(shù)據(jù)管理的傳統(tǒng)方式,基于全部數(shù)據(jù)都在內(nèi)存中重新設(shè)計(jì)了體系結(jié)構(gòu),并且在數(shù)據(jù)緩存、快速算法、并行操作方面也進(jìn)行了相應(yīng)的改進(jìn),所以數(shù)據(jù)處理速度比傳統(tǒng)數(shù)據(jù)庫(kù)的數(shù)據(jù)處理速度要快很多,一般都在10倍以上。內(nèi)存數(shù)據(jù)庫(kù)的最大特點(diǎn)是其"主拷貝"或"工作版本"常駐內(nèi)存,即活動(dòng)事務(wù)只與實(shí)時(shí)內(nèi)存數(shù)據(jù)庫(kù)的內(nèi)存拷貝打交道。顯然,它要求較大的內(nèi)存量,但并非任何時(shí)刻整個(gè)數(shù)據(jù)庫(kù)都存放在內(nèi)存,即內(nèi)存數(shù)據(jù)庫(kù)系統(tǒng)還是要處理I/o。
[0051]內(nèi)存數(shù)據(jù)庫(kù)是以犧牲內(nèi)存資源為代價(jià)換取數(shù)據(jù)處理實(shí)時(shí)性的,內(nèi)存數(shù)據(jù)庫(kù)和磁盤數(shù)據(jù)庫(kù)都是當(dāng)今信息社會(huì)里每個(gè)企業(yè)所必須的關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品,磁盤數(shù)據(jù)庫(kù)解決的是大容量存儲(chǔ)和數(shù)據(jù)分析問(wèn)題,而內(nèi)存數(shù)據(jù)庫(kù)解決的是實(shí)時(shí)處理和高并發(fā)問(wèn)題。兩者的存在是相輔相成的,內(nèi)存數(shù)據(jù)庫(kù)的事務(wù)實(shí)時(shí)處理性能要遠(yuǎn)強(qiáng)于磁盤數(shù)據(jù)庫(kù)。但是相對(duì)的,他的數(shù)據(jù)安全方面還沒(méi)有達(dá)到磁盤數(shù)據(jù)庫(kù)比肩的地步。
[0052]內(nèi)存數(shù)據(jù)庫(kù)將物理內(nèi)存作為數(shù)據(jù)的第一存儲(chǔ)介質(zhì),而將磁盤作為備份。隨著電信業(yè)務(wù)的發(fā)展,系統(tǒng)對(duì)實(shí)時(shí)性的要求和對(duì)業(yè)務(wù)靈活修改的要求非常高,在此種情況下對(duì)于內(nèi)存數(shù)據(jù)庫(kù)的需求也越來(lái)越高。磁盤數(shù)據(jù)庫(kù)的做法是將數(shù)據(jù)存入內(nèi)存中進(jìn)行處理,這種方式的可管理性及數(shù)據(jù)安全可靠性都沒(méi)有保障。而內(nèi)存數(shù)據(jù)庫(kù)正是針對(duì)這一弱點(diǎn)進(jìn)行了改進(jìn)。
[0053]內(nèi)存數(shù)據(jù)庫(kù)的技術(shù),一個(gè)很重要的特點(diǎn),是可以對(duì)內(nèi)存中的數(shù)據(jù)實(shí)現(xiàn)全事務(wù)處理,這是僅僅把數(shù)據(jù)以數(shù)組等形式放在內(nèi)存中完全不同的。并且,內(nèi)存數(shù)據(jù)庫(kù)是與應(yīng)用無(wú)關(guān)的,顯然這種體系結(jié)構(gòu)具有其合理性。內(nèi)存引擎可以實(shí)現(xiàn)查詢與存檔功能使用的是完全相同的數(shù)據(jù)庫(kù),同時(shí)內(nèi)存表與磁盤表也使用的是完全相同的存取方法。存儲(chǔ)的選擇,對(duì)于應(yīng)用開(kāi)發(fā)者而言是完全透明的。
[0054]對(duì)于內(nèi)存數(shù)據(jù)庫(kù)而言,實(shí)現(xiàn)了數(shù)據(jù)在內(nèi)存中的管理,而不僅僅是作為數(shù)據(jù)庫(kù)的緩存。不像其它將磁盤數(shù)據(jù)塊緩存到主存中的數(shù)據(jù)庫(kù),內(nèi)存數(shù)據(jù)庫(kù)的內(nèi)存引擎使用了為隨機(jī)訪問(wèn)內(nèi)存而特別設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu)和算法,這種設(shè)計(jì)使其避免了因使用排序命令而經(jīng)常破壞緩存數(shù)據(jù)庫(kù)性能的問(wèn)題。通過(guò)內(nèi)存數(shù)據(jù)庫(kù),減少了磁盤1/0,能夠達(dá)到了以磁盤I/O為主的傳統(tǒng)數(shù)據(jù)庫(kù)無(wú)法與其相比擬的處理速度。
[0055]本實(shí)施例中,內(nèi)存數(shù)據(jù)庫(kù)需要與磁盤數(shù)據(jù)庫(kù)(文件數(shù)據(jù)庫(kù))結(jié)構(gòu)一致,這樣方便內(nèi)存數(shù)據(jù)庫(kù)與文件數(shù)據(jù)庫(kù)之間的數(shù)據(jù)對(duì)應(yīng)和操作。文件數(shù)據(jù)庫(kù)是關(guān)系數(shù)據(jù)庫(kù),則內(nèi)存數(shù)據(jù)庫(kù)一樣需要設(shè)置為關(guān)系數(shù)據(jù)庫(kù)。實(shí)際上,內(nèi)存數(shù)據(jù)庫(kù)可以是文件數(shù)據(jù)庫(kù)的一個(gè)鏡像,只是規(guī)模比文件數(shù)據(jù)庫(kù)小,其中存儲(chǔ)一部分文件數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
[0056]步驟12,設(shè)定內(nèi)存數(shù)據(jù)庫(kù)和文件數(shù)據(jù)庫(kù)中數(shù)據(jù)表的對(duì)應(yīng)關(guān)系。
[0057]數(shù)據(jù)庫(kù)是大型應(yīng)用系統(tǒng)中的重要組成部分,往往隨著應(yīng)用系統(tǒng)功能的豐富以及時(shí)間的推移,數(shù)據(jù)庫(kù)中的數(shù)據(jù)都會(huì)呈不同程度的增長(zhǎng),而傳統(tǒng)的數(shù)據(jù)庫(kù)都是基于磁盤的數(shù)據(jù)庫(kù),如oracle、db2、SQL Server等。當(dāng)磁盤數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)達(dá)到一定程度時(shí),數(shù)據(jù)庫(kù)會(huì)出現(xiàn)1瓶頸,性能也會(huì)嚴(yán)重下降,應(yīng)用的訪問(wèn)也會(huì)緩慢等待。面對(duì)這種情況,可以在配置大內(nèi)存服務(wù)器上部署內(nèi)存數(shù)據(jù)庫(kù)與應(yīng)用,進(jìn)而利用內(nèi)存數(shù)據(jù)庫(kù)技術(shù)將磁盤中存儲(chǔ)的熱點(diǎn)數(shù)據(jù)緩存到內(nèi)存中,以達(dá)到消除磁盤1的瓶頸,提高系統(tǒng)的性能。
[0058]對(duì)于內(nèi)存數(shù)據(jù)庫(kù)與文件數(shù)據(jù)庫(kù)的對(duì)應(yīng),不僅需要數(shù)據(jù)的對(duì)應(yīng),還需要建立和管理相關(guān)對(duì)應(yīng)機(jī)制,以自動(dòng)完成數(shù)據(jù)在兩個(gè)數(shù)據(jù)庫(kù)之間的讀寫(xiě)與同步。
[0059]配置文件數(shù)據(jù)庫(kù),建立管理用戶,并賦予相應(yīng)的權(quán)限;配置內(nèi)存數(shù)據(jù)庫(kù),建立緩存管理用戶,將cache group加入到內(nèi)存數(shù)據(jù)庫(kù)中,啟動(dòng)cache agent ;定義cache group,通過(guò)分析應(yīng)用訪問(wèn)的數(shù)據(jù)是做何種操作,包括只讀或者可讀可寫(xiě),其中:
[0060]將磁盤數(shù)據(jù)庫(kù)中存儲(chǔ)的只讀型數(shù)據(jù)添加到內(nèi)存數(shù)據(jù)庫(kù)readonly類型的cachegroup中,即這部分內(nèi)存中的數(shù)據(jù)只讀,不會(huì)同步回磁盤數(shù)據(jù)庫(kù)中去;將磁盤數(shù)據(jù)庫(kù)中存儲(chǔ)的需要讀寫(xiě)的數(shù)據(jù)添加到內(nèi)存數(shù)據(jù)庫(kù)writethrough global類型的cache group中,即這部分內(nèi)存中的數(shù)據(jù)可讀可寫(xiě),并會(huì)實(shí)時(shí)同步回磁盤數(shù)據(jù)庫(kù)中去。這樣,保障了對(duì)于各類數(shù)據(jù)的對(duì)應(yīng)操作。
[0061]cache group面向的是靜態(tài)的緩存系統(tǒng),比如google家的下載站,用來(lái)緩存對(duì)應(yīng)的文件區(qū)塊。一經(jīng)set操作,key對(duì)應(yīng)的value就不再變化。使用的時(shí)候,需要自定義緩存缺失時(shí)使用的set操作。當(dāng)發(fā)生miss的時(shí)候,首先會(huì)從根據(jù)key的consist hash值找到對(duì)應(yīng)的peer,去peer里尋找對(duì)應(yīng)的value。如果找不到,則使用自定義的get函數(shù)從慢緩存(比如db,文件讀取)獲取alue,并填充對(duì)應(yīng)peer。下一次獲取,就直接從cache里取出來(lái),不再訪問(wèn)慢緩存。另外,為避免網(wǎng)絡(luò)變成瓶頸,本地peer獲取cache后,會(huì)存在本地的1calCache里,通過(guò)LRU算法進(jìn)行管理。
[0062]cache group 的代碼分為 consistenhash, cache grouppb, lru, singleflight 等幾個(gè)目錄,分別存放一致性哈希,cache group的protobuf協(xié)議,Iru算法實(shí)現(xiàn),用來(lái)保證求值操作只執(zhí)行一次的singleflight。
[0063]在配置完成后,啟動(dòng)r印licat1n agent,將文件數(shù)據(jù)庫(kù)中數(shù)據(jù)加載到內(nèi)存數(shù)據(jù)庫(kù)中;調(diào)整應(yīng)用服務(wù)的數(shù)據(jù)訪問(wèn)方向,將應(yīng)用服務(wù)對(duì)文件數(shù)據(jù)庫(kù)的訪問(wèn)修改為對(duì)內(nèi)存數(shù)據(jù)庫(kù)的訪問(wèn)。應(yīng)用服務(wù)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)將不再直接訪問(wèn)文件數(shù)據(jù)庫(kù),而是指向內(nèi)存數(shù)據(jù)庫(kù)。
[0064]這里,首先需要將內(nèi)存數(shù)據(jù)庫(kù)和文件數(shù)據(jù)庫(kù)中的數(shù)據(jù)同步。數(shù)據(jù)同步并不是所有的數(shù)據(jù)全部同步,而是根據(jù)實(shí)際應(yīng)用服務(wù)請(qǐng)求操作,將需要的數(shù)據(jù)同步到內(nèi)存數(shù)據(jù)庫(kù)。應(yīng)用服務(wù)首次訪問(wèn)內(nèi)存數(shù)據(jù)庫(kù)時(shí),內(nèi)存數(shù)據(jù)庫(kù)中并沒(méi)有數(shù)據(jù)。根據(jù)應(yīng)用服務(wù)的請(qǐng)求,將需要的數(shù)據(jù)同步到內(nèi)存數(shù)據(jù)庫(kù)中,然后返回給應(yīng)用服務(wù)。如果應(yīng)用服務(wù)進(jìn)行寫(xiě)操作,則先寫(xiě)入內(nèi)存數(shù)據(jù)庫(kù)中,然后再由內(nèi)存數(shù)據(jù)庫(kù)將該數(shù)據(jù)同步到文件數(shù)據(jù)庫(kù)。
[0065]內(nèi)存數(shù)據(jù)庫(kù)中的數(shù)據(jù)并不是永久保存的,而是根據(jù)需要保存。對(duì)于不需要保存的數(shù)據(jù),根據(jù)堆棧的原理,將最早使用的數(shù)據(jù)刪除并寫(xiě)入新的數(shù)據(jù)。
[0066]內(nèi)存數(shù)據(jù)庫(kù)與文件數(shù)據(jù)庫(kù)的同步,有著多種方案,例如,內(nèi)存數(shù)據(jù)庫(kù)將事務(wù)日志記錄寫(xiě)入日志緩存區(qū)。內(nèi)存數(shù)據(jù)庫(kù)是一種內(nèi)存優(yōu)化的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng),通過(guò)數(shù)據(jù)和元數(shù)據(jù)都存放在物理內(nèi)存中,提高數(shù)據(jù)庫(kù)的操作響應(yīng)時(shí)間。事務(wù)日志是一個(gè)與數(shù)據(jù)庫(kù)文件分開(kāi)的文件,存儲(chǔ)對(duì)數(shù)據(jù)庫(kù)進(jìn)行的所有更改,并全部記錄插入、更新、刪除、提交、回退和數(shù)據(jù)庫(kù)模式變化。在缺省情況下,所有數(shù)據(jù)庫(kù)都使用事務(wù)日志。事務(wù)日志的使用是可選的,但是,除非因特殊原因而不使用,否則應(yīng)始終使用。運(yùn)行帶有事務(wù)日志的數(shù)據(jù)庫(kù)可提供更強(qiáng)的故障保護(hù)功能、更好的性能以及數(shù)據(jù)復(fù)制功能。
[0067]所述事務(wù)日志具體可以為WAL事務(wù)日志文件,用于記錄內(nèi)存數(shù)據(jù)庫(kù)的事務(wù)處理信息。WAL是一種實(shí)現(xiàn)事務(wù)日志的標(biāo)準(zhǔn)方法。簡(jiǎn)言之,WAL的中心思想是對(duì)數(shù)據(jù)文件的修改(WAL是表和索引的載體)必須是只能發(fā)生在這些修改已經(jīng)記錄了日志之后。日志緩存區(qū)中的事務(wù)日志為無(wú)格式事務(wù)日志文件。
[0068]對(duì)于數(shù)據(jù)庫(kù)而言,為了實(shí)現(xiàn)基本的ACID特性,必須在事務(wù)提交之前,將事務(wù)內(nèi)容以一定的格式寫(xiě)入到事務(wù)日志文件中。ACID特性:指事務(wù)的原子性、一致性、隔離性以及持久性。事務(wù)的原子性(Atomicity)是指一個(gè)事務(wù)要么全部執(zhí)行,要么不執(zhí)行。事務(wù)的一致性(Consistency)是指事務(wù)把數(shù)據(jù)庫(kù)從一個(gè)一致的狀態(tài)轉(zhuǎn)變到另一個(gè)狀態(tài)。
[0069]事務(wù)的隔尚性(Isolat1n)是在事務(wù)提交以前,其他事務(wù)察覺(jué)不到事務(wù)的影響。也就是兩個(gè)以上的事務(wù)不會(huì)出現(xiàn)交錯(cuò)執(zhí)行的狀態(tài)。因?yàn)檫@樣可能會(huì)導(dǎo)致數(shù)據(jù)不一致。事務(wù)的持久性(Durability)是指一旦事務(wù)提交,它是永久的。也就是事務(wù)運(yùn)行成功以后,就系統(tǒng)的更新是永久的,不會(huì)無(wú)緣無(wú)故的回滾。
[0070]而對(duì)于內(nèi)存數(shù)據(jù)庫(kù),為了達(dá)到極高的性能,往往會(huì)降低“D”特性的要求,即不采用文件數(shù)據(jù)庫(kù)那樣每個(gè)事務(wù)日志記錄首先必須寫(xiě)入磁盤文件且寫(xiě)入成功之后才能真正的提交事務(wù),而是先把事務(wù)日志記錄寫(xiě)入到操作系統(tǒng)共享內(nèi)存區(qū)的一個(gè)事務(wù)日志緩存區(qū),之后由日志刷新進(jìn)程異步地將事務(wù)日志刷出到磁盤事務(wù)日志文件上。因此,內(nèi)存數(shù)據(jù)庫(kù)并不嚴(yán)格的遵守ACID特性。
[0071 ] 定義內(nèi)存數(shù)據(jù)庫(kù)和文件數(shù)據(jù)庫(kù)數(shù)據(jù)表的對(duì)應(yīng)關(guān)系。事務(wù)日志刷新進(jìn)程異步地將所述日志緩存區(qū)中的所述事務(wù)日志的信息,按照所述內(nèi)存數(shù)據(jù)庫(kù)和文件數(shù)據(jù)庫(kù)數(shù)據(jù)表的對(duì)應(yīng)關(guān)系,同步到文件數(shù)據(jù)庫(kù)中。文件數(shù)據(jù)庫(kù)可以為Oracle、或DB2、或Informix等,適合于聯(lián)機(jī)事務(wù)處理(Online Transact1n Processing,0LTP)。事務(wù)日志緩存區(qū)中的所述事務(wù)日志為無(wú)格式事務(wù)日志文件。
[0072]由于可以根據(jù)需要定義內(nèi)存數(shù)據(jù)庫(kù)和文件數(shù)據(jù)庫(kù)數(shù)據(jù)表的對(duì)應(yīng)關(guān)系,因此內(nèi)存數(shù)據(jù)庫(kù)和文件數(shù)據(jù)庫(kù)數(shù)據(jù)表的對(duì)應(yīng)關(guān)系是可配置的。所述方法是根據(jù)事務(wù)日志刷新進(jìn)程,異步地將所述日志緩存區(qū)中的所述事務(wù)日志中的信息,按照所述內(nèi)存數(shù)據(jù)庫(kù)和文件數(shù)據(jù)庫(kù)數(shù)據(jù)表的對(duì)應(yīng)關(guān)系,同步到文件數(shù)據(jù)庫(kù)中。因此,可以保證內(nèi)存數(shù)據(jù)庫(kù)和文件數(shù)據(jù)庫(kù)約束一致。
[0073]數(shù)據(jù)庫(kù)約束是為了保證數(shù)據(jù)的完整性而實(shí)現(xiàn)的一套機(jī)制。主要包括有N0TNULL約束、UNIQUE約束、PRIMARY KEY約束、FOREIGN KEY約束。NOT NULL約束應(yīng)用在單一的數(shù)據(jù)列上,并且它保護(hù)的數(shù)據(jù)列必須要有數(shù)據(jù)值。UNIQUE約束可以保護(hù)表中的多個(gè)數(shù)據(jù)列,保證在保護(hù)的數(shù)據(jù)列中任何兩行的數(shù)據(jù)都不相同。PRIMARY KYE約束可以保護(hù)一個(gè)或多個(gè)列。PRIAMRY KEY約束可與NOT NULL約束共同作用于每一數(shù)據(jù)列。表有唯一的主鍵約束。FOREIGN KEY約束保護(hù)一個(gè)或者多個(gè)數(shù)據(jù)列,保證每個(gè)數(shù)據(jù)行的數(shù)據(jù)包含一個(gè)或多個(gè)空值,或者在保護(hù)的數(shù)據(jù)列上同時(shí)擁有主鍵約束或唯一約束。
[0074]內(nèi)存數(shù)據(jù)庫(kù)和文件數(shù)據(jù)庫(kù)數(shù)據(jù)表的對(duì)應(yīng)關(guān)系,可以是通過(guò)模式文件(schema)定義的。內(nèi)存數(shù)據(jù)庫(kù)到文件數(shù)據(jù)庫(kù)的數(shù)據(jù)同步方法,可以通過(guò)schema將無(wú)格式的事務(wù)日志文件進(jìn)行格式轉(zhuǎn)換,插入到文件數(shù)據(jù)庫(kù)中。通過(guò)傳輸代理(cacheagent)保證內(nèi)存數(shù)據(jù)庫(kù)和文件數(shù)據(jù)庫(kù)的約束一致、數(shù)據(jù)類型兼容。
[0075]步驟13,應(yīng)用服務(wù)訪問(wèn)內(nèi)存數(shù)據(jù)庫(kù)提出讀寫(xiě)請(qǐng)求。
[0076]由于修改了應(yīng)用服務(wù)訪問(wèn)數(shù)據(jù)庫(kù)的指向,應(yīng)用服務(wù)所有訪問(wèn)均指向內(nèi)存數(shù)據(jù)庫(kù),因而,應(yīng)用服務(wù)需要向內(nèi)存數(shù)據(jù)庫(kù)提出讀寫(xiě)請(qǐng)求。對(duì)于讀數(shù)據(jù)的請(qǐng)求,內(nèi)存數(shù)據(jù)庫(kù)可以現(xiàn)在自身查找是否存在該數(shù)據(jù),若有,直接回復(fù)該請(qǐng)求。若內(nèi)存數(shù)據(jù)庫(kù)中沒(méi)有所請(qǐng)求的數(shù)據(jù),則需要向文件數(shù)據(jù)庫(kù)請(qǐng)求該數(shù)據(jù),將該數(shù)據(jù)同步到內(nèi)存數(shù)據(jù)庫(kù),再回應(yīng)應(yīng)用服務(wù)的讀請(qǐng)求。對(duì)于寫(xiě)操作,內(nèi)存數(shù)據(jù)庫(kù)直接寫(xiě)入數(shù)據(jù)到相應(yīng)位置。
[0077]由于內(nèi)存數(shù)據(jù)庫(kù)的效率很高,則即使需要從文件數(shù)據(jù)庫(kù)中請(qǐng)求數(shù)據(jù),所帶來(lái)的時(shí)延也是可控的。
[0078]步驟14,內(nèi)存數(shù)據(jù)庫(kù)在響應(yīng)讀寫(xiě)請(qǐng)求之后,根據(jù)對(duì)應(yīng)關(guān)系,與文件數(shù)據(jù)庫(kù)進(jìn)行同步。
[0079]內(nèi)存數(shù)據(jù)庫(kù)在響應(yīng)了應(yīng)用服務(wù)的讀寫(xiě)請(qǐng)求,返回相關(guān)數(shù)據(jù)后,需要對(duì)得到的數(shù)據(jù)進(jìn)行整理。對(duì)于寫(xiě)入的數(shù)據(jù),異步的同步到文件數(shù)據(jù)庫(kù)中,以保證文件數(shù)據(jù)庫(kù)的內(nèi)容完整。對(duì)于從文件數(shù)據(jù)庫(kù)中讀取的數(shù)據(jù),仍然根據(jù)堆棧的先入先出原理,保存在內(nèi)存數(shù)據(jù)庫(kù)中,只在需要寫(xiě)入更多數(shù)據(jù)的時(shí)候,將最早使用過(guò)的數(shù)據(jù)刪除。
[0080]為了提高讀寫(xiě)的效率,內(nèi)存數(shù)據(jù)庫(kù)根據(jù)所述應(yīng)用服務(wù)的讀寫(xiě)請(qǐng)求,預(yù)判所述應(yīng)用服務(wù)下一步可能讀取數(shù)據(jù)內(nèi)容,向所述文件數(shù)據(jù)庫(kù)中讀取所述數(shù)據(jù)內(nèi)容。這一步驟,是為了更好的提高效率,設(shè)定一個(gè)預(yù)判的過(guò)程。應(yīng)用服務(wù)在讀取相關(guān)數(shù)據(jù)時(shí)候,內(nèi)存數(shù)據(jù)庫(kù)根據(jù)關(guān)聯(lián)算法,計(jì)算得到應(yīng)用服務(wù)下一步可能要讀取的數(shù)據(jù),預(yù)先讀取到內(nèi)存數(shù)據(jù)庫(kù)中,以方便應(yīng)用服務(wù)下一步讀取數(shù)據(jù)得到更快的響應(yīng)?,F(xiàn)有技術(shù)中存在很多預(yù)判的關(guān)聯(lián)算法,本實(shí)施例對(duì)此不做限定。
[0081]進(jìn)一步的,內(nèi)存數(shù)據(jù)庫(kù)對(duì)于應(yīng)用服務(wù)寫(xiě)入的數(shù)據(jù)內(nèi)容,預(yù)判應(yīng)用服務(wù)是否會(huì)立刻讀取,若是,不與所述文件數(shù)據(jù)庫(kù)同步;否則,與所述文件數(shù)據(jù)庫(kù)同步。本步驟同樣為了提高效率,對(duì)于寫(xiě)入的內(nèi)容需要暫時(shí)保存在內(nèi)存數(shù)據(jù)庫(kù)中,以備應(yīng)用服務(wù)在短時(shí)間內(nèi)的讀取請(qǐng)求。而只在空閑時(shí)候以異步的方式將該數(shù)據(jù)與文件數(shù)據(jù)庫(kù)同步。
[0082]如圖2所示,為本發(fā)明實(shí)施例2提供的一種數(shù)據(jù)中間層實(shí)現(xiàn)系統(tǒng)結(jié)構(gòu)示意圖,其中,
[0083]內(nèi)存數(shù)據(jù)庫(kù)部署單元21,用于部署配置內(nèi)存數(shù)據(jù)庫(kù);
[0084]對(duì)應(yīng)關(guān)系設(shè)定單元22,用于部署配置內(nèi)存數(shù)據(jù)庫(kù);
[0085]讀寫(xiě)處理單元23,用于接收應(yīng)用服務(wù)的讀寫(xiě)請(qǐng)求;
[0086]內(nèi)存數(shù)據(jù)庫(kù)單元24,用于在響應(yīng)讀寫(xiě)請(qǐng)求之后,根據(jù)對(duì)應(yīng)關(guān)系,與文件數(shù)據(jù)庫(kù)進(jìn)行同步。
[0087]進(jìn)一步的,上述系統(tǒng)還包括:
[0088]內(nèi)存數(shù)據(jù)庫(kù)單元24還用于啟動(dòng)replicat1n agent,將文件數(shù)據(jù)庫(kù)中數(shù)據(jù)加載到內(nèi)存數(shù)據(jù)庫(kù)中;
[0089]讀寫(xiě)處理單元23還用于調(diào)整應(yīng)用服務(wù)的數(shù)據(jù)訪問(wèn)方向,將應(yīng)用服務(wù)對(duì)文件數(shù)據(jù)庫(kù)的訪問(wèn)修改為對(duì)內(nèi)存數(shù)據(jù)庫(kù)的訪問(wèn)。
[0090]進(jìn)一步的,上述內(nèi)存數(shù)據(jù)庫(kù)單元24還用于:
[0091]根據(jù)應(yīng)用服務(wù)的讀寫(xiě)請(qǐng)求,預(yù)判應(yīng)用服務(wù)下一步可能讀取數(shù)據(jù)內(nèi)容,向文件數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)內(nèi)容。
[0092]進(jìn)一步的,上述內(nèi)存數(shù)據(jù)庫(kù)單元24還用于:
[0093]對(duì)應(yīng)用服務(wù)寫(xiě)入的數(shù)據(jù)內(nèi)容,預(yù)判應(yīng)用服務(wù)是否會(huì)立刻讀取,若是,不與文件數(shù)據(jù)庫(kù)同步;否則,與文件數(shù)據(jù)庫(kù)同步。
[0094]綜上所述,本發(fā)明實(shí)施例部署配置內(nèi)存數(shù)據(jù)庫(kù);設(shè)定所述內(nèi)存數(shù)據(jù)庫(kù)和文件數(shù)據(jù)庫(kù)中數(shù)據(jù)表的對(duì)應(yīng)關(guān)系;應(yīng)用服務(wù)訪問(wèn)所述內(nèi)存數(shù)據(jù)庫(kù)提出讀寫(xiě)請(qǐng)求;所述內(nèi)存數(shù)據(jù)庫(kù)在響應(yīng)所述讀寫(xiě)請(qǐng)求之后,根據(jù)所述對(duì)應(yīng)關(guān)系,與所述文件數(shù)據(jù)庫(kù)進(jìn)行同步。本發(fā)明實(shí)施例的方案,能夠提高文件數(shù)據(jù)庫(kù)訪問(wèn)的速度和效率,并提高數(shù)據(jù)安全性,極大的提高了用戶體驗(yàn)度。
[0095]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0096]本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
[0097]這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
[0098]這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
[0099]顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
【主權(quán)項(xiàng)】
1.一種數(shù)據(jù)中間層實(shí)現(xiàn)方法,其特征在于,包括: 部署配置內(nèi)存數(shù)據(jù)庫(kù); 設(shè)定所述內(nèi)存數(shù)據(jù)庫(kù)和文件數(shù)據(jù)庫(kù)中數(shù)據(jù)表的對(duì)應(yīng)關(guān)系; 應(yīng)用服務(wù)訪問(wèn)所述內(nèi)存數(shù)據(jù)庫(kù)提出讀寫(xiě)請(qǐng)求; 所述內(nèi)存數(shù)據(jù)庫(kù)在響應(yīng)所述讀寫(xiě)請(qǐng)求之后,根據(jù)所述對(duì)應(yīng)關(guān)系,與所述文件數(shù)據(jù)庫(kù)進(jìn)行同步。2.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 所述內(nèi)存數(shù)據(jù)庫(kù)與文件數(shù)據(jù)庫(kù)結(jié)構(gòu)一致。3.如權(quán)利要求1所述的方法,其特征在于,所述對(duì)應(yīng)關(guān)系包括: 將文件數(shù)據(jù)庫(kù)中存儲(chǔ)的只讀型數(shù)據(jù)添加到內(nèi)存數(shù)據(jù)庫(kù)readonly類型的cache group中; 將文件數(shù)據(jù)庫(kù)中存儲(chǔ)的需要讀寫(xiě)的數(shù)據(jù)添加到內(nèi)存數(shù)據(jù)庫(kù)writethrough global類型的 cache group。4.如權(quán)利要求3所述的方法,其特征在于,所述方法還包括: 啟動(dòng)replicat1n agent,將文件數(shù)據(jù)庫(kù)中數(shù)據(jù)加載到內(nèi)存數(shù)據(jù)庫(kù)中; 調(diào)整應(yīng)用服務(wù)的數(shù)據(jù)訪問(wèn)方向,將應(yīng)用服務(wù)對(duì)文件數(shù)據(jù)庫(kù)的訪問(wèn)修改為對(duì)內(nèi)存數(shù)據(jù)庫(kù)的訪問(wèn)。5.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 所述內(nèi)存數(shù)據(jù)庫(kù)根據(jù)所述應(yīng)用服務(wù)的讀寫(xiě)請(qǐng)求,預(yù)判所述應(yīng)用服務(wù)下一步可能讀取數(shù)據(jù)內(nèi)容,向所述文件數(shù)據(jù)庫(kù)中讀取所述數(shù)據(jù)內(nèi)容。6.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 所述內(nèi)存數(shù)據(jù)庫(kù)對(duì)于所述應(yīng)用服務(wù)寫(xiě)入的數(shù)據(jù)內(nèi)容,預(yù)判所述應(yīng)用服務(wù)是否會(huì)立刻讀取,若是,不與所述文件數(shù)據(jù)庫(kù)同步;否則,與所述文件數(shù)據(jù)庫(kù)同步。7.一種數(shù)據(jù)中間層實(shí)現(xiàn)系統(tǒng),其特征在于,包括: 內(nèi)存數(shù)據(jù)庫(kù)部署單元,用于部署配置內(nèi)存數(shù)據(jù)庫(kù); 對(duì)應(yīng)關(guān)系設(shè)定單元,用于部署配置內(nèi)存數(shù)據(jù)庫(kù); 讀寫(xiě)處理單元,用于接收所述應(yīng)用服務(wù)的讀寫(xiě)請(qǐng)求; 內(nèi)存數(shù)據(jù)庫(kù)單元,用于在響應(yīng)所述讀寫(xiě)請(qǐng)求之后,根據(jù)所述對(duì)應(yīng)關(guān)系,與所述文件數(shù)據(jù)庫(kù)進(jìn)行同步。8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 所述內(nèi)存數(shù)據(jù)庫(kù)單元還用于啟動(dòng)replicat1n agent,將文件數(shù)據(jù)庫(kù)中數(shù)據(jù)加載到內(nèi)存數(shù)據(jù)庫(kù)中; 所述讀寫(xiě)處理單元還用于調(diào)整應(yīng)用服務(wù)的數(shù)據(jù)訪問(wèn)方向,將應(yīng)用服務(wù)對(duì)文件數(shù)據(jù)庫(kù)的訪問(wèn)修改為對(duì)內(nèi)存數(shù)據(jù)庫(kù)的訪問(wèn)。9.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述內(nèi)存數(shù)據(jù)庫(kù)單元還用于: 根據(jù)所述應(yīng)用服務(wù)的讀寫(xiě)請(qǐng)求,預(yù)判所述應(yīng)用服務(wù)下一步可能讀取數(shù)據(jù)內(nèi)容,向所述文件數(shù)據(jù)庫(kù)中讀取所述數(shù)據(jù)內(nèi)容。10.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述內(nèi)存數(shù)據(jù)庫(kù)單元還用于: 對(duì)所述應(yīng)用服務(wù)寫(xiě)入的數(shù)據(jù)內(nèi)容,預(yù)判所述應(yīng)用服務(wù)是否會(huì)立刻讀取,若是,不與所述文件數(shù)據(jù)庫(kù)同步;否則,與所述文件數(shù)據(jù)庫(kù)同步。
【文檔編號(hào)】G06F17/30GK105989049SQ201510061991
【公開(kāi)日】2016年10月5日
【申請(qǐng)日】2015年2月5日
【發(fā)明人】章杰
【申請(qǐng)人】天脈聚源(北京)科技有限公司