優(yōu)化帶寬的方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計算機緩存技術(shù)領(lǐng)域,尤其是涉及一種優(yōu)化帶寬的方法及系統(tǒng)。
【背景技術(shù)】
[0002] 目前,許多分布式緩存在應(yīng)用服務(wù)器和分布式緩存集群之間交換數(shù)據(jù)緩存時對帶 寬要求很高,當(dāng)訪問量較大時,帶寬成為制約訪問數(shù)據(jù)速度的瓶頸。
[0003] 現(xiàn)有專利(【申請?zhí)枴?01310746988. 1)公開了一種分布式緩存的方法和系統(tǒng),該 方法包括:分布式緩存系統(tǒng)獲取業(yè)務(wù)應(yīng)用的數(shù)據(jù)操作請求,并根據(jù)該數(shù)據(jù)操作請求指示 操作數(shù)據(jù)的鍵值通過哈希運算得到對應(yīng)該數(shù)據(jù)的虛擬隊列vBucket的標(biāo)識信息;獲取該 vBucket標(biāo)識信息與緩存服務(wù)節(jié)點的對應(yīng)關(guān)系,并根據(jù)該對應(yīng)關(guān)系確定該vBucket標(biāo)識信 息對應(yīng)的第一緩存服務(wù)節(jié)點,將該數(shù)據(jù)操作請求分配到該第一緩存服務(wù)節(jié)點進行相應(yīng)的數(shù) 據(jù)操作。該專利對鍵值計算哈希后得到標(biāo)識信息,標(biāo)識信息用于對應(yīng)緩存服務(wù)節(jié)點,在更新 緩存記錄時,涉及數(shù)據(jù)量巨大。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明所要解決的技術(shù)問題是:在提高緩存數(shù)據(jù)量讀取的同時時,降低帶寬壓力。
[0005] 為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:提供一種優(yōu)化帶寬的方法,包 括如下步驟:
[0006] Sl :分別在緩存服務(wù)器及第一應(yīng)用服務(wù)器上存儲緩存記錄,并分別生成第一 HASH 散列及第二HASH散列;
[0007] S2 :第一應(yīng)用服務(wù)器發(fā)送所述第二HASH散列到緩存服務(wù)器中;
[0008] S3 :緩存服務(wù)器判斷所述第一 HASH散列與所述第二HASH散列是否一致;
[0009] S4 :若否,則第一應(yīng)用服務(wù)器根據(jù)所述第一 HASH散列,更新存儲在第一應(yīng)用服務(wù) 器上的緩存記錄。
[0010] 為解決上述問題,本發(fā)明還提供一種優(yōu)化帶寬的系統(tǒng),包括緩存服務(wù)器及第一應(yīng) 用服務(wù)器;并執(zhí)行上述步驟。
[0011] 本發(fā)明的有益效果在于:區(qū)別于現(xiàn)有技術(shù),本發(fā)明通過存儲緩存記錄,并分別生成 對應(yīng)的哈希散列,在讀取數(shù)據(jù)時,緩存服務(wù)器在比對兩個散列不一致后,進行增量更新以獲 取最終內(nèi)容。通過上述方式,本發(fā)明可實現(xiàn)在提高數(shù)據(jù)讀取的速度時,降低對帶寬的壓力。
【附圖說明】
[0012] 圖1為本發(fā)明方法實施例一的流程示意圖;
[0013] 圖2為本發(fā)明方法實施例二的流程示意圖;
[0014] 圖3為本發(fā)明系統(tǒng)實施例三的結(jié)構(gòu)框圖;
[0015] 圖4為本發(fā)明系統(tǒng)實施例四的結(jié)構(gòu)框圖。
【具體實施方式】
[0016] 為詳細(xì)說明本發(fā)明的技術(shù)內(nèi)容、所實現(xiàn)目的及效果,以下結(jié)合實施方式并配合附 圖予以說明。
[0017] 本發(fā)明最關(guān)鍵的構(gòu)思在于:通過緩存記錄分別生成對應(yīng)的哈希散列,在讀取數(shù)據(jù) 時,緩存服務(wù)器在比對兩個散列不一致后,進行增量更新以獲取最終內(nèi)容。
[0018] 請參照圖1,本發(fā)明實施例一提供一種優(yōu)化帶寬的方法,包括如下步驟:
[0019] Sl :分別在緩存服務(wù)器及第一應(yīng)用服務(wù)器上存儲緩存記錄,并分別生成第一 HASH 散列及第二HASH散列;
[0020] S2 :第一應(yīng)用服務(wù)器發(fā)送所述第二HASH散列到緩存服務(wù)器中;
[0021] S3 :緩存服務(wù)器判斷所述第一 HASH散列與所述第二HASH散列是否一致;
[0022] S4 :若否,則第一應(yīng)用服務(wù)器根據(jù)所述第一 HASH散列,更新存儲在第一應(yīng)用服務(wù) 器上的緩存記錄。
[0023] 區(qū)別于現(xiàn)有技術(shù),本發(fā)明實施例一通過存儲緩存記錄,并分別生成對應(yīng)的哈希散 列,在讀取數(shù)據(jù)時,緩存服務(wù)器在比對兩個散列不一致后,進行增量更新以獲取最終內(nèi)容。 通過上述方式,本發(fā)明可實現(xiàn)在提高數(shù)據(jù)讀取的速度時,降低對帶寬的壓力。
[0024] 如圖2所示,在實施例一的基礎(chǔ)上,本發(fā)明實施例二在步驟S3之后,還包括:
[0025] 若是,則執(zhí)行步驟S40 :緩存服務(wù)器返回通知第一應(yīng)用服務(wù)器使用存儲在第一應(yīng) 用服務(wù)器上的緩存記錄。
[0026] 其中,執(zhí)行步驟Sl時,具體為:
[0027] Sll :在緩存服務(wù)器內(nèi)存中存儲緩存記錄,并生成第一鍵值及第一 HASH散列;
[0028] S12 :第一應(yīng)用服務(wù)器通過所述第一鍵值從緩存服務(wù)器獲取緩存記錄,存儲在第一 應(yīng)用服務(wù)器內(nèi)存中,并生成第二鍵值及第二HASH散列。
[0029] 其中,在步驟S2之前,還包括:
[0030] S21 :第二應(yīng)用服務(wù)器修改所述緩存記錄,并訪問緩存服務(wù)器;
[0031] S22 :緩存服務(wù)器替換原緩存記錄為修改后的緩存記錄。
[0032] 在執(zhí)行步驟S4時,具體為:
[0033] S41 :緩存服務(wù)器根據(jù)修改前后的緩存記錄,采用Delta增量算法生成增量包,并 與第一 HASH散列同時存儲在緩存服務(wù)器內(nèi)存上;
[0034] S42 :緩存服務(wù)器發(fā)送所述增量包到第一應(yīng)用服務(wù)器上;
[0035] S43 :第一應(yīng)用服務(wù)器合并所述增量包到原緩存記錄中,以替換原緩存記錄;
[0036] 返回執(zhí)行步驟S40。
[0037] 區(qū)別于現(xiàn)有技術(shù),本發(fā)明實施例二通過存儲緩存記錄,并分別生成對應(yīng)的哈希散 列,在讀取數(shù)據(jù)時,緩存服務(wù)器在比對兩個散列不一致后,采用Delta增量算法生成增量 包,并發(fā)送給第一應(yīng)用服務(wù)器,因此本發(fā)明中僅僅涉及增量包的生成及更新,不是替換原來 的內(nèi)容。而發(fā)送全部內(nèi)容時,需要占用相當(dāng)大的帶寬資源,本發(fā)明僅僅是發(fā)送增量包,即可 實現(xiàn)更新的目的,同時在操作上對帶寬要求較低。通過上述方式,本發(fā)明可實現(xiàn)在提高數(shù)據(jù) 讀取的速度時,降低對帶寬的壓力。
[0038] 具體地,本發(fā)明所述的緩存服務(wù)器可以是分布式緩存服務(wù)器集群,其中每個緩存 服務(wù)器均可視為集群的節(jié)點。
[0039] 通常地,用戶訪問第一應(yīng)用服務(wù)器獲取數(shù)據(jù)時,第一應(yīng)用服務(wù)器從分布式緩存服 務(wù)器上通過鍵值獲取對應(yīng)的內(nèi)容,并將內(nèi)容的緩存記錄保存在應(yīng)用服務(wù)器內(nèi)存中。其中,鍵 值是通過一個不重復(fù)的字符串用于快速定位內(nèi)容所在位置。如表1所示,表1中第一列即 為鍵值,第二列即為鍵值的對應(yīng)內(nèi)容,即key_12的對應(yīng)內(nèi)容為abc。表1僅僅是本發(fā)明的實 施例的一個示例,本領(lǐng)域技術(shù)人員可以采用其他可實現(xiàn)上述作用的表,此處不再贅述。
[0040] 表1 :鍵值-內(nèi)容示意表。
[0041 ]
[0042] 當(dāng)用戶再次訪問相同的數(shù)據(jù)時,第一應(yīng)用服務(wù)器判斷鍵值在第一應(yīng)用服務(wù)器內(nèi)存 中是否已有緩存記錄,,若是,則將其內(nèi)容進行hash散列,將鍵值與散列發(fā)送到分布式緩存 服務(wù)器上。
[0043] 分布式緩存服務(wù)器接收到第一應(yīng)用服務(wù)器鍵值與hash散列后,獲取鍵值及其內(nèi) 容,生成緩存服務(wù)器的hash散列并進行比對,如果一致,則通知第一應(yīng)用服務(wù)器直接使用 存儲在第一應(yīng)用服務(wù)器上的緩存記錄。
[0044] 若存在不一致的情況下,如第二應(yīng)用服務(wù)器修改了緩存記錄,應(yīng)當(dāng)理解的是,此處 的修改為主動式地對存儲數(shù)據(jù)進行修改,在緩存服務(wù)器中的比對是判斷修改后的結(jié)果與原 來的鍵值及其對應(yīng)內(nèi)容是否一致。在判斷后,若不一致,則認(rèn)為原始的緩存記錄被第二應(yīng)用 服務(wù)器修改了。
[0045] 具體地,用戶訪問第二應(yīng)用服務(wù)器對數(shù)據(jù)進行修改,第二應(yīng)用服務(wù)器訪問分布式 緩存服務(wù)器修改對