專利名稱:一種系統(tǒng)管理數(shù)據(jù)的分布式緩存方法及文件管理系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本申請涉及基于大容量存儲(chǔ)設(shè)備的文件管理系統(tǒng),尤其涉及一種系統(tǒng)管理數(shù)據(jù)的分布式緩存方法及系統(tǒng)。
背景技術(shù):
隨著信息科技的發(fā)展,企業(yè)或機(jī)構(gòu)組織中的信息量越來越大。各種各樣的電子文件成為信息的主要載體。隨著計(jì)算機(jī)技術(shù)以及存儲(chǔ)技術(shù)的發(fā)展,越來越多的企業(yè)或機(jī)構(gòu)組織選擇大容量的存儲(chǔ)設(shè)備來保存企業(yè)或機(jī)構(gòu)組織在日常運(yùn)轉(zhuǎn)中產(chǎn)生的文件,并借助相關(guān)的文件管理系統(tǒng)來管理文件,以提高文件的安全性、文件存儲(chǔ)和訪問的高效性。傳統(tǒng)的文件管理系統(tǒng)大都采用客戶端服務(wù)器(C/S)結(jié)構(gòu):客戶端主要提供文件系統(tǒng)的訪問;而服務(wù)器端則通過一個(gè)文件系統(tǒng)集中管理文件,并通過數(shù)據(jù)庫來管理一些系統(tǒng)管理數(shù)據(jù)。在一個(gè)傳統(tǒng)的文件管理系統(tǒng)中,通常需要按照企業(yè)本身的一些特征信息(例如:企業(yè)組織結(jié)構(gòu)、員工的職責(zé)等)來組織文件目錄結(jié)構(gòu)以及制定相應(yīng)的權(quán)限,來輔助文件的管理。這些數(shù)據(jù)被稱為系統(tǒng)管理數(shù)據(jù)。通常,系統(tǒng)管理數(shù)據(jù)存放在文件管理系統(tǒng)服務(wù)器端的數(shù)據(jù)庫中。在傳統(tǒng)的文件管理系統(tǒng)中,在客戶端需要通過這些系統(tǒng)管理數(shù)據(jù)來做出權(quán)限設(shè)置、計(jì)算或者一些訪問動(dòng)作的選擇的時(shí)候,往往是直接通過訪問服務(wù)器端的數(shù)據(jù)庫來獲取系統(tǒng)管理數(shù)據(jù)。由于客戶端對系統(tǒng)管理數(shù)據(jù)的訪問比較頻繁,所以這些系統(tǒng)管理數(shù)據(jù)的訪問效率,很大程度上影響著整個(gè)文件系統(tǒng)的訪問效率。通常情況下,通過網(wǎng)絡(luò)訪問服務(wù)器端的數(shù)據(jù)庫的時(shí)間開銷比較大,而且也受限于網(wǎng)絡(luò)環(huán)境、數(shù)據(jù)庫性能等因素,導(dǎo)致訪問時(shí)間長,對客戶端文件訪問涉及的一些頻繁的操作,帶來了很大的延遲,用戶體驗(yàn)比較差。要解決這個(gè)問題,現(xiàn)有技術(shù)中主要采取如下幾種方式:方式一:提高網(wǎng)絡(luò)本身的性能或者提高服務(wù)器端數(shù)據(jù)庫系統(tǒng)本身的性能。這種方法會(huì)導(dǎo)致系統(tǒng)的部署難度及客戶的擁有成本,而且性能的提升很有限,因此不是一種很好的選擇。方式二:在服務(wù)器端將數(shù)據(jù)庫中的系統(tǒng)管理數(shù)據(jù)進(jìn)行緩存。這樣可以提升數(shù)據(jù)訪問速度,但客戶端還是每次需要通過網(wǎng)絡(luò)來獲取數(shù)據(jù),因此網(wǎng)絡(luò)上的時(shí)間開銷還是比較大。
發(fā)明內(nèi)容
本申請?zhí)峁┝?一種文件管理系統(tǒng)中的系統(tǒng)管理數(shù)據(jù)的分布式緩存方法及系統(tǒng),可以有效地提升對系統(tǒng)管理數(shù)據(jù)的訪問效率,從而縮短客戶端文件訪問的時(shí)間,提升用戶體驗(yàn)。本申請實(shí)施例提供一種系統(tǒng)管理數(shù)據(jù)的分布式緩存方法,包括:A、在服務(wù)器和客戶端的內(nèi)存中分別保存一張節(jié)點(diǎn)關(guān)系網(wǎng)狀圖,該節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中的每一個(gè)節(jié)點(diǎn)對應(yīng)系統(tǒng)管理數(shù)據(jù)中的一個(gè)對象;節(jié)點(diǎn)間的連接代表系統(tǒng)管理數(shù)據(jù)之間的關(guān)系;服務(wù)器緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖和客戶端緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖的結(jié)構(gòu)完全相同;
B、客戶端和服務(wù)器對客戶端本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖與服務(wù)器緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖進(jìn)行同步;C、客戶端在本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中對系統(tǒng)管理數(shù)據(jù)進(jìn)行訪問。較佳地,在客戶端緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中,每個(gè)對象只保存該客戶端必須的信
肩、O較佳地,預(yù)先建立一張哈希表,所述哈希表中以系統(tǒng)管理數(shù)據(jù)中的對象標(biāo)識(shí)作為鍵值,定位到節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中的相應(yīng)節(jié)點(diǎn)的地址;步驟C所述客戶端在本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中對系統(tǒng)管理數(shù)據(jù)進(jìn)行訪問包括:根據(jù)所要訪問的對象標(biāo)識(shí)查詢所述哈希表得到相應(yīng)的鍵值,根據(jù)所述鍵值定位到客戶端本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中的相應(yīng)節(jié)點(diǎn)。較佳地,步驟C進(jìn)一步包括:通過所訪問的節(jié)點(diǎn)中保存的關(guān)聯(lián)指針,查詢與其存在連接的其他節(jié)點(diǎn)的信息。較佳地,步驟B之前進(jìn)一步包括:服務(wù)器端維護(hù)數(shù)據(jù)變化日志,用于記錄系統(tǒng)管理數(shù)據(jù)的變化信息;步驟B所述客戶端和服務(wù)器對客戶端本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖與服務(wù)器緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖進(jìn)行同步為:根據(jù)服務(wù)器維護(hù)的所述數(shù)據(jù)變化日志,將服務(wù)器本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖進(jìn)行增量式同步至客戶端本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖。較佳地,步驟B包括:B1、在客戶端初始化時(shí),如果是首次登錄服務(wù)器,則從服務(wù)器獲取所有該客戶端所需的系統(tǒng)管理數(shù)據(jù);如果不是首次登錄,則從服務(wù)器獲取自從上次更新后所有發(fā)生變更的系統(tǒng)管理數(shù)據(jù);B2、在更新完成后,服務(wù)器將系統(tǒng)當(dāng)前的時(shí)間點(diǎn)發(fā)送給客戶端;B3、客戶端將所述時(shí)間點(diǎn)保存起來作為最近一次更新的系統(tǒng)時(shí)間點(diǎn)。較佳地,步驟B進(jìn)一步包括:客戶端向服務(wù)器發(fā)起數(shù)據(jù)同步請求,所述數(shù)據(jù)同步請求中攜帶最近一次更新時(shí)服務(wù)器返回給客戶端的時(shí)間點(diǎn);服務(wù)器接收到客戶端的數(shù)據(jù)同步請求后,根據(jù)其中攜帶的時(shí)間點(diǎn)查詢數(shù)據(jù)變化日志,逐條解析從上次更新到當(dāng)前時(shí)間為止的數(shù)據(jù)變化日志,將變化的數(shù)據(jù)發(fā)送給客戶端。本申請實(shí)施例還提供一種文件管理系統(tǒng),包括服務(wù)器以及一個(gè)以上的客戶端,所述服務(wù)器包括:服務(wù)器緩存模塊,用于在服務(wù)器的內(nèi)存中保存一張節(jié)點(diǎn)關(guān)系網(wǎng)狀圖,該節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中的每一個(gè)節(jié)點(diǎn)對應(yīng)系統(tǒng)管理數(shù)據(jù)中的一個(gè)對象;節(jié)點(diǎn)間的連接代表系統(tǒng)管理數(shù)據(jù)之間的關(guān)系;服務(wù)器同步模塊,用于與客戶端進(jìn)行交互,實(shí)現(xiàn)客戶端本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖與服務(wù)器緩存模塊所緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖進(jìn)行同步;所述客戶端包括:客戶端緩存模塊,用于在客戶端的內(nèi)存中保存一張節(jié)點(diǎn)關(guān)系網(wǎng)狀圖,該節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中的每一個(gè)節(jié)點(diǎn)對應(yīng)系統(tǒng)管理數(shù)據(jù)中的一個(gè)對象;節(jié)點(diǎn)間的連接代表系統(tǒng)管理數(shù)據(jù)之間的關(guān)系;客戶端緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖和服務(wù)器緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖的結(jié)構(gòu)完全相同;客戶端同步模塊,用于與服務(wù)器進(jìn)行交互,實(shí)現(xiàn)客戶端緩存模塊所緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖與服務(wù)器緩存模塊所緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖進(jìn)行同步;數(shù)據(jù)訪問模塊,用于在所述客戶端緩存模塊所緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中對系統(tǒng)管理數(shù)據(jù)進(jìn)行訪問。較佳地,所述客戶端緩存模塊所緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中,每個(gè)對象只保存該客戶端必須的信息。較佳地,所述服務(wù)器進(jìn)一步包括:日志維護(hù)模塊,用于維護(hù)數(shù)據(jù)變化日志,所述數(shù)據(jù)變化日志用于記錄系統(tǒng)管理數(shù)據(jù)的變化信息;所述服務(wù)器同步模塊和客戶端同步模塊用于根據(jù)所述日志維護(hù)模塊所維護(hù)的數(shù)據(jù)變化日志,將服務(wù)器本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖進(jìn)行增量式同步至客戶端本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖。從以上技術(shù)方案可以看出,通過客戶端分布式緩存系統(tǒng)管理數(shù)據(jù),極大地提高客戶端管理數(shù)據(jù)查詢的速度,從而提高客戶端的文件操作的效率;采用增量式同步方式,.降低數(shù)據(jù)客戶端和服務(wù)器端數(shù)據(jù)同步的頻率及數(shù)據(jù)交互的數(shù)量,從而減少網(wǎng)絡(luò)的開銷,降低系統(tǒng)的負(fù)載。
圖1為按照本申請實(shí)施例提供的方式生成的一個(gè)典型的企業(yè)組織關(guān)系圖;圖2為圖1所不的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖對應(yīng)的哈希表的不意圖;圖3為本申請實(shí)施例中客戶端對系統(tǒng)管理數(shù)據(jù)的訪問流程圖;圖4為本申請實(shí)施例中客戶端和服務(wù)器端依據(jù)數(shù)據(jù)變化日志的增量式同步流程圖;圖5為本申請實(shí)施例中客戶端在首次登錄時(shí)系統(tǒng)管理數(shù)據(jù)的增量式同步過程中的信令交互流程示意圖;圖6為本申請實(shí)施例中客戶端運(yùn)行過程中的系統(tǒng)管理數(shù)據(jù)的增量式同步的信令流程示意圖。
具體實(shí)施例方式申請技術(shù)方案的基本思想在于,在客戶端及服務(wù)器端均對系統(tǒng)管理數(shù)據(jù)在內(nèi)存中進(jìn)行分布式緩存。對于服務(wù)器來說,從內(nèi)存獲取數(shù)據(jù)的速率遠(yuǎn)高于從數(shù)據(jù)庫中獲取數(shù)據(jù)的效率,因此提高了服務(wù)器獲取系統(tǒng)管理數(shù)據(jù)的效率;對于客戶端來說,客戶端對數(shù)據(jù)的獲取不再需要每次都通過服務(wù)器端去獲取,從而提高了客戶端獲取系統(tǒng)管理數(shù)據(jù)的效率。在此基礎(chǔ)上,本申請方案還對緩存機(jī)制進(jìn)行改進(jìn),不再如同傳統(tǒng)的數(shù)據(jù)庫數(shù)據(jù)緩存方式那樣,將數(shù)據(jù)庫中的表的數(shù)據(jù)按照關(guān)系型數(shù)據(jù)庫的形式進(jìn)行緩存;而是將系統(tǒng)管理數(shù)據(jù)中的實(shí)體抽象成對象,按照對象在特定語義環(huán)境下的關(guān)聯(lián),將其組織成一張網(wǎng)狀圖,這樣極大地提高了數(shù)據(jù)查詢的效率。
進(jìn)一步地,為了保證客戶端以及服務(wù)器端緩存的數(shù)據(jù)的一致性,通過增量式同步機(jī)制來進(jìn)行數(shù)據(jù)的更新,這樣避免了大數(shù)據(jù)量更新時(shí)網(wǎng)絡(luò)上的開銷。為使本申請技術(shù)方案的技術(shù)原理、特點(diǎn)以及技術(shù)效果更加清楚,以下結(jié)合具體實(shí)施例對本申請技術(shù)方案進(jìn)行詳細(xì)闡述。本申請實(shí)施例提供的系統(tǒng)管理數(shù)據(jù)的分布式緩存方法主要包括:A、在服務(wù)器和客戶端的內(nèi)存中分別保存一張節(jié)點(diǎn)關(guān)系網(wǎng)狀圖,該網(wǎng)狀圖中的每一個(gè)節(jié)點(diǎn)對應(yīng)系統(tǒng)管理數(shù)據(jù)中的一個(gè)對象;節(jié)點(diǎn)間的連接代表系統(tǒng)管理數(shù)據(jù)之間的關(guān)系。月艮務(wù)器端和客戶端的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖的結(jié)構(gòu)完全相同。較佳地,為控制客戶端對內(nèi)存的占用量,在客戶端緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中,每個(gè)對象只保存該客戶端必須的信息。B、客戶端和服務(wù)器端依據(jù)所述數(shù)據(jù)變化日志對本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖進(jìn)行同步;C、客戶端在本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中對系統(tǒng)管理數(shù)據(jù)進(jìn)行訪問。步驟B之前進(jìn)一步包括:服務(wù)器端維護(hù)數(shù)據(jù)變化日志,用于記錄系統(tǒng)管理數(shù)據(jù)的變化信息;步驟B所述同步為根據(jù)所述數(shù)據(jù)變化日志進(jìn)行增量式同步,即將服務(wù)器本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖進(jìn)行增量式同步至客戶端本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖,從而節(jié)約服務(wù)器與客戶端之間同步時(shí)的網(wǎng)絡(luò)傳輸數(shù)據(jù)量。較佳地,為了保證訪問迅速,預(yù)先建立一張哈希表,所述哈希表中以系統(tǒng)管理數(shù)據(jù)中的對象標(biāo)識(shí)作為鍵值,定位到節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中的相應(yīng)節(jié)點(diǎn)的地址;根據(jù)所要訪問的系統(tǒng)管理數(shù)據(jù)查詢所述哈希表得到相應(yīng)的鍵值,根據(jù)所述鍵值定位到客戶端本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中的相應(yīng)節(jié)點(diǎn)。本申請實(shí)施例提供的系統(tǒng)管理數(shù)據(jù)的分布式緩存方法中,系統(tǒng)管理數(shù)據(jù)集中存放在服務(wù)器的關(guān)系型數(shù)據(jù)庫中,為提高訪問效率,在服務(wù)器端的內(nèi)存中,將系統(tǒng)管理數(shù)據(jù)抽象成對象,并按照對象間的關(guān)系,組織成一張節(jié)點(diǎn)關(guān)系網(wǎng)狀圖,圖中每個(gè)節(jié)點(diǎn)分別代表一個(gè)對象,而節(jié)點(diǎn)間的連接代表它們之間的關(guān)系。以企業(yè)的組織結(jié)構(gòu)數(shù)據(jù)為例,對于一個(gè)企業(yè),生成一個(gè)企業(yè)對象來緩存該企業(yè)相關(guān)的一些信息;該企業(yè)下有多個(gè)部門,每個(gè)部門對象用來緩存對應(yīng)部門相關(guān)的一些信息;同時(shí)企業(yè)和部門之間產(chǎn)生I對多的父子關(guān)系,一個(gè)企業(yè)節(jié)點(diǎn)關(guān)聯(lián)多個(gè)部門節(jié)點(diǎn);而每個(gè)部門下也會(huì)有多個(gè)用戶,用戶對象用來緩存部門成員相關(guān)的一些信息,一個(gè)部門節(jié)點(diǎn)關(guān)聯(lián)多個(gè)用戶節(jié)點(diǎn);一個(gè)部門下可能有多個(gè)子部門,所以一個(gè)部門節(jié)點(diǎn)可以關(guān)聯(lián)多個(gè)子部門節(jié)點(diǎn)。用戶按照職責(zé)可以扮演不同的角色,角色對象用來緩存角色相關(guān)的信息,一個(gè)用戶可以有多個(gè)角色,一個(gè)角色也可以由多個(gè)用戶扮演,用戶節(jié)點(diǎn)和角色節(jié)點(diǎn)間是多對多的關(guān)系。如果節(jié)點(diǎn)A與節(jié)點(diǎn)B之間存在關(guān)系,則這兩個(gè)節(jié)點(diǎn)分別保存指向?qū)Ψ焦?jié)點(diǎn)地址的指針。這樣,整個(gè)企業(yè)的組織就構(gòu)成了一張網(wǎng)狀圖。圖1為按照上述方式生成的一個(gè)典型的企業(yè)組織關(guān)系圖。為保證快速地定位到要訪問的節(jié)點(diǎn),建立了一張哈希(hash)表,能夠通過特定的鍵值迅速定位到該節(jié)點(diǎn)。每次對服務(wù)器端數(shù)據(jù)庫的操作(增、刪、改)都會(huì)同時(shí)更新到內(nèi)存中的這張網(wǎng)狀圖上,如圖2所示。本申請實(shí)施例方案中,在客戶端的內(nèi)存中也維護(hù)同服務(wù)器端結(jié)構(gòu)一致的一張節(jié)點(diǎn)關(guān)系網(wǎng)狀圖。為控制客戶端對內(nèi)存的占用量,每個(gè)對象只保存該客戶端必須的信息。同時(shí),為保證快速地定位到要訪問的節(jié)點(diǎn),建立了一張hash表,能夠通過特定的鍵值迅速定位到該節(jié)點(diǎn)。在建立好前述節(jié)點(diǎn)關(guān)系網(wǎng)狀圖之后,客戶端對系統(tǒng)管理數(shù)據(jù)的訪問都在本地緩存的網(wǎng)狀圖中進(jìn)行。訪問的過程如圖3所示,包括如下步驟:步驟301:在客戶端輸入所要訪問的對象標(biāo)識(shí);步驟302:以該對象標(biāo)識(shí)為Hash鍵值,查找Hash表,獲得該對象對應(yīng)的網(wǎng)狀圖中的節(jié)點(diǎn)的地址;步驟303:從節(jié)點(diǎn)地址獲取該對象的信息;步驟304:如果需要獲取和該節(jié)點(diǎn)有關(guān)聯(lián)的其它節(jié)點(diǎn)的信息,則通過該節(jié)點(diǎn)中保存的關(guān)聯(lián)指針,查詢與其存在連接的其他節(jié)點(diǎn)的信息。例如,客戶端需要查詢到某個(gè)部門的所有成員,它首先會(huì)通過部門的標(biāo)識(shí)通過h a s h表找到給部門節(jié)點(diǎn)在內(nèi)存中的地址,然后遍歷該部門節(jié)點(diǎn)下的所有子節(jié)點(diǎn),如果該子節(jié)點(diǎn)是部門成員則直接返回成員信息,如果該子節(jié)點(diǎn)是子部門,那么需要重復(fù)上述過程。該遍歷算法同樹的遍歷算法。在服務(wù)器端需要維護(hù)數(shù)據(jù)變化日志,用于記錄系統(tǒng)管理數(shù)據(jù)的變化信息。記錄的內(nèi)容包括:變化發(fā)生的時(shí)間;變化對應(yīng)的操作;變化對應(yīng)的關(guān)鍵數(shù)據(jù)對象類型;變化對應(yīng)的關(guān)鍵數(shù)據(jù)對象的ID ;變化對應(yīng)的相關(guān)數(shù)據(jù)對象類型;變化對應(yīng)的相關(guān)數(shù)據(jù)對象ID。變化發(fā)生的時(shí)間用來記錄該次變化發(fā)生時(shí)服務(wù)器端的時(shí)間。變化對應(yīng)的關(guān)鍵數(shù)據(jù)對象指該操作直接針對的對象,而變化對應(yīng)的相關(guān)對象是指該操作相關(guān)聯(lián)的數(shù)據(jù)對象。變化對應(yīng)的動(dòng)作是指針對數(shù)據(jù)庫的操作,包括:增加、刪除、修改。例如:將某個(gè)用戶增加到某個(gè)部門,則變化對應(yīng)的關(guān)鍵數(shù)據(jù)對象為該用戶,而變化對應(yīng)的相關(guān)對象為增加到的部門。對象的類型和應(yīng)用密切關(guān)聯(lián),例如:企業(yè)、部門、用戶、角色等。系統(tǒng)管理數(shù)據(jù)變化日志的格式表I所示:
權(quán)利要求
1.一種系統(tǒng)管理數(shù)據(jù)的分布式緩存方法,其特征在于,包括: A、在服務(wù)器和客戶端的內(nèi)存中分別保存一張節(jié)點(diǎn)關(guān)系網(wǎng)狀圖,該節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中的每一個(gè)節(jié)點(diǎn)對應(yīng)系統(tǒng)管理數(shù)據(jù)中的一個(gè)對象;節(jié)點(diǎn)間的連接代表系統(tǒng)管理數(shù)據(jù)之間的關(guān)系;服務(wù)器緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖和客戶端緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖的結(jié)構(gòu)完全相同; B、客戶端和服務(wù)器對客戶端本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖與服務(wù)器緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖進(jìn)行同步; C、客戶端在本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中對系統(tǒng)管理數(shù)據(jù)進(jìn)行訪問。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在客戶端緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中,每個(gè)對象只保存該客戶端必須的信息。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,預(yù)先建立一張哈希表,所述哈希表中以系統(tǒng)管理數(shù)據(jù)中的對象標(biāo)識(shí)作為鍵值,定位到節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中的相應(yīng)節(jié)點(diǎn)的地址; 步驟C所述客戶端在本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中對系統(tǒng)管理數(shù)據(jù)進(jìn)行訪問包括: 根據(jù)所要訪問的對象標(biāo)識(shí)查詢所述哈希表得到相應(yīng)的鍵值,根據(jù)所述鍵值定位到客戶端本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中的相應(yīng)節(jié)點(diǎn)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,步驟C進(jìn)一步包括:通過所訪問的節(jié)點(diǎn)中保存的關(guān)聯(lián)指針,查詢與其存在連接的其他節(jié)點(diǎn)的信息。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟B之前進(jìn)一步包括:服務(wù)器端維護(hù)數(shù)據(jù)變化日志,用于記錄系統(tǒng)管理數(shù)據(jù)的變化信息; 步驟B所述客戶端和服務(wù)器對客戶端本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖與服務(wù)器緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖進(jìn)行同步為:根據(jù)服務(wù)器維護(hù)的所述數(shù)據(jù)變化日志,將服務(wù)器本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖進(jìn)行增量式同步至客戶端本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,步驟B包括: B1、在客戶端初始化時(shí),如果是首次登錄服務(wù)器,則從服務(wù)器獲取所有該客戶端所需的系統(tǒng)管理數(shù)據(jù);如果不是首次登錄,則從服務(wù)器獲取自從上次更新后所有發(fā)生變更的系統(tǒng)管理數(shù)據(jù); B2、在更新完成后,服務(wù)器將系統(tǒng)當(dāng)前的時(shí)間點(diǎn)發(fā)送給客戶端; B3、客戶端將所述時(shí)間點(diǎn)保存起來作為最近一次更新的系統(tǒng)時(shí)間點(diǎn)。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,步驟B進(jìn)一步包括: 客戶端向服務(wù)器發(fā)起數(shù)據(jù)同步請求,所述數(shù)據(jù)同步請求中攜帶最近一次更新時(shí)服務(wù)器返回給客戶端的時(shí)間點(diǎn); 服務(wù)器接收到客戶端的數(shù)據(jù)同步請求后,根據(jù)其中攜帶的時(shí)間點(diǎn)查詢數(shù)據(jù)變化日志,逐條解析從上次更新到當(dāng)前時(shí)間為止的數(shù)據(jù)變化日志,將變化的數(shù)據(jù)發(fā)送給客戶端。
8.一種文件管理系統(tǒng),包括服務(wù)器以及一個(gè)以上的客戶端,其特征在于,所述服務(wù)器包括: 服務(wù)器緩存模塊,用于在服務(wù)器的內(nèi)存中保存一張節(jié)點(diǎn)關(guān)系網(wǎng)狀圖,該節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中的每一個(gè)節(jié)點(diǎn)對應(yīng)系統(tǒng)管理數(shù)據(jù)中的一個(gè)對象;節(jié)點(diǎn)間的連接代表系統(tǒng)管理數(shù)據(jù)之間的關(guān)系; 服務(wù)器同步模塊,用于與客戶端進(jìn)行交互, 實(shí)現(xiàn)客戶端本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖與服務(wù)器緩存模塊所緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖進(jìn)行同步;所述客戶端包括: 客戶端緩存模塊,用于在客戶端的內(nèi)存中保存一張節(jié)點(diǎn)關(guān)系網(wǎng)狀圖,該節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中的每一個(gè)節(jié)點(diǎn)對應(yīng)系統(tǒng)管理數(shù)據(jù)中的一個(gè)對象;節(jié)點(diǎn)間的連接代表系統(tǒng)管理數(shù)據(jù)之間的關(guān)系;客戶端緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖和服務(wù)器緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖的結(jié)構(gòu)完全相同; 客戶端同步模塊,用于與服務(wù)器進(jìn)行交互,實(shí)現(xiàn)客戶端緩存模塊所緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖與服務(wù)器緩存模塊所緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖進(jìn)行同步; 數(shù)據(jù)訪問模塊,用于在所述客戶端緩存模塊所緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中對系統(tǒng)管理數(shù)據(jù)進(jìn)行訪問。
9.根據(jù)權(quán)利要求8所述的文件管理系統(tǒng),其特征在于,所述客戶端緩存模塊所緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中,每個(gè)對象只保存該客戶端必須的信息。
10.根據(jù)權(quán)利要求8所述的文件管理系統(tǒng),其特征在于,所述服務(wù)器進(jìn)一步包括: 日志維護(hù)模塊,用于維護(hù)數(shù)據(jù)變化日志,所述數(shù)據(jù)變化日志用于記錄系統(tǒng)管理數(shù)據(jù)的變化信息; 所述服務(wù)器同步模塊和客戶端同步模塊用于根據(jù)所述日志維護(hù)模塊所維護(hù)的數(shù)據(jù)變化日志,將服務(wù)器本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖進(jìn)行增量式同步至客戶端本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖。
全文摘要
本發(fā)明公開了一種系統(tǒng)管理數(shù)據(jù)的分布式緩存方法,包括A、在服務(wù)器和客戶端的內(nèi)存中分別保存一張節(jié)點(diǎn)關(guān)系網(wǎng)狀圖,該節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中的每一個(gè)節(jié)點(diǎn)對應(yīng)系統(tǒng)管理數(shù)據(jù)中的一個(gè)對象;節(jié)點(diǎn)間的連接代表系統(tǒng)管理數(shù)據(jù)之間的關(guān)系;服務(wù)器緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖和客戶端緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖的結(jié)構(gòu)完全相同;B、客戶端和服務(wù)器對客戶端本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖與服務(wù)器緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖進(jìn)行同步;C、客戶端在本地緩存的節(jié)點(diǎn)關(guān)系網(wǎng)狀圖中對系統(tǒng)管理數(shù)據(jù)進(jìn)行訪問。本發(fā)明還公開了一種文件管理系統(tǒng)。通過應(yīng)用本發(fā)明技術(shù)方案,可以有效地提升對系統(tǒng)管理數(shù)據(jù)的訪問效率,從而縮短客戶端文件訪問的時(shí)間,提升用戶體驗(yàn)。
文檔編號(hào)H04L29/08GK103209215SQ20131013071
公開日2013年7月17日 申請日期2013年4月16日 優(yōu)先權(quán)日2013年4月16日
發(fā)明者黃君洲 申請人:上海愛數(shù)軟件有限公司