專利名稱:預(yù)取對象的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種預(yù)取對象的方法,尤其是一種在對象關(guān)系持久化系統(tǒng)中預(yù)取對象的方法。
背景技術(shù):
隨著企業(yè)應(yīng)用軟件系統(tǒng)的日益成熟,系統(tǒng)中的所要處理的數(shù)據(jù)量也呈指數(shù)級增長,使得應(yīng)用負(fù)載日趨嚴(yán)重,加之網(wǎng)絡(luò)帶寬的不足,導(dǎo)致用戶在使用系統(tǒng)時延遲時間過長,因此,提高持久化應(yīng)用性能成為企業(yè)應(yīng)用的主要目標(biāo)。持久化即把內(nèi)存中的數(shù)據(jù)或文檔保存到可永久保存的存儲設(shè)備中,具體是指將內(nèi)存中的數(shù)據(jù)存儲在關(guān)系型的數(shù)據(jù)庫中。
持久化操作包括和數(shù)據(jù)庫相關(guān)的各種操作,持久化系統(tǒng)位于業(yè)務(wù)邏輯層和數(shù)據(jù)庫層中間,負(fù)責(zé)將數(shù)據(jù)對象保存到數(shù)據(jù)庫中。提高持久化應(yīng)用性能的有效的方法是采用緩存技術(shù)。緩存是介于應(yīng)用程序和物理數(shù)據(jù)源之間的存儲介質(zhì),其作用是為了降低應(yīng)用程序?qū)ξ锢頂?shù)據(jù)源訪問的頻率或次數(shù),提高應(yīng)用的運行性能。緩存內(nèi)的數(shù)據(jù)是對物理數(shù)據(jù)源中的數(shù)據(jù)的復(fù)制,應(yīng)用程序在運行時從緩存中讀取數(shù)據(jù)。緩存的介質(zhì)一般采用用于計算機內(nèi)存的隨機存取存儲器,讀、寫速度很快;如果需要存放的數(shù)據(jù)量非常大時,也會采用硬盤作為緩存介質(zhì)。
對于目前的中、大型軟件系統(tǒng)而言,需要持久化的對象種類多、數(shù)量大且關(guān)系復(fù)雜。在大型系統(tǒng)中,具有不同類型的對象,對象之間的映射關(guān)系也相當(dāng)復(fù)雜,從而大大增加了軟件系統(tǒng)的復(fù)雜程度,降低了系統(tǒng)的性能。因此,在對對象進行預(yù)取時,目前采用的緩存預(yù)取方法主要是順序預(yù)取算法,即對于讀請求的對象,預(yù)取時只進行順序的優(yōu)化。這種方法中并沒有考慮到目前持久化應(yīng)用中,種類多、數(shù)量大且關(guān)系復(fù)雜的對象,因此無法對對象查詢中的關(guān)聯(lián)關(guān)系做出更為精確的預(yù)取策略,不分對象的大小,全部進行預(yù)取,會導(dǎo)致較大的網(wǎng)絡(luò)資源浪費。
發(fā)明內(nèi)容
本發(fā)明主要實施方式的目的在于提供一種對象關(guān)系持久化系統(tǒng)中預(yù)取對象的方法,可提高系統(tǒng)的讀命中率,同時降低了網(wǎng)絡(luò)通信的負(fù)擔(dān)。
為此,本發(fā)明的各實施方式提供了一種對象關(guān)系持久化系統(tǒng)中預(yù)取對象的方法,包括持久化系統(tǒng)接收到讀請求后,根據(jù)讀請求對象的類型、關(guān)鍵字判斷對象緩存中是否存儲有所述讀請求對象信息;若有存儲,則向用戶返回讀請求對象信息;若沒有存儲,則根據(jù)所述讀請求對象在持久化系統(tǒng)中所存儲的對象關(guān)系映射信息分析所述讀請求對象的每個屬性,并將生成的讀請求對象信息存入對象緩存中。
本發(fā)明所涉及的對象關(guān)系持久化系統(tǒng)中預(yù)取對象的方法,通過引進預(yù)取策略到對象關(guān)系持久化系統(tǒng)中,適應(yīng)了目前持久化系統(tǒng)中種類多、數(shù)量大且關(guān)系復(fù)雜的對象設(shè)計,對對象查詢中的關(guān)聯(lián)關(guān)系做出更為精確的預(yù)取策略,最大程度地提高系統(tǒng)的讀命中率,同時也大大降低了網(wǎng)絡(luò)通信的負(fù)擔(dān),提高企業(yè)應(yīng)用性能。
下面結(jié)合附圖和具體實施例進一步說明本發(fā)明的技術(shù)方案。
圖1為本發(fā)明對象關(guān)系持久化系統(tǒng)中預(yù)取對象的方法流程示意圖。
圖2為對象緩存中無對象信息時持久化系統(tǒng)獲取讀請求對象信息流程圖。
具體實施例方式
實施例一、
如圖1所示,當(dāng)用戶向持久化系統(tǒng)發(fā)出讀請求后,步驟1持久化系統(tǒng)接收到讀請求后,根據(jù)讀請求對應(yīng)的對象的類型、關(guān)鍵字判斷對象緩存中是否存儲有所述對象的信息;步驟2若有存儲,則返回讀請求對應(yīng)的對象的信息;步驟3若沒有存儲,則根據(jù)所述對象在持久化系統(tǒng)中所存儲的對象關(guān)系映射信息,分析所述對象的屬性信息,并將生成的對象信息存入對象緩存中。
本發(fā)明要求在對象關(guān)系持久化系統(tǒng)中維護對象關(guān)系映射信息,以保證在后續(xù)操作中,能夠進行正確的關(guān)聯(lián)和判斷,這些映射信息應(yīng)包括各個為對象的類型、關(guān)鍵字以及其所關(guān)聯(lián)的對象信息,對象所映射的數(shù)據(jù)庫表,對象的不同屬性所對應(yīng)的包括數(shù)據(jù)庫外鍵、關(guān)系表的數(shù)據(jù)庫表項。本發(fā)明存儲對象信息的關(guān)系數(shù)據(jù)庫可以是當(dāng)前流行的任意一種關(guān)系數(shù)據(jù)庫。
當(dāng)對象的屬性值不大,即當(dāng)對象的屬性信息映射到數(shù)據(jù)庫中的類型不是結(jié)構(gòu)查詢語言(Structured Query Language;以下簡稱SQL)規(guī)范中所定義的大字符類型(最多可允許的字符容量是4G)通常指BLOG或CLOG數(shù)據(jù)類型時,進行預(yù)取判斷,判斷所述讀請求對象屬性是否為表示包括一對一、一對多、多對一、多對多的關(guān)聯(lián)關(guān)系。
當(dāng)此屬性信息不是BLOG或CLOG等數(shù)據(jù)類型信息,且不表示一種關(guān)聯(lián)關(guān)系信息時,即此屬性不是業(yè)務(wù)對象類,具體說就是不表示該對象包含其他業(yè)務(wù)對象,則將所述對象的屬性信息所對應(yīng)的數(shù)據(jù)庫表中的列名加入SQL語言查詢中,查詢相應(yīng)的讀請求對象信息。SQL是一種結(jié)構(gòu)化查詢語言,用于在關(guān)系數(shù)據(jù)庫管理系統(tǒng)中創(chuàng)建、獲取、更新和刪除數(shù)據(jù),以經(jīng)過“ANSI”和“ISO”標(biāo)準(zhǔn)化組織認(rèn)證。所述的業(yè)務(wù)對象,是描述業(yè)務(wù)實現(xiàn)的對象,它是對實際業(yè)務(wù)模型中的角色和業(yè)務(wù)實體。
當(dāng)此屬性信息不是BLOG或CLOG等數(shù)據(jù)類型信息,且表示一種關(guān)聯(lián)關(guān)系信息,即此屬性是業(yè)務(wù)對象類,具體說就是表示該對象包含其他業(yè)務(wù)對象,這種關(guān)聯(lián)關(guān)系可以是一對一,一對多,多對一和多對多,則再進行分別判斷,判斷其是指向單一對象的引用,還是指向一組對象的引用,建立所述對象與引用對象的連接,構(gòu)造SQL查詢,并查詢相應(yīng)的讀請求對象信息。
當(dāng)此屬性信息不是BLOG或CLOG等數(shù)據(jù)類型信息,且表示一種關(guān)聯(lián)關(guān)系信息,且為指向單一對象的引用時,該引用映射為數(shù)據(jù)庫外鍵,存儲在數(shù)據(jù)庫表中。使用系統(tǒng)在之前解析過程中所獲得的對象關(guān)系映射信息,通過外鍵將該對象與引用對象建立連接,構(gòu)造SQL查詢,在一輪的SQL查詢中,預(yù)取出數(shù)據(jù)庫中所連接表中的所有相關(guān)行,將所獲取的數(shù)據(jù)組成對象,放入對象緩存中。
當(dāng)此屬性信息不是BLOG或CLOG等數(shù)據(jù)類型信息,且表示一種關(guān)聯(lián)關(guān)系信息,且為指向一組對象的引用時,該引用映射為關(guān)系表,存儲在數(shù)據(jù)庫中。使用系統(tǒng)在之前解析過程中所獲得的對象關(guān)系映射信息,通過該關(guān)系表將該對象與引用對象建立連接,構(gòu)造SQL查詢,在一輪的SQL查詢中,預(yù)取出數(shù)據(jù)庫中所連接表中的所有相關(guān)行,獲取與之相關(guān)的所有對象,并將這組對象放入對象緩存中。
在一次的查詢中,被引用的對象可能涉及到多級外連接和多張數(shù)據(jù)庫表,在這里允許開發(fā)人員設(shè)計外連接的深度,來決定在一次查詢中所關(guān)聯(lián)的外連接深度。外連接具體是指是SQL查詢時,連接兩個數(shù)據(jù)庫表的方式。如果數(shù)據(jù)庫的記錄少,并且數(shù)據(jù)庫系統(tǒng)具有良好的表連接性能,可以將該值設(shè)高。
將對象信息取出放入對象緩存中后,采用最近最少使用算法(以下簡稱LRU)進行運算。LRU算法基本概念是當(dāng)內(nèi)存的剩余的可用空間不夠時,緩沖區(qū)盡可能的先保留使用者最常使用的數(shù)據(jù),就是優(yōu)先清除較不常使用的數(shù)據(jù),并釋放其空間,如果緩存占滿,則將最近最少使用的對象淘汰出對象緩存。
當(dāng)屬性值對象太大,即對象的屬性信息映射到數(shù)據(jù)庫中的類型是BLOG或CLOG數(shù)據(jù)類型信息,當(dāng)對象信息在對象緩存中不存在,則先并不進行數(shù)據(jù)預(yù)取,而是通過為其生成一個動態(tài)代理放在對象緩存中。所述的動態(tài)代理具體是指在程序運行時動態(tài)生成一個類,該類實現(xiàn)了指定業(yè)務(wù)對象的所有方法接口。該類將對于接口方法的調(diào)用都動態(tài)分派到一個處理類去,截獲調(diào)用,進行處理。
在這個動態(tài)代理里面并沒有實際數(shù)據(jù)。當(dāng)用戶訪問到該對象時,對于其中方法的調(diào)用,會轉(zhuǎn)到處理類去,再通過該處理類即時構(gòu)造SQL語句,訪問數(shù)據(jù)庫表中與所述讀請求對象對應(yīng)的行,構(gòu)造出請求的對象,將所請求的大規(guī)模數(shù)據(jù)從數(shù)據(jù)庫中傳輸給用戶,并寫入對象緩存,取代原先的動態(tài)代理。
本發(fā)明的目的是提供一種在對象關(guān)系持久化系統(tǒng)預(yù)取對象以提高系統(tǒng)性能的方法。通過引進這種預(yù)取策略到對象關(guān)系持久化系統(tǒng)中,最大程度地提高系統(tǒng)的讀命中率,同時也大大降低了網(wǎng)絡(luò)通信的負(fù)擔(dān)。本發(fā)明通過上述預(yù)取策略,將相關(guān)聯(lián)的對象都預(yù)先加載到緩存,按照局部性原理,最大程度地提高系統(tǒng)的讀命中率,有越多的對象被訪問,越多的數(shù)據(jù)庫查詢就被預(yù)取策略所節(jié)約,從而帶來更大的好處。同時由于對大規(guī)模數(shù)據(jù)對象的延遲讀取也大大降低了網(wǎng)絡(luò)通信的負(fù)擔(dān)。這對于目前有復(fù)雜數(shù)據(jù)操作的企業(yè)應(yīng)用有很大的性能提高,并且通過在對象緩存中保存常用對象,盡量避免大規(guī)模數(shù)據(jù)的傳輸,也很大的減少了網(wǎng)絡(luò)通信的開銷。
實施例二、基于實施例一,本實施例具體以基于在“JPA”(Java Persistence API)持久化層中預(yù)取對象來說明本發(fā)明所涉及的方法的具體實現(xiàn)過程。JPA作為“Java EE 5.0”語言平臺標(biāo)準(zhǔn)的對象關(guān)系映射規(guī)范,將得到所有Java EE服務(wù)器的支持。JPA通過“JDK 5.0”注解或可擴展標(biāo)識語言(Extensible MarkupLanguage;以下簡稱XML)描述對象關(guān)系表的映射關(guān)系,并將運行期的實體對象持久化到數(shù)據(jù)庫中,JPA的API用來操作實體對象,執(zhí)行創(chuàng)建,讀取,更新和刪除操作,框架在后臺完成所有的事情。
基于JPA持久化層的實現(xiàn)包括首先,根據(jù)“JDK 5.0”注解或XML描述,生成對象關(guān)系映射信息,具體是指所解析出的各個對象的類型,關(guān)鍵字以及它所關(guān)聯(lián)的對象信息,對象所映射的數(shù)據(jù)庫表,不同屬性所對應(yīng)的數(shù)據(jù)庫表項,其中包括數(shù)據(jù)庫外鍵和關(guān)系表,并保存在持久化層中,具體實現(xiàn)里這些映射信息被劃分為對象模型,代表了“Java”程序設(shè)計語言中的對象實例和數(shù)據(jù)庫模型,對應(yīng)到數(shù)據(jù)庫中所定義的“schema”。
在用戶通過JPA的API向持久化層提交對象查詢請求時,持久化層對用戶查詢請求進行分析,找出所查詢對象的類型和查詢中的關(guān)鍵字,通過這些參數(shù)首先在對象緩存中進行查找。在對象緩存中,每個對象以其類型和關(guān)鍵字為鍵值,存放于哈希表中,便于快速查找。如果該對象在對象緩存中命中,即它的類型和關(guān)鍵字所生成的鍵值存在于哈希表中,則將所緩存的對象信息返回給用戶。
當(dāng)該讀請求在對象緩存中未命中,則根據(jù)其在持久化系統(tǒng)中所存儲的對象關(guān)系映射信息,分析該對象的每個屬性。
若該屬性值不大,即若對象的屬性信息映射到數(shù)據(jù)庫中的類型不是BLOG或CLOG等數(shù)據(jù)類型信息,且不是業(yè)務(wù)對象類,即其屬性不表示一種關(guān)聯(lián)關(guān)系,具體說就是不表示該對象包含其他業(yè)務(wù)對象,則將所述對象的屬性信息所對應(yīng)的數(shù)據(jù)庫表中的列名加入SQL查詢中,查詢相應(yīng)的讀請求對象信息,并將查詢結(jié)果方如對象緩存中。
若該屬性值不大,即若對象的屬性信息映射到數(shù)據(jù)庫中的類型不是BLOG或CLOG等數(shù)據(jù)類型信息,且是業(yè)務(wù)對象類,即其屬性表示一種關(guān)聯(lián)關(guān)系,具體說就是表示該對象包含其他業(yè)務(wù)對象,這種關(guān)聯(lián)關(guān)系可以是一對一,一對多,多對一和多對多,則進行預(yù)取判斷。
對于指向單一對象的引用,具體為包括一對一和多對一,該引用映射為數(shù)據(jù)庫外鍵,存儲在數(shù)據(jù)庫表中。則使用系統(tǒng)在解析過程中所獲得的對象關(guān)系映射信息,具體是指所解析出的各個對象的類型,關(guān)鍵字以及它所關(guān)聯(lián)的對象信息,對象所映射的數(shù)據(jù)庫表,不同屬性所對應(yīng)的數(shù)據(jù)庫表項,其中包括數(shù)據(jù)庫外鍵和關(guān)系表。通過該外鍵將該對象與引用對象間建立連接,構(gòu)造SQL查詢,在兩個表之間用“JOINS”關(guān)鍵字連接,在一輪的SQL查詢中,通過“OUTER JOIN”的方式取關(guān)聯(lián)數(shù)據(jù)或集合,通過同一條“SELECT”語句來獲得所引用的實體對象信息,放入對象緩存中。
對于指向一組對象的引用,該引用映射為關(guān)系表存儲在數(shù)據(jù)庫中。則使用系統(tǒng)在解析過程中所獲得的對象關(guān)系映射信息,則通過該關(guān)系表將該對象與引用對象間建立連接,構(gòu)造SQL查詢,通過“OUTER JOIN”的方式取關(guān)聯(lián)數(shù)據(jù)或集合,通過同一條“SELECT”語句來實現(xiàn),預(yù)取出數(shù)據(jù)庫中所連接表中的所有相關(guān)行,獲得所引用的實體對象信息集合,并將這組對象放入對象緩存中。
在上述一輪SQL查詢中,若被引用的對象涉及到多級外連接和多張數(shù)據(jù)庫表,在此持久層中設(shè)有“FETCHDEPTH”參數(shù),允許開發(fā)人員通過此參數(shù)來配置外連接的深度,以決定在一次查詢中所關(guān)聯(lián)的外連接深度。當(dāng)數(shù)據(jù)庫的記錄少,并且數(shù)據(jù)庫系統(tǒng)具有良好的表連接性能時,可設(shè)高該值,以提高性能。
將對象信息取出放入對象緩存中后,采用LRU算法進行管理,即如果緩存占滿,則將最近最少使用的對象淘汰出對象緩存。
若確定屬性值對象太大,即若對象映射到數(shù)據(jù)庫中的類型是BLOG或CLOG數(shù)據(jù)類型,當(dāng)該讀請求在對象緩存中未命中時,并不進行數(shù)據(jù)預(yù)取,而是通過為其生成一個動態(tài)代理放在對象緩存中。所述的動態(tài)代理具體是指在程序運行時動態(tài)生成一個類,該類實現(xiàn)了指定業(yè)務(wù)對象的所有方法接口。該類將對于接口方法的調(diào)用都動態(tài)分派到一個處理類去,截獲調(diào)用,進行處理。具體地,采用CGLIB,來生成動態(tài)代理,生成一個原有類的子類,并設(shè)置好回調(diào)函數(shù),則當(dāng)原有類的每個方法被調(diào)用時,就會轉(zhuǎn)到生成類中所涉及的方法中,進行預(yù)先的處理。所述的CGLIB是一個強大的,高性能,高質(zhì)量的代碼生成類庫,它可以在運行期擴展Java類與實現(xiàn)Java接口,從而可以不用像“JDK”自帶的動態(tài)“proxy”必須基于接口。
在所述的動態(tài)代理內(nèi)并沒有實際數(shù)據(jù),當(dāng)用戶訪問該對象時,對于其中方法的調(diào)用,會轉(zhuǎn)到處理類去,再通過該處理類即時構(gòu)造SQL語句,訪問在數(shù)據(jù)庫中的對應(yīng)行,構(gòu)造出請求的對象,將所請求的大規(guī)模數(shù)據(jù)從數(shù)據(jù)庫中傳輸給用戶,并寫入對象緩存,取代原先的動態(tài)代理。
最后應(yīng)說明的是以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照較佳實施例對本發(fā)明進行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對本發(fā)明的技術(shù)方案進行修改或者等同替換,而不脫離本發(fā)明技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種預(yù)取對象的方法,其特征在于包括接收到讀請求后,根據(jù)該讀請求對應(yīng)的對象的類型、關(guān)鍵字,判斷對象緩存中是否存儲有所述對象的信息;若有存儲,則返回讀請求對應(yīng)的對象的信息;否則,根據(jù)所述對象在系統(tǒng)中所存儲的對象關(guān)系映射信息,分析所述對象的屬性信息,并將生成的對象信息存入對象緩存中。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于在所述分析所述對象的屬性信息之后,還包括當(dāng)所述對象的屬性信息映射到數(shù)據(jù)庫中的類型不是BLOG或CLOG數(shù)據(jù)類型信息時,進行預(yù)取判斷。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于所述的進行預(yù)取判斷,具體為判斷所述對象的屬性信息是否是表示包括一對一、一對多、多對一、多對多的關(guān)聯(lián)關(guān)系信息。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于在所述進行預(yù)取判斷之后,還包括當(dāng)所述對象的屬性信息不是表示關(guān)聯(lián)關(guān)系信息時,查詢讀請求對應(yīng)的對象信息。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于將所述對象的屬性信息所對應(yīng)的數(shù)據(jù)庫表中的列名加入SQL查詢中,進行查詢。
6.根據(jù)權(quán)利要3所述的方法,其特征在于在所述進行預(yù)取判斷之后,還包括當(dāng)所述對象的屬性信息是表示關(guān)聯(lián)關(guān)系信息時,查詢所述讀請求對應(yīng)的對象信息。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于建立所述讀請求對應(yīng)的對象與引用對象的連接,構(gòu)造SQL查詢,進行查詢。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于當(dāng)所述讀請求對應(yīng)的對象的屬性信息是表示關(guān)聯(lián)關(guān)系信息,且為引用單一對象時,所述的建立所述讀請求對應(yīng)的對象與引用對象的連接,具體是通過數(shù)據(jù)庫的外鍵建立所述讀請求對應(yīng)的對象與引用對象的連接。
9.根據(jù)權(quán)利要求7所述的方法,其特征在于當(dāng)所述讀請求對應(yīng)的對象的屬性信息是表示關(guān)聯(lián)關(guān)系信息,且為引用一組對象時,所述的建立所述讀請求對應(yīng)的對象與引用對象的連接,具體是通過數(shù)據(jù)庫的關(guān)系表建立所述讀請求對應(yīng)的對象與引用對象的連接。
10.根據(jù)權(quán)利要求6所述的方法,其特征在于所述的查詢所述讀請求對應(yīng)的對象信息是根據(jù)設(shè)定的外連接的深度進行查詢。
11.根據(jù)權(quán)利要求1至10所述的任一方法,其特征在于在將生成的對象的信息存入對象緩存中之后,采用最近最少使用算法管理對象緩存中信息。
12.根據(jù)權(quán)利要求1所述的方法,其特征在于在所述的分析所述對象的屬性信息之后,還包括當(dāng)所述對象的屬性信息映射到數(shù)據(jù)庫中的類型是BLOG或CLOG數(shù)據(jù)類型信息時,并不進行數(shù)據(jù)預(yù)取,而是生成一個動態(tài)代理存儲在對象緩存中。
13.根據(jù)權(quán)利要求12所述的方法,其特征在于所述的生成一個動態(tài)代理是動態(tài)生成一個類,所述類用于提供所述對象的所有方法接口。
14.根據(jù)權(quán)利要求13所述的方法,其特征在于所述的動態(tài)代理中沒有實際數(shù)據(jù)信息,當(dāng)用戶訪問時,對于其中方法的調(diào)用,將轉(zhuǎn)到處理類去,再通過所述的處理類構(gòu)造SQL查詢,訪問數(shù)據(jù)庫表中與所述對象相對應(yīng)的行,構(gòu)造請求對象信息,并存入對象緩存中取代原先的動態(tài)代理。
15.根據(jù)權(quán)利要求1所述的方法,其特征在于所述的接收到讀請求之前,還包括生成并存儲對象關(guān)系映射信息。
全文摘要
本發(fā)明涉及一種對象關(guān)系持久化系統(tǒng)中預(yù)取對象的方法,包括接收到讀請求后,根據(jù)該讀請求對應(yīng)的對象的類型、關(guān)鍵字,判斷對象緩存中是否存儲有所述對象的信息;若有存儲,則返回讀請求對應(yīng)的對象的信息;否則,根據(jù)所述對象在系統(tǒng)中所存儲的對象關(guān)系映射信息,分析所述對象的屬性信息,并將生成的對象信息存入對象緩存中。本發(fā)明所涉及的對象關(guān)系持久化系統(tǒng)中預(yù)取對象的方法,通過引進預(yù)取策略到對象關(guān)系持久化系統(tǒng)中,適應(yīng)了目前持久化系統(tǒng)中種類多、數(shù)量大且關(guān)系復(fù)雜的對象設(shè)計,對對象查詢中的關(guān)聯(lián)關(guān)系做出更為精確的預(yù)取策略,最大程度地提高系統(tǒng)的讀命中率,同時降低網(wǎng)絡(luò)通信的負(fù)擔(dān),提高企業(yè)應(yīng)用性能。
文檔編號G06F17/30GK101067820SQ200710100340
公開日2007年11月7日 申請日期2007年6月8日 優(yōu)先權(quán)日2007年6月8日
發(fā)明者梅宏, 曹東剛, 周明輝, 林亮 申請人:北京大學(xué)