新四季網

一種數據緩存系統和數據查詢方法

2023-07-02 22:13:36

>v_subscriber〈/machine〉同時,配置文件中還定義有元數據表的創建方法。對於配置為需要初始加載到緩存表中的數據記錄,配置文件中除了定義索引區和數據區的創建方法之外,還可定義在數據緩存系統啟動後從資料庫伺服器中對應表中讀取表記錄作為數據記錄並為其生成索引以構成索引表,然後加載到數據區和索引區中。加載操作可以為同步或異步方式,取決於各數據表的具體配置。如上文所述,通過設置元數據表、索引表和數據表等表單,可實現對數據記錄的優化管理。如上文所述,每一緩存伺服器(例如但不限於緩存伺服器106110)與資料庫伺服器112通信連接。接收查詢請求的緩存伺服器用於在未找到對應的索引時,從資料庫伺服器112獲取查詢請求所請求查詢的數據記錄並為其生成對應的索引,然後將獲取的數據記錄和生成的索引分別添加到索引表和數據區中,再通過緩存代理104返回該數據記錄。此外,緩存代理104用於在判定散列計算結果指向的緩存伺服器不可用時,基於查詢請求向其他緩存伺服器中與該不可用緩存伺服器相配對的緩存伺服器發出搜索請求;與不可用緩存伺服器相配對的緩存伺服器的共享內存中存儲有該不可用緩存伺服器的緩存表的副本;接收該搜索請求的緩存伺服器用於提取搜索請求中包含的搜索欄位和搜索關鍵字,首先依據該搜索欄位在共享內存中存儲的所述副本的索引區中查找對應的索引表,然後依據搜索關鍵字在該索引表中查找對應的索引,最後依據該索引在所述副本的數據區中查找對應的數據記錄,然後通過緩存代理返回找到的數據記錄。如此不難看出,本發明提供的技術方案提供了熱備份機制,從而有效提高數據緩存系統的可靠性。在具體實現過程中,對於每一緩存伺服器,可在其配置文件中指定與其配對的緩存伺服器。10在具體實現過程中,緩存伺服器在進行數據更新時(插入、修改或刪除)的備份過程如下對於事務的首次請求,緩存代理104在收到客戶端102發出的數據更新請求(事務首次請求)後,對該更新請求進行散列計算,以選定對應緩存伺服器的連接實例,在該連接實例上選取一個連接進行數據更新操作;數據更新完畢後,若本連接實例配置了備份連接實例(即該緩存伺服器配置有配對的緩存伺服器),則在上述連接對應的操作歷史鍊表上緩存本次數據更新請求,向客戶端返回本次操作結果,同時返回本次操作的連接ID;事務的中間請求,緩存代理104接收客戶端102發出的數據更新請求(事務中間請求),其中包含上次操作的連接ID。緩存代理104對該更新請求進行散列計算,以選定對應緩存伺服器的連接實例,然後在連接實例上由上述連接ID所指向的連接進行數據更新操。數據更新完畢後,若本連接實例配置了備份連接實例,則在連接上的操作歷史鍊表上緩存本次數據更新請求,向客戶端返回本次操作結果。對於事務的結束請求,緩存代理104接收客戶端102發出的數據更新請求(事務結束請求,為提交或回滾),其中包含上次操作的連接ID。緩存代理104對該更新請求進行散列計算,以選定對應緩存伺服器的連接實例,然後在連接實例上由上述連接ID所指向的連接進行數據提交或回滾操作,然後向客戶端返回本次操作結果。若本連接實例配置了備份連接實例,且本次操作為回滾操作,則刪除本連接的操作歷史鍊表上緩存的所有數據更新請求;若本連接實例配置了備份連接實例,且本次為提交操作,則按緩存時間順序從本連接的操作歷史鍊表提取數據更新請求,並插入到本連接實例的備份請求緩存隊列。本連接實例的備份線程從備份請求緩存隊列中讀取本事務的所有數據更新請求,向本連接實例的備份實例發起數據更新請求。從以上的備份策略可以看出,針對數據更新請求的備份,緩存代理104採用了「先行緩存,集中提交」的策略,對於回滾的請求直接丟棄,不會產生備份操作;同時對於提交的請求,在備份上採用異步方式,性能上與不採用備份策略相比,只有極小的性能損失。在本發明提供的技術方案中,每一緩存伺服器用於基於LRU方式或者TIMEOUT方式對自身緩存表進行數據置換操作。每一緩存伺服器所進行的進行數據置換操作可以是LRU數據清理或者TimeOut過期數據清理。每一緩存伺服器為LRU策略和TimeOut策略分別維護一個雙向鍊表,鍊表各節點數據成員指針指向緩存表中數據區中數據記錄的存儲地址。LRU換頁策略根據緩存表中數據區中各數據記錄的訪問時間順序,將所有數據記錄串成鍊表,最新訪問過的數據記錄挪到鍊表頭部。緩存伺服器為配置了LRU換頁策略的緩存表啟動LRU清理線程。該線程周期性掃描緩存表,在緩存表對共享內存的使用率到達預先設置的上限時,該線程從鍊表隊尾向隊首方向掃描預設數量的數據記錄進行清理,並清理這些數據記錄的索引。TimeOut換頁策略根據緩存表中數據區中各數據記錄的插入順序,將所有數據記錄串成鍊表,新插入的數據記錄位於鍊表隊尾。同時,鍊表節點上記錄了對應數據記錄的超時時間。緩存伺服器為配置了TimeOut換頁策略的緩存表啟動TimeOut清理線程,該線程周期性遍歷鍊表,本次遍歷預設數量的數據記錄,將本次遍歷到的各數據記錄的超時時刻與系統當前時刻進行比較,若超時時刻超過系統當前時刻,則清理該數據記錄及相應的索引記錄。數據請求線程會記憶每次遍歷的位置,下次掃描周期到,線程會從上次遍歷的位置後面繼續掃描。掃描到隊尾後,從隊首重新開始掃描。本發明還提供了一種數據查詢方法,下面就結合圖3對其進行詳細描述。圖3是依據本發明一較佳實施例的數據查詢方法300的流程圖。如圖3所示,方法300開始於步驟302。隨後,在下一步驟304,緩存代理接收查詢請求並基於該查詢請求進行散列計算,然後將該查詢請求發往散列計算結果指向的緩存伺服器。隨後,在下一步驟306,接收所述查詢請求的緩存伺服器提取所述查詢請求中包含的搜索欄位和搜索關鍵字。隨後,在下一步驟308,依據該搜索欄位在共享內存中存儲的緩存表的索引區中查找對應的索引表。隨後,在下一步驟310,依據搜索關鍵字在該索引表中查找對應的索引。隨後,在下一步驟312,依據該索引在緩存表的數據區中查找對應的數據記錄。隨後,在下一步驟314,通過緩存代理返回找到的數據記錄。最後,方法300結束於步驟316。在上述方法300中,步驟304可歸納為轉發步驟,步驟306314可歸納為查找步驟。在具體實現過程中,查找步驟還包括接收查詢請求的緩存伺服器在未找到所述索引時,從資料庫伺服器獲取所述查詢請求所對應的請求查詢的數據記錄並為其生成對應的索引,然後將獲取的數據記錄和生成的索引分別添加到所述索引表和數據區中,再通過所述緩存代理返回該數據記錄。在具體實現過程中,轉發步驟還包括,所述緩存代理在判定所述散列計算結果指向的緩存伺服器不可用時,基於所述查詢請求向所述至少一個緩存伺服器中與該不可用緩存伺服器相配對的緩存伺服器發出搜索請求,其中,與所述不可用緩存伺服器相配對的緩存伺服器的共享內存中存儲有該不可用緩存伺服器的緩存表的副本;在這種情況下,查找步驟還包括,接收該搜索請求的緩存伺服器提取所述搜索請求中包含的搜索欄位和搜索關鍵字,首先依據該搜索欄位在共享內存中存儲的所述副本的索引區中查找對應的索引表,然後依據搜索關鍵字在該索引表中查找對應的索引,最後依據該索引在所述副本的數據區中查找對應的數據記錄,然後通過緩存代理返回找到的數據記錄。在具體實現過程中,方法300還包括初始化步驟,包括每一緩存伺服器在啟動時讀取存儲的XML格式的配置文件,並依據該配置文件生成所述緩存表。在具體實現過程中,方法300還包括更新步驟,包括每一緩存伺服器基於LRU方式或者TIMEOUT方式對自身緩存表進行數據置換操作。以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明的保護範圍之內。權利要求1.一種數據緩存系統,其特徵在於,包括緩存代理和與緩存代理通信連接的至少一個緩存伺服器;所述緩存代理用於接收查詢請求並基於該查詢請求進行散列計算,然後將該查詢請求發往散列計算結果指向的緩存伺服器;接收所述查詢請求的緩存伺服器用於提取所述查詢請求中包含的搜索欄位和搜索關鍵字,首先依據該搜索欄位在共享內存中存儲的緩存表的索引區中查找對應的索引表,然後依據搜索關鍵字在該索引表中查找對應的索引,再依據該索引在緩存表的數據區中查找對應的數據記錄,然後通過緩存代理返回找到的數據記錄。2.根據權利要求1所述的數據緩存系統,其特徵在於,每一緩存伺服器與資料庫伺服器通信連接,接收所述查詢請求的緩存伺服器用於在未找到所述索引時,從資料庫伺服器獲取所述查詢請求所對應的請求查詢的數據記錄並為其生成對應的索引,然後將獲取的數據記錄和生成的索引分別添加到所述索引表和數據區中,再通過所述緩存代理返回該數據記錄。3.根據權利要求1所述的數據緩存系統,其特徵在於,所述緩存代理用於在判定所述散列計算結果指向的緩存伺服器不可用時,基於所述查詢請求向所述至少一個緩存伺服器中與該不可用緩存伺服器相配對的緩存伺服器發出搜索請求;與所述不可用緩存伺服器相配對的緩存伺服器的共享內存中存儲有該不可用緩存伺服器的緩存表的副本;接收該搜索請求的緩存伺服器用於提取所述搜索請求中包含的搜索欄位和搜索關鍵字,首先依據該搜索欄位在共享內存中存儲的所述副本的索引區中查找對應的索引表,然後依據搜索關鍵字在該索引表中查找對應的索引,最後依據該索引在所述副本的數據區中查找對應的數據記錄,然後通過緩存代理返回找到的數據記錄。4.根據權利要求3所述的數據緩存系統,其特徵在於,每一緩存伺服器用於在啟動時讀取存儲的XML格式的配置文件,並依據該配置文件生成所述緩存表。5.根據權利要求4所述的數據緩存系統,其特徵在於,每一緩存伺服器用於基於LRU方式或者TIMEOUT方式對自身緩存表進行數據置換操作。6.一種數據查詢方法,其特徵在於,包括轉發步驟,包括緩存代理接收查詢請求並基於該查詢請求進行散列計算,然後將該查詢請求發往散列計算結果指向的緩存伺服器;查找步驟,包括接收所述查詢請求的緩存伺服器提取所述查詢請求中包含的搜索欄位和搜索關鍵字,首先依據該搜索欄位在共享內存中存儲的緩存表的索引區中查找對應的索引表,然後依據搜索關鍵字在該索引表中查找對應的索引,再依據該索引在緩存表的數據區中查找對應的數據記錄,然後通過緩存代理返回找到的數據記錄。7.根據權利要求6所述的數據查詢方法,其特徵在於,所述查找步驟還包括接收所述查詢請求的緩存伺服器在未找到所述索引時,從資料庫伺服器獲取所述查詢請求所對應的請求查詢的數據記錄並為其生成對應的索引,然後將獲取的數據記錄和生成的索引分別添加到所述索引表和數據區中,再通過所述緩存代理返回該數據記錄。8.根據權利要求7所述的數據查詢方法,其特徵在於,所述轉發步驟還包括,所述緩存代理在判定所述散列計算結果指向的緩存伺服器不可用時,基於所述查詢請求向所述至少一個緩存伺服器中與該不可用緩存伺服器相配對的緩存伺服器發出搜索請求,其中,與所述不可用緩存伺服器相配對的緩存伺服器的共享內存中存儲有該不可用緩存伺服器的緩存表的副本;所述查找步驟還包括,接收該搜索請求的緩存伺服器提取所述搜索請求中包含的搜索欄位和搜索關鍵字,首先依據該搜索欄位在共享內存中存儲的所述副本的索引區中查找對應的索引表,然後依據搜索關鍵字在該索引表中查找對應的索引,最後依據該索引在所述副本的數據區中查找對應的數據記錄,然後通過緩存代理返回找到的數據記錄。9.根據權利要求8所述的數據查詢方法,其特徵在於,所述方法還包括初始化步驟,包括每一緩存伺服器在啟動時讀取存儲的XML格式的配置文件,並依據該配置文件生成所述緩存表。10.根據權利要求9所述的數據查詢方法,其特徵在於,所述方法還包括更新步驟,包括每一緩存伺服器基於LRU方式或者TIMEOUT方式對自身緩存表進行數據置換操作。全文摘要本發明涉及緩存技術,針對現有Memcached系統不支持多索引等缺陷,提供一種數據緩存系統和數據查詢方法。數據緩存系統包括緩存代理和與緩存代理通信連接的至少一個緩存伺服器;緩存代理用於接收查詢請求並基於該查詢請求進行散列計算,將該查詢請求發往對應的緩存伺服器;緩存伺服器用於提取查詢請求中包含的搜索欄位和搜索關鍵字,依據該搜索欄位在共享內存中存儲的緩存表的索引區中查找對應的索引表,依據搜索關鍵字在該索引表中查找對應索引,依據該索引在緩存表的數據區中查找對應的數據記錄,通過緩存代理返回找到的數據記錄。本發明還提供了一種數據查詢方法。本發明提供的技術方案有助於提高數據緩存系統整體的可靠性和安全性。文檔編號H04L29/08GK102117309SQ20101004271公開日2011年7月6日申請日期2010年1月6日優先權日2010年1月6日發明者劉志堯,呂秋明,廖炳才,張宗元,李升林,林偉軍,柳江,樊小彬,王迎峰,肖偉,鄧明,鄧福喜,顏小剛申請人:卓望數碼技術(深圳)有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀