欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

分布式系統(tǒng)中緩存數(shù)據(jù)的同步配置方法與裝置的制作方法

文檔序號:6465318閱讀:260來源:國知局
專利名稱:分布式系統(tǒng)中緩存數(shù)據(jù)的同步配置方法與裝置的制作方法
技術領域
本發(fā)明涉及數(shù)據(jù)緩存技術,尤其是一種分布式系統(tǒng)中緩存數(shù)據(jù)的同步配 置方法與裝置、服務器與分布式系統(tǒng)。
背景技術
數(shù)據(jù)緩存是數(shù)據(jù)庫數(shù)據(jù)在內(nèi)存中占用的臨時容器,臨時容器中包含了數(shù) 據(jù)庫數(shù)據(jù)在內(nèi)存中的拷貝,位于數(shù)據(jù)庫與數(shù)據(jù)訪問層之間。應用系統(tǒng)需要對
數(shù)據(jù)庫凄t據(jù)進行讀取時,首先在緩存中查詢,這樣可以避免對數(shù)據(jù)庫調(diào)用所 需的性能開銷。
在需要對數(shù)據(jù)庫數(shù)據(jù)進行頻繁查詢操作的應用系統(tǒng)中,良好的緩存機制 顯得尤為重要。分布式緩存可以讓不同主機的多個用戶同時訪問和修改其中 的數(shù)據(jù),而且能夠進行緩存同步,解決了共享內(nèi)存只能單機應用的局限,不
會在不同主機的多個用戶對數(shù)據(jù)庫數(shù)據(jù)進行類似處理操作(例如查詢、編 輯)時,出現(xiàn)磁盤開銷與阻塞。
現(xiàn)有的緩存數(shù)據(jù)同步基于具體的應用系統(tǒng),若要實現(xiàn)對分布式應用系統(tǒng) 中數(shù)據(jù)緩存的同步,也稱為分布式數(shù)據(jù)緩存的同步,就需要分別對構(gòu)成各 應用系統(tǒng)本身的代碼進行人工修改并逐一進行調(diào)試,應用系統(tǒng)需要針對每個 緩存業(yè)務都進行同步,操作復雜,容易出錯,實現(xiàn)比較繁瑣,而且無法推廣 到其它的應用系統(tǒng),并且,后期維護困難。因此,目前仍無法實現(xiàn)或很難實 現(xiàn)對分布式應用系統(tǒng)中數(shù)據(jù)緩存的同步更新,導致分布式部署的各個應用系 統(tǒng)只能使用自己本機的單機數(shù)據(jù)緩存,各臺服務器之間的數(shù)據(jù)緩存各不相 干。另外,在分布式應用系統(tǒng)運行的過程中,不能對數(shù)據(jù)緩存進行修改, 一旦修改,將導致各臺服務器中數(shù)據(jù)緩存的不一致,使應用系統(tǒng)的應用范圍與功能受到很大的局限,無法真正實現(xiàn)分布式應用。
尤其是對于目前應用較為廣泛的結(jié)構(gòu)化查詢語言數(shù)據(jù)庫管理系統(tǒng)
(Structured Query Language Server,以下簡稱SQL Server)或者曱骨文 (Oracle )數(shù)據(jù)庫系統(tǒng)來說,如果需要進行分布式部署,則需要對其分布式數(shù) 據(jù)緩存進行同步。但是目前SQL Server與Oracle數(shù)據(jù)庫系統(tǒng)進行分布式部署 時,仍無法實現(xiàn)分布式數(shù)據(jù)緩存的同步。因此,SQL Server與Oracle數(shù)據(jù)庫 系統(tǒng)使用的數(shù)據(jù)緩存只能在本機單機使用,并且無法在系統(tǒng)正常運行的過程 中對緩存數(shù)據(jù)進行修改,無法實現(xiàn)對數(shù)據(jù)緩存進行分布式更新。

發(fā)明內(nèi)容
本發(fā)明的目的是提供一種分布式系統(tǒng)中數(shù)據(jù)緩存的同步配置方法與裝 置、服務器與分布式系統(tǒng),對分布式系統(tǒng)中的緩存數(shù)據(jù)進行同步更新,可以 在分布式部署的應用系統(tǒng)運行的過程中對緩存數(shù)據(jù)進行修改,且不需要對 應用系統(tǒng)自身的代碼進行修改,實現(xiàn)筒單,不易出錯。
為實現(xiàn)上述目的,本發(fā)明實施例提供的一種分布式系統(tǒng)中緩存數(shù)據(jù)的 同步配置方法,包括
在分布式系統(tǒng)中服務器上數(shù)據(jù)庫中包含緩存數(shù)據(jù)的數(shù)據(jù)表發(fā)生變化時, 通過數(shù)據(jù)庫復制方式,將該數(shù)據(jù)表的修 文信息復制到所迷分布式系統(tǒng)中的各 子服務器,并將所述服務器上的緩存數(shù)據(jù)更新信息表中該數(shù)據(jù)表名稱對應的 最新修改時刻更新為數(shù)據(jù)表發(fā)生變化的當前時刻,該緩存數(shù)據(jù)更新信息表中 包括所述服務器上數(shù)據(jù)庫中包含緩存數(shù)據(jù)的數(shù)據(jù)表名稱、該數(shù)據(jù)表的最新修 改時刻與所述服務器的緩存中相應緩存數(shù)據(jù)的最后更新時刻,以及在預設周 期開始時刻查詢所述服務器上緩存數(shù)據(jù)更新信息表,在對應于同 一數(shù)據(jù)表名 稱的最新修改時刻晚于最后更新時刻時,根據(jù)所述數(shù)據(jù)庫中最新修改后的數(shù) 據(jù)表對相應緩存數(shù)據(jù)進行更新,并將緩存數(shù)據(jù)更新信息表中該數(shù)據(jù)表名稱對 應的最后更新時刻更新為最新修改時刻;在所述各子服務器上,分別根據(jù)所述數(shù)據(jù)表的修改信息對各子服務器上 數(shù)據(jù)庫中的相應數(shù)據(jù)表進行更新,并將各子服務器上緩存數(shù)據(jù)更新信息表中 所述數(shù)據(jù)表名稱對應的最新修改時刻更新為當前時刻,以及分別在預設周期 開始時刻查詢各子服務器中的緩存數(shù)據(jù)更新信息表,在對應于同 一數(shù)據(jù)表名 稱的最新修改時刻晚于最后更新時刻時,根據(jù)數(shù)據(jù)庫中最新修改后的數(shù)據(jù)表 對相應緩存數(shù)據(jù)進行更新,并將緩存數(shù)據(jù)更新信息表中該數(shù)據(jù)表名稱對應的 最后更新時刻更新為最新修改時刻。
本發(fā)明實施例提供的 一種分布式系統(tǒng)中緩存數(shù)據(jù)的同步配置裝置,包

監(jiān)控沖莫塊,用于對分布式系統(tǒng)的服務器上數(shù)據(jù)庫中包含緩存數(shù)據(jù)的數(shù)據(jù) 表進行監(jiān)控;
數(shù)據(jù)庫復制模塊,用于在數(shù)據(jù)庫中包含緩存數(shù)據(jù)的數(shù)據(jù)表中數(shù)據(jù)發(fā)生變 化時,將該數(shù)據(jù)發(fā)生變化的數(shù)據(jù)表的修改信息復制到所述分布式系統(tǒng)中的其 它服務器;
第一更新模塊,用于根據(jù)所述監(jiān)控模塊的監(jiān)控結(jié)果,在數(shù)據(jù)庫中包含緩 存數(shù)據(jù)的數(shù)據(jù)表發(fā)生變化時,將緩存數(shù)據(jù)更新信息表中該數(shù)據(jù)表名稱對應的 最新修改時刻更新為數(shù)據(jù)發(fā)生變化的當前時刻,所述緩存數(shù)據(jù)更新信息表中 包括所述服務器上數(shù)據(jù)庫中包含緩存數(shù)據(jù)的數(shù)據(jù)表名稱、該數(shù)據(jù)表的最新修 改時刻與所述服務器的緩存中相應緩存數(shù)據(jù)的最后更新時刻;
計時模塊,用于根據(jù)預設周期進行計時;
查詢模塊,用于根據(jù)所述計時模塊的指示,在預設周期的開始時刻,查 詢所述緩存數(shù)據(jù)更新信息表;
判斷模塊,用于根據(jù)所述查詢模塊的查詢結(jié)果,判斷對應于同一數(shù)據(jù)表 名稱的最新修改時刻是否晚于最后更新時刻;
第二更新模塊,用于根據(jù)所述判斷模塊的判斷結(jié)果,在對應于同一數(shù)據(jù) 表名稱的最新修改時刻晚于最后更新時刻時,根據(jù)數(shù)據(jù)庫中最新修改后的數(shù)據(jù)表對相應緩存數(shù)據(jù)進行更新,并將緩存數(shù)據(jù)更新信息表中該數(shù)據(jù)表名稱對 應的最后更新時刻更新為最新修改時刻。
本發(fā)明實施例提供的一種服務器,包括本發(fā)明如上實施例提供的分布式 系統(tǒng)中緩存數(shù)據(jù)的同步配置裝置。
本發(fā)明實施例提供的一種分布式系統(tǒng),包括主服務器與至少一個子服務 器,還包括本發(fā)明如上實施例提供的分布式系統(tǒng)中緩存數(shù)據(jù)的同步配置裝置。
基于本發(fā)明上述實施例提供的分布式系統(tǒng)中緩存數(shù)據(jù)的同步配置方法與 裝置、服務器與分布式系統(tǒng),在分布式系統(tǒng)中其中一個服務器上數(shù)據(jù)庫中包 含緩存數(shù)據(jù)的數(shù)據(jù)表被修改時,將該數(shù)據(jù)表的修改信息復制到分布式系統(tǒng)中 的其它服務器,在各服務器上,分別根據(jù)數(shù)據(jù)庫中數(shù)據(jù)表的修改情況對緩存
中的相應數(shù)據(jù)進行更新,從而實現(xiàn)了分布式系統(tǒng)中緩存數(shù)據(jù)的同步;并且, 可以獨立于應用系統(tǒng)對分布式系統(tǒng)中的緩存數(shù)據(jù)進行同步,不需要對應用系 統(tǒng)自身的代碼進行修改與調(diào)試,也不需要應用系統(tǒng)參與緩存數(shù)據(jù)的同步業(yè)務, 實現(xiàn)簡單,不易出錯,適用于任何分布式系統(tǒng),可以在分布式部署的應用系 統(tǒng)運行的過程中,對緩存數(shù)據(jù)進行同步,便于推廣應用。
下面通過附圖和實施例,對本發(fā)明的技術方案做進一步的詳細描述。


圖1為本發(fā)明分布式系統(tǒng)中緩存數(shù)據(jù)的同步配置方法一個實施例的流程
圖2為本發(fā)明分布式系統(tǒng)中緩存數(shù)據(jù)的同步配置方法另一個實施例的流
程圖3為本發(fā)明圖2所示分布式系統(tǒng)的結(jié)構(gòu)示意圖; 圖4為本發(fā)明分布式系統(tǒng)中緩存數(shù)據(jù)的同步配置方法又一個應用實施例 的流程圖5為本發(fā)明分布式系統(tǒng)中緩存數(shù)據(jù)的同步配置裝置一個實施例的結(jié)構(gòu) 示意圖;圖6為本發(fā)明分布式系統(tǒng)中緩存數(shù)據(jù)的同步配置裝置另一個實施例的結(jié) 構(gòu)示意圖。
具體實施方式
本發(fā)明實施例提供的分布式系統(tǒng)中緩存數(shù)據(jù)的同步配置方法與裝置適用于寸壬何數(shù)據(jù)庫,例如SQL Server數(shù)據(jù)庫或Oracle數(shù)據(jù)庫。如圖1所示,為本發(fā)明分布式系統(tǒng)中緩存數(shù)據(jù)的同步配置方法一個實施 例的流^i圖,其包括以下步驟步驟101,在分布式系統(tǒng)中服務器上數(shù)據(jù)庫中包含緩存數(shù)據(jù)的數(shù)據(jù)表發(fā) 生變化時,通過數(shù)據(jù)庫復制方式,將該數(shù)據(jù)表的修改信息復制到分布式系統(tǒng) 中的各子服務器,并將所述服務器上的緩存數(shù)據(jù)更新信息表中該數(shù)據(jù)表名稱 對應的最新修改時刻更新為數(shù)據(jù)表發(fā)生變化的當前時刻,該緩存數(shù)據(jù)更新信 息表中包括該服務器上數(shù)據(jù)庫中包含緩存數(shù)據(jù)的數(shù)據(jù)表名稱、該數(shù)據(jù)表的最 新修改時刻與服務器的緩存中相應緩存數(shù)據(jù)的最后更新時刻。其中數(shù)據(jù)表的 修改信息可以包括該數(shù)據(jù)表名稱及其操作日志,也可以包括該數(shù)據(jù)表的名稱 及其變化后的最終結(jié)果。該步驟101中,將該數(shù)據(jù)表的修改信息復制到分布式系統(tǒng)中的各子服務 器的操作與將所述服務器上的緩存數(shù)據(jù)更新信息表中該數(shù)據(jù)表名稱對應的最新修改時刻更新為數(shù)據(jù)表發(fā)生變化的當前時刻的操作是兩個相互獨立的過 程,二者不存在時間順序約束。步驟102,分布式系統(tǒng)中的服務器在預設周期開始時刻查詢所述服務器 中的緩存數(shù)據(jù)更新信息表,并比較對應于同一數(shù)據(jù)表名稱的最新修改時刻晚于最后更新時刻。步驟103,在對應于同一數(shù)據(jù)表名稱的最新修改時刻晚于最后更新時刻 時,根據(jù)數(shù)據(jù)庫中最新修改后的數(shù)據(jù)表對相應緩存數(shù)據(jù)進行更新,并將緩存 數(shù)據(jù)更新信息表中該數(shù)據(jù)表名稱對應的最后更新時刻更新為最新修改時刻。步驟102中對服務器中的緩存數(shù)據(jù)更新信息表的查詢是周期性的,例如以2秒為一個周期,每2秒的開始時刻便會查詢一次服務器中的緩存數(shù)據(jù)更 新信息表,因此,步驟102-103與步驟101的執(zhí)行相互獨立,不存在時間順 序約束。步驟104,針對各子服務器,接收到數(shù)據(jù)表的修改信息后,分別根據(jù)該 數(shù)據(jù)表的修改信息對各子服務器上數(shù)據(jù)庫中的相應數(shù)據(jù)表進行更新,并將各 子服務器上緩存數(shù)據(jù)更新信息表中標識該數(shù)據(jù)的數(shù)據(jù)表名稱對應的最新修改 時刻更新為當前時刻。步驟105,分別在預設周期開始時刻查詢各子服務器中的緩存數(shù)據(jù)更新 信息表,比較對應于同 一數(shù)據(jù)表名稱的最新修改時刻晚于最后更新時刻。步驟106,在對應于同一數(shù)據(jù)表名稱的最新修改時刻晚于最后更新時刻 時,根據(jù)數(shù)據(jù)庫中最新修改后的數(shù)據(jù)表對各子服務器上的相應緩存數(shù)據(jù)進行 更新,并將緩存數(shù)據(jù)更新信息表中該數(shù)據(jù)表名稱對應的最后更新時刻更新為 最新修改時刻。步驟104-106是對分布式系統(tǒng)中各子服務器上緩存數(shù)據(jù)進行更新,其與 步驟102-103是分布式系統(tǒng)中不同服務器上緩存數(shù)據(jù)的更新過程,因此,步 驟104-106與步驟102-103是相互獨立的過程,二者不存在時間順序約束。上述實施例中,在分布式系統(tǒng)中其中 一個服務器上數(shù)據(jù)庫中的數(shù)據(jù)表發(fā) 生變化時,更新該服務器上的緩存數(shù)據(jù)更新信息表,并通過周期性查詢緩存 數(shù)據(jù)更新信息表對自身的緩存數(shù)據(jù)進行更新,該服務器更新緩存數(shù)據(jù)更新信 息表,還將數(shù)據(jù)表的修改信息復制到分布式系統(tǒng)中的各子服務器,由各子服 務器根據(jù)該數(shù)據(jù)表的修改信息對數(shù)據(jù)庫與緩存數(shù)據(jù)更新信息表進行更新,并 通過周期性查詢緩存數(shù)據(jù)更新信息表進一步實現(xiàn)對各子服務器上的緩存數(shù)據(jù) 的更新,從而實現(xiàn)了對分布式系統(tǒng)中所有緩存數(shù)據(jù)的同步,而不需要對服務 器上的應用系統(tǒng)進行改進、修改與調(diào)試,也不需要應用系統(tǒng)參與具體緩存數(shù) 據(jù)的同步業(yè)務,實現(xiàn)簡單,不易出錯,適用于任何分布式系統(tǒng),便于推廣應 用;并且,可以在分布式部署的應用系統(tǒng)運行的過程中,對緩存數(shù)據(jù)進行 同步。圖l所示實施例的步驟101中的服務器可以是分布式系統(tǒng)中的主服務器, 即發(fā)布服務器,也可以是分布式系統(tǒng)中的子服務器,即訂閱服務器。發(fā) 布服務器在監(jiān)測到該發(fā)布服務器上數(shù)據(jù)庫中數(shù)據(jù)表發(fā)生變化時,將該數(shù)據(jù)表 的修改信息發(fā)布到各訂閱服務器上。當驟101中的服務器是分布式系統(tǒng)中的子服務器時,步驟101中,將該 數(shù)據(jù)表的修改信息復制到分布式系統(tǒng)中的各子服務器具體包括該子服務器 將所述數(shù)據(jù)表的修改信息發(fā)送給分布式系統(tǒng)中的主服務器;主服務器通過數(shù) 據(jù)庫復制方式,將該數(shù)據(jù)表的修改信息發(fā)布到所述分布式系統(tǒng)中的各子服務 器,另外,在主服務器上,根據(jù)該數(shù)據(jù)表的修改信息對主服務器上數(shù)據(jù)庫中 的相應數(shù)據(jù)表進行更新,并將主服務器上緩存數(shù)據(jù)更新信息表中該數(shù)據(jù)表對 應的最新修改時刻更新為當前時刻;然后針對該主服務器上的緩存數(shù)據(jù),按 照步驟102-103的流程進行相應處理,即分別在預設周期開始時刻查詢該 主服務器中的緩存數(shù)據(jù)更新信息表,在對應于同一數(shù)據(jù)表名稱的最新修改時 刻晚于最后更新時刻時,根據(jù)該數(shù)據(jù)表名稱標識的數(shù)據(jù)庫中最新修改后的數(shù) 據(jù)表對相應緩存數(shù)據(jù)進行更新,并將緩存數(shù)據(jù)更新信息表中該數(shù)據(jù)表名稱對 應的最后更新時刻更新為最新修改時刻。如圖2所示,為本發(fā)明分布式系統(tǒng)中緩存數(shù)據(jù)的同步配置方法另一個實 施例的流程圖,圖3為該分布式系統(tǒng)的一個具體的結(jié)構(gòu)示意圖。該分布式系 統(tǒng)包括主服務器、第一子服務器、第二子服務器與第三子服務器,主服務器 為發(fā)布服務器,第一子服務器、第二子服務器與第三子服務器為訂閱服務器, 第一子服務器、第二子服務器與第三子服務器都和主服務器進行信息交互, 第一子服務器、第二子服務器與第三子服務器之間不進行信息交互。主服務 器、第一子服務器、第二子服務器與第三子服務器上都部署同一種應用系統(tǒng), 應用系統(tǒng)使用的內(nèi)存緩存數(shù)據(jù)都來自于同一種類型的數(shù)據(jù)庫,例如SQL Server數(shù)據(jù)庫或Oracle數(shù)據(jù)庫,并將所述各服務器上的數(shù)據(jù)庫配置為該分布 式系統(tǒng)中所有服務器都可以更新的數(shù)據(jù)庫屬性,即將數(shù)據(jù)庫的復制方式配 置為參與復制的服務器可以更新復制數(shù)據(jù)的數(shù)據(jù)庫復制方式。另外,還將分布式系統(tǒng)中各服務器上的數(shù)據(jù)庫中包含緩存數(shù)據(jù)的數(shù)據(jù)表配置為可復制的數(shù)據(jù)表。假設該分布式系統(tǒng)的各服務器中需要緩存的數(shù)據(jù)表為A表、B表與C 表,可以是數(shù)據(jù)庫中任意數(shù)據(jù)信息,例如服務器上的應用系統(tǒng)運行時使用 的一些基本配置參數(shù),使用初始化腳本初始化數(shù)據(jù)庫中的A表、B表與C表, 以便服務器上的應用系統(tǒng)啟動運行后,能夠從數(shù)據(jù)庫中讀取到A表、B表與 C表的數(shù)據(jù)信息,并進一步將其讀取到緩存中供應用系統(tǒng)使用。該實施例的 分布式系統(tǒng)中緩存數(shù)據(jù)的同步配置方法包括以下步驟步驟201,在分布式系統(tǒng)中的主服務器、第一子服務器、第二子服務器 與第三子服務器中分別建立緩存數(shù)據(jù)更新信息表,該緩存數(shù)據(jù)更新信息表可 以設置在相應服務器或服務器上的數(shù)據(jù)庫中,其包括各服務器上應用系統(tǒng)使 用的數(shù)據(jù)庫中包含緩存數(shù)據(jù)的A表、B表與C表的數(shù)據(jù)表名稱、最新修改時 刻與各服務器的緩存中相應緩存數(shù)據(jù)的最后更新時刻,最新修改時刻與最后 更新時刻可以精確到毫秒級,以便實時記錄數(shù)據(jù)的變化情況。初始狀態(tài)下, 配置各數(shù)據(jù)表名稱對應的最新修改時刻與最后更新時刻相同。如下表1所示, 為該緩存數(shù)據(jù)更新信息表的 一個具體內(nèi)容實例表l數(shù)據(jù)表名稱最新修改時刻最后更新時刻A表01時58分0.005秒01時58分0.005秒B表01時58分0.005秒01時58分0.005秒C表01時58分0.005秒01時58分0.005秒另外,也可以在各服務器上應用系統(tǒng)使用的數(shù)據(jù)庫中的A表、B表與C 表中,分別建立針對該A表、B表與C表的緩存數(shù)據(jù)更新信息表,而不集中 建立A表、B表與C表的緩存數(shù)據(jù)更新信息表。步驟202,在各服務器上,分別對數(shù)據(jù)庫中A表、B表與C表的數(shù)據(jù)進 行監(jiān)控,在A表、B表與C表的數(shù)據(jù)發(fā)生變化時,將緩存數(shù)據(jù)更新信息表中 數(shù)據(jù)發(fā)生變化的數(shù)據(jù)表的最新修改時刻更新為數(shù)據(jù)發(fā)生變化的當前時刻。例如若在當前時刻為01時58分0.006秒時A表的數(shù)據(jù)發(fā)生了變化,則將A 表的最新<奮改時刻更新為01時58分0.006秒。并通過數(shù)據(jù)庫復制方式,將 數(shù)據(jù)發(fā)生變化的數(shù)據(jù)表的修改信息復制到分布式系統(tǒng)中的其它服務器,由其 它服務器根據(jù)數(shù)據(jù)表的修改信息對各自數(shù)據(jù)庫中的相應數(shù)據(jù)表進行更新,并 將緩存數(shù)據(jù)更新信息表中該數(shù)據(jù)表名稱對應的最新修改時刻更新為當前時 刻。具體地,如果是主服務器上A表、B表與C表的數(shù)據(jù)發(fā)生了變化,則將 數(shù)據(jù)發(fā)生變化的A表、B表與C表的修改信息發(fā)布到分布式系統(tǒng)中的所有子 服務器,各子服務器分別根據(jù)A表、B表與C表的修改信息對各自數(shù)據(jù)庫中 的相應凄t據(jù)表進行更新,并將緩存數(shù)據(jù)更新信息表中該數(shù)據(jù)表名稱對應的最 新{務改時刻更新為當前時刻。如果是子服務器上A表、B表與C表的數(shù)據(jù)發(fā)生了變化,則該子服務器 將數(shù)據(jù)發(fā)生變化的數(shù)據(jù)表的修改信息復制到分布式系統(tǒng)中的主服務器;由主 服務器再通過數(shù)據(jù)庫復制方式,將數(shù)據(jù)發(fā)生變化的數(shù)據(jù)表的修改信息發(fā)布到 分布式系統(tǒng)中的所有子服務器,另外,在主服務器上,根據(jù)數(shù)據(jù)表的修改信 息對該主服務器上數(shù)據(jù)庫中的相應數(shù)據(jù)表進行更新,并將緩存數(shù)據(jù)更新信息 表中該數(shù)據(jù)表名稱對應的最新修改時刻更新為當前時刻。各子服務器接收到 數(shù)據(jù)表的修改信息后,再分別根據(jù)數(shù)據(jù)表的修改信息對各自數(shù)據(jù)庫中的相應 數(shù)據(jù)表進行更新,并將緩存數(shù)據(jù)更新信息表中該數(shù)據(jù)表名稱對應的最新修改 時刻更新為當前時刻。步驟203,分布式系統(tǒng)中的各服務器分別在預設周期開始時刻查詢該服 務器中的緩存數(shù)據(jù)更新信息表。假設預設周期為2秒,則在每一個2秒的開 始時刻,則主服務器、第一子服務器、第二子服務器與第三子服務器分別查 詢各自的緩存數(shù)據(jù)更新信息表。步驟204,各服務器根據(jù)查詢結(jié)果,分別判斷A表、B表與C表的最新 修改時刻是否晚于最后更新時刻,若晚于,說明數(shù)據(jù)庫中A表的數(shù)據(jù)發(fā)生了變化,但尚未對該服務器上緩存中的A表數(shù)據(jù)進行更新,執(zhí)行步驟205;否 則,不執(zhí)行后續(xù)操作。步驟205,在A表、B表和/或C表的最新修改時刻晚于最后更新時刻的 主服務器、第一子服務器、第二子服務器與第三子服務器上,分別根據(jù)數(shù)據(jù) 庫中最新修改后的數(shù)據(jù)表對相應服務器緩存中的相應緩存數(shù)據(jù)進行更新,并 在更新后將相應A表、B表和/或C表的最后更新時刻更新為最新修改時刻。 布li殳主服務器上發(fā)現(xiàn)A表的最新修改時刻晚于最后更新時刻,則在主服務器 上,根據(jù)數(shù)據(jù)庫中最新修改后的A表的數(shù)據(jù)對該主服務器緩存中A表的緩存 數(shù)據(jù)進行更新,并將該主服務器上A表的最后更新時刻更新為最新修改時刻。通過分布式系統(tǒng)中各服務器分別對各自緩存數(shù)據(jù)的更新,最終實現(xiàn)了分 布式系統(tǒng)中緩存數(shù)據(jù)的同步。在上述實施例中,若主服務器與各子服務器使用的數(shù)據(jù)庫為SQL Server 數(shù)據(jù)庫,具體可以采用事務性復制的方法,將數(shù)據(jù)發(fā)生變化的數(shù)據(jù)表的修改 信息復制到分布式系統(tǒng)中的其它服務器。若主服務器與各子服務器使用的數(shù) 據(jù)庫為Oracle數(shù)據(jù)庫,具體可以采用同步數(shù)據(jù)復制方法或異步數(shù)據(jù)復制方法, 將數(shù)據(jù)發(fā)生變化的數(shù)據(jù)表的修改信息復制到分布式系統(tǒng)中的其它服務器。需要說明的是,步驟202可以在圖2所示實施例中步驟203-205執(zhí)行的 任意時刻執(zhí)行,即在緩存數(shù)據(jù)更新信息表建立后,實時或以預先設置的周 期才丸行步驟202。同樣,步驟203也以預設周期執(zhí)行,即在每一個預設周 期的開始時刻就執(zhí)行步驟203,例如每2秒的開始時刻執(zhí)行一次步驟203 及其后續(xù)的處理流程。分布式系統(tǒng)中的各服務器分別在預設周期開始時刻查詢該服務器中的緩 存^:據(jù)更新信息表。假設預設周期為2秒,則在每一個2秒的開始時刻,則 主服務器、第一子服務器、第二子服務器與第三子服務器分別查詢各自的緩 存數(shù)據(jù)更新信息表。圖4所示,為本發(fā)明分布式系統(tǒng)中緩存數(shù)據(jù)的同步配置方法又一個應用實施例的流程圖。該應用實施例仍然采用圖3所示的分布式系統(tǒng),特別地, 主服務器、第一子服務器、第二子服務器與第三子服務器上采用的數(shù)據(jù)庫都是SQL Server數(shù)據(jù)庫,各服務器上應用系統(tǒng)使用的內(nèi)存緩存數(shù)據(jù)都來自于 SQL Server數(shù)據(jù)庫,對于Oracle數(shù)據(jù)庫,該應用實施例同樣適用。該分布式 系統(tǒng)的各服務器中需要緩存同步的數(shù)據(jù)信息為數(shù)據(jù)庫表CONFIG表,將數(shù)據(jù) 庫的復制方式配置為事務性復制的方法,將CONFIG表設定為可復制的表, 如果服務器的緩存數(shù)據(jù)從多個CONFIG表讀取,則將這些CONFIG表都設定 為可復制的表,并4吏用初始化腳本初始化各數(shù)據(jù)庫中的CONFIG表。該應 用實施例的分布式系統(tǒng)中緩存數(shù)據(jù)的同步配置方法包括以下步驟步驟301,在分布式系統(tǒng)中的主服務器、第一子服務器、第二子服務器 與第三子服務器數(shù)據(jù)庫的CONFIG表中分別建立緩存數(shù)據(jù)更新信息表,表名 為CACHE—INFO,如下表2所示,為該CACHE—INFO的一個具體內(nèi)容實 例表2TABLE NAMEPRE UPDATE TIMEUPDATE TIMECONFIG表01時58分0.005秒01時58分0.005秒在上述表2中,TABLE—NAME、 PRE—UPDATE—TIME與UPDATE—TIME 分別表示數(shù)據(jù)表名稱、最新修改時刻與最后更新時刻。其中,最新修改時刻 與最后更新時刻精確到毫秒級。在CACHE—INFO表初始化時, PRE—UPDATE—TIME與UPDATE—TIME相同。步驟302,在主服務器、第一子服務器、第二子服務器與第三子服務器 上數(shù)據(jù)庫的CONFIG表中分別建立觸發(fā)器。步驟303,在主服務器、第一子服務器、第二子服務器與第三子服務器 上啟動應用系統(tǒng),各應用系統(tǒng)啟動時,分別從SQL S erver數(shù)據(jù)庫中將CONFIG 表的數(shù)據(jù)讀取到內(nèi)存中緩存起來。步驟304,在各服務器上的應用系統(tǒng)運行過程中,在應用系統(tǒng)中對相應服務器上婆丈據(jù)庫中包含緩存數(shù)據(jù)的數(shù)據(jù)表,即CONFIG表的數(shù)據(jù),進行更 新修改。該實施例中,假設在第一子服務器上,操作員通過該第一子服務器 上的應用系統(tǒng)或者直接對該第一子服務器上數(shù)據(jù)庫中的CONFIG表數(shù)據(jù)進行 了一次修改更新操作。
步驟305,主服務器、第一子服務器、第二子服務器與第三子服務器上 的觸發(fā)器分別對主服務器、第一子服務器、第二子服務器與第三子服務器上 數(shù)據(jù)庫的CONFIG表進行監(jiān)控,由于步驟304中對第一子服務器上的CONFIG 表進行了〗,改,第一子服務器上的觸發(fā)器監(jiān)控到CONFIG表發(fā)生變化,將 CACHE—INFO中CONFIG表的最新修改時刻更新為數(shù)據(jù)發(fā)生變化的當前時 刻,并采用事務性復制的方法,將CONFIG表的修改信息,例如CONFIG 表的名稱及其修改后的最新CONFIG表,發(fā)送給主服務器。
步驟306,主服務器采用事務性復制的方法,將CONFIG表的修改信 息發(fā)布給第一子服務器、第二子服務器與第三子服務器,或僅僅發(fā)布給第二 子服務器與第三子服務器;同時,主服務器根據(jù)CONFIG表的修改信息對該 主服務器上數(shù)據(jù)庫中的相應數(shù)據(jù)進行更新,并將CACHE—INFO中CONFIG 表的最新》多改時刻更新為當前時刻。
步驟307,相應子服務器接收到主服務器發(fā)送的CONFIG表的修改信 息后,分別根據(jù)CONFIG表的修改信息對各自數(shù)據(jù)庫中的相應CONFIG 表進行更孝斤,并將各自CACHE—INFO中CONFIG表的最新修改時刻更新 為當前時刻。
步驟308,主服務器、第一子服務器、第二子服務器與第三子服務器分 別在預設周期開始時刻讀取各自數(shù)據(jù)庫中的CACHE—INFO表,判斷 PRE—UPDATE—TIME是否晚于UPDATE—TIME,如果PRE—UPDATE—TIME 晚于UPDATE_TIME,執(zhí)行步驟309;如果PRE—UPDATE—TIME不晚于 UPDATE—TIME,不執(zhí)行后續(xù)操作。由于步驟306與步驟307中對CONFIG 表的最新修改時刻進行了更新,于是執(zhí)行步驟309。該預設周期可以為2秒。各服務器上的應用系統(tǒng)啟動時就開始按照該預 設周期執(zhí)行該步驟308。 PRE—UPDATE—TIME與UPDATEJTIME的時間比較 精確到毫秒級,以便及時對緩存數(shù)據(jù)進行更新。
步驟309,主服務器、第一子服務器、第二子服務器與第三子服務器分 別從各自的數(shù)據(jù)庫中讀取CONFIG表數(shù)據(jù),并利用該CONFIG表數(shù)據(jù)更新 該各自緩存中的CONFIG表數(shù)據(jù),更新緩存數(shù)據(jù)后將CACHE—INFO表中 PRE—UPDATE—TIME修改為UPDATE—TIME。
通過主服務器、第一子服務器、第二子服務器與第三子服務器分別對各 自緩存凄t據(jù)的更新,實現(xiàn)了對分布式系統(tǒng)中緩存數(shù)據(jù)的同步。
如果在步驟304中是主服務器上數(shù)據(jù)庫中的CONFIG表被修改,則步驟 306中,主服務器利用數(shù)據(jù)庫中更新后的CONFIG表更新緩存中的CONFIG 表數(shù)據(jù)后,將CONFIG表的修改信息分發(fā)到第一子服務器、第二子服務器與 第三子服務器。
如圖5所示,為本發(fā)明分布式系統(tǒng)中緩存lt據(jù)的同步配置裝置一個實施 例的結(jié)構(gòu)示意圖,該實施例的同步配置裝置可用于實現(xiàn)如圖1所示實施例的 同步配置方法,其包括監(jiān)控模塊501、數(shù)據(jù)庫復制模塊502、第一更新模塊 503、計時模塊504、查詢模塊505、判斷模塊506與第二更新模塊507。
其中,監(jiān)控模塊501用于對分布式系統(tǒng)的服務器上數(shù)據(jù)庫中包含緩存數(shù) 據(jù)的數(shù)據(jù)表進行監(jiān)控數(shù)據(jù)庫復制模塊502用于在數(shù)據(jù)庫中包含緩存數(shù)據(jù)的數(shù) 據(jù)表中數(shù)據(jù)發(fā)生變化時,將數(shù)據(jù)表的修改信息復制到分布式系統(tǒng)中的其它服 務器。第一更新模塊503用于根據(jù)監(jiān)控模塊501的監(jiān)控結(jié)果,在數(shù)據(jù)庫中包 含緩存數(shù)據(jù)的數(shù)據(jù)表發(fā)生變化時,將緩存數(shù)據(jù)更新信息表中該數(shù)據(jù)表名稱對 應的最新修改時刻更新為數(shù)據(jù)表發(fā)生變化的當前時刻,所述緩存數(shù)據(jù)更新信 息表中包括服務器上數(shù)據(jù)庫中包含緩存數(shù)據(jù)的數(shù)據(jù)表名稱、該數(shù)據(jù)表的最新 修改時刻與服務器緩存中相應緩存數(shù)據(jù)的最后更新時刻。計時模塊504用于 根據(jù)預設周期進行計時。查詢模塊505用于根據(jù)計時模塊504的指示,在預設周期的開始時刻,查詢表示分布式系統(tǒng)的服務器中緩存數(shù)據(jù)更新情況的緩
存數(shù)據(jù)更新信息表。判斷模塊506用于根據(jù)查詢模塊505的查詢結(jié)果,判斷 對應于同一凄t據(jù)表名稱的最新修改時刻是否晚于最后更新時刻。第二更新模 塊507用于根據(jù)判斷模塊506的判斷結(jié)果,在對應于同一數(shù)據(jù)表名稱的最新 修改時刻晚于最后更新時刻時,根據(jù)該數(shù)據(jù)表名稱標識的數(shù)據(jù)庫中最新修改 后的數(shù)據(jù)表對相應緩存數(shù)據(jù)進行更新,并將緩存數(shù)據(jù)更新信息表中該數(shù)據(jù)表 名稱對應的最后更新時刻更新為最新修改時刻。
在上述實施例提供的同步配置裝置中,當監(jiān)控模塊監(jiān)控到數(shù)據(jù)庫中包含 緩存數(shù)據(jù)的數(shù)據(jù)表信息發(fā)生變化時,數(shù)據(jù)庫復制模塊數(shù)據(jù)表的修改信息復制 到分布式系統(tǒng)中的其它服務器,由第 一 更新模塊更新緩存數(shù)據(jù)更新信息表中 的最新修改時刻,并由第二更新模塊根據(jù)數(shù)據(jù)庫中更新后的數(shù)據(jù)表對緩存數(shù) 據(jù)進行更新,通過同樣方法對其它服務器上的緩存數(shù)據(jù)進行更新,從而實現(xiàn) 分布式系統(tǒng)緩存數(shù)據(jù)的同步,在整個過程中,都不需要應用系統(tǒng)參與,因此, 不需要對應用系統(tǒng)自身的代碼進行修改與調(diào)試,實現(xiàn)簡單,不易出錯,適用 于任何分布式系統(tǒng),^f更于推廣應用;并且,可以在分布式部署的應用系統(tǒng)運 行的過程中,對緩存數(shù)據(jù)進行同步,真正實現(xiàn)了對分布式系統(tǒng)中緩存數(shù)據(jù) 的同步更新。
在本發(fā)明上述實施例的同步配置裝置中,還可以包括數(shù)據(jù)更新模塊508, 用于根據(jù)接收到的數(shù)據(jù)表的修改信息,對當前服務器上數(shù)據(jù)庫中的相應數(shù)據(jù) 表進行更新。
圖5所示的實施例中的服務器可以為分布式系統(tǒng)中的主服務器,數(shù)據(jù)庫 復制模塊502具體用于在數(shù)據(jù)庫中包含緩存數(shù)據(jù)的數(shù)據(jù)表中數(shù)據(jù)發(fā)生變化 時,將數(shù)據(jù)發(fā)生變化的數(shù)據(jù)表的修改信息發(fā)布到所有子服務器。
另外,在圖5所示的實施例中的服務器也可以為分布式系統(tǒng)中的子服務 器,數(shù)據(jù)庫復制模塊502用于在數(shù)據(jù)庫中包含緩存數(shù)據(jù)的數(shù)據(jù)表中數(shù)據(jù)發(fā)生 變化時,將數(shù)據(jù)發(fā)生變化的數(shù)據(jù)表的修改信息復制到主服務器。此時,與圖實施例中還可以包括復制模塊601,如圖6所示,為 本發(fā)明分布式系統(tǒng)中緩存數(shù)據(jù)的同步配置裝置另一個實施例的結(jié)構(gòu)示意圖, 其中,復制模塊601用于將主服務器接收到的數(shù)據(jù)表的修改信息發(fā)布到所有 子服務器或除所述子服務器以外的其它子服務器。在本發(fā)明上述實施例的同步配置裝置中,緩存數(shù)據(jù)更新信息表可以分別 設置在作為緩存數(shù)據(jù)來源的數(shù)據(jù)庫中或該數(shù)據(jù)庫所在的服務器中。相應的, 本發(fā)明上述實施例提供的同步配置裝置中的監(jiān)控模塊501、數(shù)據(jù)庫復制模塊 502、第一更新模塊503、計時模塊504、查詢模塊505、判斷模塊506、第二 更新模塊507與數(shù)據(jù)更新模塊508可以是多個,分別設置在作為緩存數(shù)據(jù)來 源的數(shù)據(jù)庫中或該數(shù)據(jù)庫所在的服務器中。在本發(fā)明上述實施例的同步配置裝置中,監(jiān)控模塊501與相應的第一更 新模塊503可以一體設置,具體通過一個觸發(fā)器實現(xiàn),該觸發(fā)器設置于包含 緩存數(shù)據(jù)的數(shù)據(jù)表中。本發(fā)明上述圖5與圖6所示實施例提供的同步配置裝置可以用于實現(xiàn)如 本發(fā)明圖2與圖4所示實施例的同步配置方法。另外,本發(fā)明實施例還提供了一種服務器,可以包括如圖5所示實施例 的分布式系統(tǒng)中緩存數(shù)據(jù)的同步配置裝置。進一步地,本發(fā)明實施例還提供了一種分布式系統(tǒng),包括主服務器與至 少一個子月良務器,以及如上述任一實施例提供的分布式系統(tǒng)中緩存數(shù)據(jù)的同 步配置裝置。其中,不包括復制模塊601的同步配置裝置可以是多個,分別 設置在分布式系統(tǒng)的各個服務器中。本領域普通技術人員可以理解實現(xiàn)上述方法實施例的全部或部分步 驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于一計算機 可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟; 而前述的存儲介質(zhì)包括ROM、 RAM、磁碟或者光盤等各種可以存儲程 序代碼的介質(zhì)。20本發(fā)明上述實施例提供的分布式系統(tǒng)中緩存數(shù)據(jù)的同步配置方法與裝 置、服務器與分布式系統(tǒng),可以獨立于應用系統(tǒng)對分布式系統(tǒng)中的緩存數(shù)據(jù) 進行同步,因此,不需要對應用系統(tǒng)自身的代碼進行修改與調(diào)試,也不需要 應用系統(tǒng)參與緩存數(shù)據(jù)的同步業(yè)務,實現(xiàn)簡單,不易出錯,適用于任何分布式系統(tǒng),便于推廣應用;并且,可以在分布式部署的應用系統(tǒng)運行的過程中, 對緩存數(shù)據(jù)進行同步,實現(xiàn)了對分布式系統(tǒng)中緩存數(shù)據(jù)的同步更新。最后所應說明的是以上實施例僅用以說明本發(fā)明的技術方案,而非對 本發(fā)明作限制性理解。盡管參照上述較佳實施例對本發(fā)明進行了詳細說明, 本領域的普通技術人員應當理解其依然可以對本發(fā)明的技術方案進行修改 或者等同替換,而這種修改或者等同替換并不脫離本發(fā)明技術方案的精神和 范圍。
權(quán)利要求
1、一種分布式系統(tǒng)中緩存數(shù)據(jù)的同步配置方法,其特征在于,包括在分布式系統(tǒng)中服務器上數(shù)據(jù)庫中包含緩存數(shù)據(jù)的數(shù)據(jù)表發(fā)生變化時,通過數(shù)據(jù)庫復制方式,將該數(shù)據(jù)表的修改信息復制到所述分布式系統(tǒng)中的各子服務器,并將所述服務器上的緩存數(shù)據(jù)更新信息表中該數(shù)據(jù)表名稱對應的最新修改時刻更新為數(shù)據(jù)表發(fā)生變化的當前時刻,該緩存數(shù)據(jù)更新信息表中包括所述服務器上數(shù)據(jù)庫中包含緩存數(shù)據(jù)的數(shù)據(jù)表名稱、該數(shù)據(jù)表的最新修改時刻與所述服務器的緩存中相應緩存數(shù)據(jù)的最后更新時刻,以及在預設周期開始時刻查詢所述服務器上緩存數(shù)據(jù)更新信息表,在對應于同一數(shù)據(jù)表名稱的最新修改時刻晚于最后更新時刻時,根據(jù)所述數(shù)據(jù)庫中最新修改后的數(shù)據(jù)表對相應緩存數(shù)據(jù)進行更新,并將緩存數(shù)據(jù)更新信息表中該數(shù)據(jù)表名稱對應的最后更新時刻更新為最新修改時刻;在所述各子服務器上,分別根據(jù)所述數(shù)據(jù)表的修改信息對各子服務器上數(shù)據(jù)庫中的相應數(shù)據(jù)表進行更新,并將各子服務器上緩存數(shù)據(jù)更新信息表中所述數(shù)據(jù)表名稱對應的最新修改時刻更新為當前時刻,以及分別在預設周期開始時刻查詢各子服務器中的緩存數(shù)據(jù)更新信息表,在對應于同一數(shù)據(jù)表名稱的最新修改時刻晚于最后更新時刻時,根據(jù)數(shù)據(jù)庫中最新修改后的數(shù)據(jù)表對相應緩存數(shù)據(jù)進行更新,并將緩存數(shù)據(jù)更新信息表中該數(shù)據(jù)表名稱對應的最后更新時刻更新為最新修改時刻。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述服務器為所述分布式 系統(tǒng)中的主服務器。
3、 才艮據(jù)權(quán)利要求1所述的方法,其特征在于,所述服務器為所述分布式 系統(tǒng)中的子服務器;將該數(shù)據(jù)表的修改信息復制到所述分布式系統(tǒng)中的各子服務器包括所 述子服務器將該數(shù)據(jù)表的修改信息發(fā)送給所述分布式系統(tǒng)中的主服務器;所 述主服務器通過數(shù)據(jù)庫復制方式,將該數(shù)據(jù)表的修改信息發(fā)布到所述分布式系統(tǒng)中的各子服務器,并在所述主服務器上,根據(jù)所述數(shù)據(jù)表的修改信息對該主服務器上數(shù)據(jù)庫中的相應^:據(jù)表進行更新,并將該主服務器上緩存數(shù)據(jù) 更新信息表中所述數(shù)據(jù)表名稱對應的最新修改時刻更新為當前時刻,以及分 別在預設周期開始時刻查詢所述主服務器中的緩存數(shù)據(jù)更新信息表,在對應 于同一凄t據(jù)表名稱的最新修改時刻晚于最后更新時刻時,才艮據(jù)數(shù)據(jù)庫中最新 修改后的凄丈據(jù)表對相應緩存數(shù)據(jù)進行更新,并將緩存數(shù)據(jù)更新信息表中該數(shù) 據(jù)表名稱對應的最后更新時刻更新為最新修改時刻。
4、 才艮據(jù)權(quán)利要求l、 2或3所述的方法,其特征在于,還包括 將所述分布式系統(tǒng)中各服務器上的數(shù)據(jù)庫配置為參與復制的服務器都可以更新復制數(shù)據(jù)的數(shù)據(jù)庫復制方式,以及將所述分布式系統(tǒng)中各服務器上的 數(shù)據(jù)庫中包含緩存數(shù)據(jù)的數(shù)據(jù)表配置為可復制的數(shù)據(jù)表。
5、 才艮據(jù)權(quán)利要求4所述的方法,其特征在于,還包括在分布式系統(tǒng)中的各服務器中建立所述緩存數(shù)據(jù)更新信息表,配置各數(shù) 據(jù)表名稱對應的最新修改時刻與最后更新時刻相同,并對各服務器中所述緩 存數(shù)據(jù)更新信息表中數(shù)據(jù)表名稱標識的數(shù)據(jù)庫中的數(shù)據(jù)表進行監(jiān)控。
6、 一種分布式系統(tǒng)中緩存數(shù)據(jù)的同步配置裝置,其特征在于,包括 監(jiān)控模塊,用于對分布式系統(tǒng)的服務器上數(shù)據(jù)庫中包含緩存數(shù)據(jù)的數(shù)據(jù)表進行監(jiān)控;數(shù)據(jù)庫復制模塊,用于在數(shù)據(jù)庫中包含緩存數(shù)據(jù)的數(shù)據(jù)表中數(shù)據(jù)發(fā)生變 化時,將該數(shù)據(jù)發(fā)生變化的數(shù)據(jù)表的修改信息復制到所述分布式系統(tǒng)中的其 它服務器;第一更新模塊,用于根據(jù)所述監(jiān)控模塊的監(jiān)控結(jié)果,在數(shù)據(jù)庫中包含緩 存數(shù)據(jù)的數(shù)據(jù)表發(fā)生變化時,將緩存數(shù)據(jù)更新信息表中該教據(jù)表名稱對應的 最新修改時刻更新為數(shù)據(jù)發(fā)生變化的當前時刻,所述緩存數(shù)據(jù)更新信息表中 包括所述服務器上數(shù)據(jù)庫中包含緩存數(shù)據(jù)的數(shù)據(jù)表名稱、該數(shù)據(jù)表的最新修 改時刻與所述服務器的緩存中相應緩存數(shù)據(jù)的最后更新時刻;計時模塊,用于根據(jù)預設周期進行計時;查詢模塊,用于根據(jù)所述計時模塊的指示,在預設周期的開始時刻,查 詢所述緩存數(shù)據(jù)更新信息表;判斷模塊,用于根據(jù)所述查詢模塊的查詢結(jié)果,判斷對應于同一數(shù)據(jù)表 名稱的最新修改時刻是否晚于最后更新時刻;第二更新模塊,用于根據(jù)所述判斷模塊的判斷結(jié)果,在對應于同 一數(shù)據(jù) 表名稱的最新修改時刻晚于最后更新時刻時,根據(jù)數(shù)據(jù)庫中最新修改后的數(shù) 據(jù)表對相應緩存數(shù)據(jù)進行更新,并將緩存數(shù)據(jù)更新信息表中該數(shù)據(jù)表名稱對 應的最后更新時刻更新為最新修改時刻。
7、 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述服務器為所述分布式 系統(tǒng)中的主服務器,所述數(shù)據(jù)庫復制模塊用于在數(shù)據(jù)庫中包含緩存數(shù)據(jù)的數(shù) 據(jù)表中數(shù)據(jù)發(fā)生變化時,將數(shù)據(jù)發(fā)生變化的數(shù)據(jù)表的修改信息發(fā)布到所有子 服務器。
8、 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述服務器為所述分布式 系統(tǒng)中的子服務器,所述數(shù)據(jù)庫復制模塊用于在數(shù)據(jù)庫中包含緩存數(shù)據(jù)的數(shù) 據(jù)表中數(shù)據(jù)發(fā)生變化時,將數(shù)據(jù)發(fā)生變化的數(shù)據(jù)表的修改信息復制到所述主 服務器。
9、 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括 復制模塊,用于將所述主服務器接收到的數(shù)據(jù)表的修改信息發(fā)布到所有子服務器或所述子服務器以外的其它子服務器。
10、 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括 數(shù)據(jù)更新模塊,用于根據(jù)接收到的數(shù)據(jù)表的修改信息,對所述服務器上數(shù)據(jù)庫中的相應數(shù)據(jù)表進行更新。
11、 根據(jù)權(quán)利要求6至IO任意一項所述的裝置,其特征在于,所述緩存 數(shù)據(jù)更新信息表分別設置在作為所述緩存數(shù)據(jù)來源的數(shù)據(jù)庫中或該數(shù)據(jù)庫所 在的服務器中;所述監(jiān)控模塊、所述lt據(jù)庫復制模塊、所述第一更新模塊、所述計時模 塊、所述查詢模塊、所述判斷模塊、所述第二更新模塊與所述數(shù)據(jù)更新模塊 為多個,分別設置在作為所述緩存數(shù)據(jù)來源的數(shù)據(jù)庫中或該數(shù)據(jù)庫所在的服 務器中。
12、 根據(jù)權(quán)利要求IO所述的裝置,其特征在于,所述監(jiān)控模塊與所述第 一更新模塊一體設置,通過觸發(fā)器實現(xiàn),該觸發(fā)器設置于包含緩存數(shù)據(jù)的數(shù) 據(jù)表中。
13、 一種服務器,其特征在于,包括如權(quán)利要求6、 7、 8或10所述的分 布式系統(tǒng)中緩存數(shù)據(jù)的同步配置裝置。
14、 一種分布式系統(tǒng),包括主服務器與至少一個子服務器,其特征在于, 還包括如權(quán)利要求6至12任意一項所述的分布式系統(tǒng)中緩存數(shù)據(jù)的同步配置 裝置。
全文摘要
本發(fā)明公開了一種分布式系統(tǒng)中數(shù)據(jù)緩存的同步配置方法與裝置,其中,方法包括在服務器上包含緩存數(shù)據(jù)的數(shù)據(jù)表發(fā)生變化時,將該數(shù)據(jù)表的修改信息發(fā)布到各子服務器,并將該數(shù)據(jù)表的最新修改時刻更新為當前時刻,在預設周期開始時刻查詢緩存數(shù)據(jù)更新信息表,在同一數(shù)據(jù)表的最新修改時刻晚于最后更新時刻時,根據(jù)數(shù)據(jù)庫中最新修改后的數(shù)據(jù)表對相應緩存數(shù)據(jù)進行更新,并將緩存數(shù)據(jù)更新信息表中最后更新時刻更新為最新修改時刻;根據(jù)修改信息對各子服務器上數(shù)據(jù)庫中的數(shù)據(jù)表進行更新,并采用同樣方法對各子服務器上的緩存數(shù)據(jù)進行更新。本發(fā)明獨立于應用系統(tǒng)實現(xiàn)了對分布式系統(tǒng)中緩存數(shù)據(jù)的同步更新,實現(xiàn)簡單,不易出錯。
文檔編號G06F17/30GK101308513SQ20081012736
公開日2008年11月19日 申請日期2008年6月27日 優(yōu)先權(quán)日2008年6月27日
發(fā)明者俊 吳, 楊鑫偉 申請人:福建星網(wǎng)銳捷網(wǎng)絡有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
田阳县| 焦作市| 宜兰县| 八宿县| 渭源县| 磐石市| 德阳市| 元氏县| 团风县| 东乌珠穆沁旗| 乐陵市| 富民县| 荥经县| 都江堰市| 习水县| 乡城县| 平阴县| 西城区| 清丰县| 遂宁市| 屯门区| 顺平县| 铜鼓县| 嘉峪关市| 台安县| 如东县| 武城县| 龙川县| 信宜市| 盐源县| 东至县| 南木林县| 美姑县| 长海县| 响水县| 渝中区| 东宁县| 高邮市| 佛教| 星座| 临桂县|