亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于緩存數(shù)據(jù)的方法及裝置的制作方法

文檔序號(hào):6466018閱讀:207來源:國知局
專利名稱:用于緩存數(shù)據(jù)的方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及用于緩存數(shù)據(jù)的緩存方法和緩存裝置。
背景技術(shù)
近年來,WAN加速器(WAN高速設(shè)備)已成為通過使用相比于LAN (局 域網(wǎng)),諸如互聯(lián)網(wǎng),具有更窄頻帶和更大延遲的線路來訪問遠(yuǎn)距離存儲(chǔ)裝 置的己知設(shè)備。
WAN加速器在例如TCP/IP層或諸如NFS (網(wǎng)絡(luò)文件系統(tǒng))/CIFS (公共 互聯(lián)網(wǎng)文件系統(tǒng))/iSCSI (互聯(lián)網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口)的應(yīng)用層中執(zhí)行 延遲控制、傳送數(shù)據(jù)壓縮和緩存。
用于緩存的存儲(chǔ)器區(qū)域的大小受到限制,這并非是對(duì)于WAN加速器所 獨(dú)有的。在此,例如,假設(shè)在經(jīng)由例如互聯(lián)網(wǎng)與WAN加速器連接的存儲(chǔ)裝 置中的數(shù)據(jù)被緩存進(jìn)WAN加速器的情況。在這種情況下,用于緩存進(jìn)WAN 加速器的存儲(chǔ)器區(qū)域的大小通常小于該存儲(chǔ)裝置中存儲(chǔ)器區(qū)域的大小(例 如,磁盤巻)。
所以,考慮如何在有限的存儲(chǔ)器區(qū)域中有效地執(zhí)行緩存控制是重要的。 因此,正在考慮著重于時(shí)間局部性(locality)或空間局部性的諸如LRU
(最近最少使用)的緩存控制方法。
同時(shí),已公開了一種技術(shù)(下文中稱為現(xiàn)有技術(shù)),其在具有相同內(nèi)容
(下文中稱為相同數(shù)據(jù))但不同索引(例如,地址或文件名)的數(shù)據(jù)已經(jīng) 記錄(register)在緩存中的情況下,指向已緩存的相同數(shù)據(jù)而不是將該 數(shù)據(jù)緩存進(jìn)另一區(qū)域中(例如,參考VMware Inc.的Carl A. Waldspurger 的 "Memory Resource Management in VMware ESX Server " , USENIX OSDI, 02,(2002))。通過這種方式,共享相同數(shù)據(jù)(具有相同內(nèi)容的緩存 數(shù)據(jù))。通過以這種方式共享具有相同內(nèi)容的緩存數(shù)據(jù),可節(jié)省用于存儲(chǔ)緩 存數(shù)據(jù)的存儲(chǔ)器區(qū)域。
根據(jù)該現(xiàn)有技術(shù),為了確定數(shù)據(jù)的內(nèi)容是否相同,需要獲得該數(shù)據(jù)的 哈希值。利用該哈希值執(zhí)行高速搜索,并且隨后對(duì)該數(shù)據(jù)自身進(jìn)行比較。
通常,存儲(chǔ)用于數(shù)據(jù)的指針(換言之,存儲(chǔ)器地址)所需的存儲(chǔ)器區(qū) 域的大小明顯小于存儲(chǔ)數(shù)據(jù)所需的存儲(chǔ)器區(qū)域的大小。因此,通過使用上 述現(xiàn)有技術(shù),可增加將被緩存進(jìn)有限的存儲(chǔ)器區(qū)域中的數(shù)據(jù)的數(shù)量。
然而,在上述現(xiàn)有技術(shù)中,在例如當(dāng)用于緩存的存儲(chǔ)區(qū)域已經(jīng)用盡時(shí) 將較少需要的緩存數(shù)據(jù)無效的情況下,用于指向相同數(shù)據(jù)的索引的緩存數(shù) 據(jù)也將同時(shí)被無效。
此外,當(dāng)相同數(shù)據(jù)在被無效之后重新緩存時(shí),在無效之前指向該相同 數(shù)據(jù)的索引不能被重新記錄以重新指向該相同數(shù)據(jù)。
例如,假設(shè)當(dāng)相同數(shù)據(jù)在被無效一次之后進(jìn)行重新緩存的情況下,例 如,存在對(duì)于在無效之前指向該相同數(shù)據(jù)的索引的讀請(qǐng)求。在這種情況下, 由于該索引沒有指向重新緩存的相同數(shù)據(jù)(沒有重新記錄),盡管該相同數(shù) 據(jù)已被緩存,但仍必需從例如存儲(chǔ)裝置中獲得(讀取)該相同數(shù)據(jù)。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種緩存方法和緩存裝置,當(dāng)由多個(gè)索引所指 向的數(shù)據(jù)被無效之后進(jìn)行重新記錄時(shí),所述方法和裝置能夠使所述多個(gè)索 引指向該數(shù)據(jù)。
根據(jù)本發(fā)明的實(shí)施例,提供了 一種由包括用于緩存數(shù)據(jù)的緩存數(shù)據(jù)庫、 緩存數(shù)據(jù)表以及緩存索引表的緩存裝置所執(zhí)行的緩存方法。該方法包括 輸入數(shù)據(jù)以及指示該數(shù)據(jù)的索引;生成與所輸入的數(shù)據(jù)的內(nèi)容相對(duì)應(yīng)的標(biāo) 識(shí)符;確定在緩存存儲(chǔ)裝置中是否存在用于緩存所輸入的數(shù)據(jù)的空間區(qū)域; 在確定緩存存儲(chǔ)裝置中存在該空間區(qū)域的情況下,將該輸入數(shù)據(jù)緩存進(jìn)該 緩存存儲(chǔ)裝置;在緩存數(shù)據(jù)表中與緩存數(shù)據(jù)相關(guān)聯(lián)地記錄所生成的標(biāo)識(shí)符; 在緩存索引表中與所輸入的索引相關(guān)聯(lián)地記錄所生成的標(biāo)識(shí)符;在確定緩 存存儲(chǔ)裝置中不存在空間區(qū)域的情況下,獲取空間區(qū)域;將所輸入的數(shù)據(jù) 緩存進(jìn)所獲取的空間區(qū)域;以及將與緩存在所獲取的空間區(qū)域中的數(shù)據(jù)相 關(guān)聯(lián)地記錄在緩存數(shù)據(jù)表中的標(biāo)識(shí)符注銷。
本發(fā)明的附加目的和優(yōu)點(diǎn)將在以下的描述中闡明,從以下描述可以部
分地獲知或者通過實(shí)現(xiàn)本發(fā)明可以理解所述附加目的和優(yōu)點(diǎn)??赏ㄟ^下文 中具體指出的手段及組合來實(shí)現(xiàn)和獲得本發(fā)明的目的和優(yōu)點(diǎn)。


被包含進(jìn)說明書并構(gòu)成說明書一部分的附圖示出了本發(fā)明的實(shí)施例, 并且與上面給出的概括描述和以下給出的詳細(xì)描述一起用于描述本發(fā)明的 原理。
圖1為示出根據(jù)本發(fā)明實(shí)施例的中繼裝置的硬件配置的方框圖。
圖2為主要示出根據(jù)當(dāng)前實(shí)施例的中繼裝置30的功能性配置的方框圖。
圖3示出緩存數(shù)據(jù)表23的數(shù)據(jù)結(jié)構(gòu)的實(shí)例。
圖4示出緩存索引表24的數(shù)據(jù)結(jié)構(gòu)的實(shí)例。
圖5為描述緩存數(shù)據(jù)表23與緩存索引表24之間關(guān)系的示意圖。
圖6為示出在存在來自客戶端裝置40的讀請(qǐng)求的情況下,中繼裝置30 的緩存命中確定處理的處理過程的流程圖。
圖7為示出在將讀請(qǐng)求從客戶端裝置40發(fā)送給存儲(chǔ)裝置50的情況下, 處理流程的流程圖。
圖8為示出在將寫請(qǐng)求從客戶端裝置40發(fā)送給存儲(chǔ)裝置50的情況下, 處理流程的流程圖。圖9為示出在中繼裝置30中執(zhí)行的緩存記錄處理的處理過程的流程圖。
圖io為具體描述當(dāng)前實(shí)施例的操作的示意圖。
具體實(shí)施例方式
以下將參照附圖描述本發(fā)明的實(shí)施例。
圖1為示出根據(jù)當(dāng)前實(shí)施例的中繼裝置(緩存設(shè)備)的硬件配置的方 框圖。如圖1所示,計(jì)算機(jī)10與例如硬盤驅(qū)動(dòng)器(HDD)的外部存儲(chǔ)器裝 置20連接。該外部存儲(chǔ)器裝置20儲(chǔ)存由計(jì)算機(jī)10執(zhí)行的程序21。該中繼 裝置30包括計(jì)算機(jī)10和外部存儲(chǔ)器裝置20。
圖2為主要示出根據(jù)當(dāng)前實(shí)施例的中繼裝置30的功能性配置的方框
圖。該中繼裝置30連接到客戶端裝置(傳送目的地裝置)40和存儲(chǔ)裝置(傳 送源裝置)50,從而中繼裝置30可與客戶端裝置40和存儲(chǔ)裝置50進(jìn)行通 信。例如,通過iSCSI (互聯(lián)網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口)在中繼裝置30與客 戶端裝置40之間進(jìn)行通信。在中繼裝置30與存儲(chǔ)裝置50之間進(jìn)行相同的 通信。
客戶端裝置40是訪問例如存儲(chǔ)裝置50的裝置。此外,該客戶端裝置 40作為iSCSI (SCSI)中的發(fā)起方。
存儲(chǔ)裝置50設(shè)置有磁盤巻以存儲(chǔ)各種數(shù)據(jù)。存儲(chǔ)裝置50為客戶端裝 置40提供了對(duì)于存儲(chǔ)裝置50的磁盤巻的訪問。存儲(chǔ)裝置50作為iSCSI (SCSI)中的目標(biāo)方。
中繼裝置30在例如客戶端裝置40和存儲(chǔ)裝置50之間中繼通信。例如, 中繼裝置30將從存儲(chǔ)裝置50發(fā)送的數(shù)據(jù)(塊巻)傳送到客戶端裝置40。 中繼裝置30具有緩存該被傳送的數(shù)據(jù)的功能。通過緩存該被傳送的數(shù)據(jù), 可提高客戶端裝置40與存儲(chǔ)裝置50之間的數(shù)據(jù)傳輸效率。
客戶端裝置40通過指定中繼裝置30的客戶端裝置40側(cè)的接口來嘗試 連接到存儲(chǔ)裝置50。已接受該嘗試后,中繼裝置30從存儲(chǔ)裝置50側(cè)的接 口連接到存儲(chǔ)裝置50。通過這種方式,在客戶端裝置40與存儲(chǔ)裝置50之 間建立連接。
此外,客戶端裝置40側(cè)/存儲(chǔ)裝置50側(cè)的接口在物理上可為一個(gè)接口 。 例如,對(duì)于iSCSI,如果TCP/IP的IP地址或端口號(hào)能標(biāo)識(shí)出客戶端裝置 40側(cè)/存儲(chǔ)裝置50側(cè)的接口是不同接口,則就完全可以將它們?cè)谖锢砩蠈?shí) 現(xiàn)為一個(gè)接口。
中繼裝置30包括中繼單元31、緩存管理單元32以及標(biāo)識(shí)符生成單元 33。在當(dāng)前實(shí)施例中,中繼單元31、緩存管理單元32以及標(biāo)識(shí)符生成單元 33由圖1所示的計(jì)算機(jī)10來實(shí)現(xiàn),其中該計(jì)算機(jī)10執(zhí)行存儲(chǔ)在外部存儲(chǔ) 器裝置20中的程序21??赏ㄟ^預(yù)先存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上來分發(fā)該 程序21。此外,可經(jīng)由例如網(wǎng)絡(luò)將該程序21下載到計(jì)算機(jī)10中。
中繼裝置30還包括緩存數(shù)據(jù)庫22、緩存數(shù)據(jù)表23和緩存索引表24。 在當(dāng)前實(shí)施例中,緩存數(shù)據(jù)庫22、緩存數(shù)據(jù)表23和緩存索引表24存儲(chǔ)在 外部存儲(chǔ)器裝置20中。
中繼裝置30在例如客戶端裝置40與存儲(chǔ)裝置50之間中繼iSCSI-PDU。 如果該iSCSI-PDU涉及數(shù)據(jù)傳送(READ&SCSIDATAIN/WRITE&DATAOUT (讀 &SCSI數(shù)據(jù)輸入/寫&數(shù)據(jù)輸出)),則經(jīng)由緩存管理單元32執(zhí)行對(duì)緩存的訪 問。同時(shí),如果該iSCSI-PDU未涉及數(shù)據(jù)傳送,則通過中繼單元31直接將 PDU傳送到其目的地。
這里,例如假設(shè)客戶端裝置40從存儲(chǔ)裝置50處讀取數(shù)據(jù)的情況。在 這種情況下,客戶端裝置40將讀請(qǐng)求發(fā)送給中繼裝置30。該讀請(qǐng)求包括例 如指示將成為讀取目標(biāo)的數(shù)據(jù)的索引。該索引包括例如將成為讀取目標(biāo)的 數(shù)據(jù)的文件名或存儲(chǔ)在存儲(chǔ)裝置50中的數(shù)據(jù)的地址等。中繼單元31輸入 由客戶端裝置40發(fā)送的讀請(qǐng)求。中繼單元31將該輸入的讀請(qǐng)求傳送到存 儲(chǔ)裝置50。中繼單元31輸入根據(jù)所傳送的讀請(qǐng)求而從存儲(chǔ)裝置50讀取的 數(shù)據(jù)(由包括在讀請(qǐng)求中的索引所指示的數(shù)據(jù))。
同時(shí),例如假設(shè)客戶端裝置40將數(shù)據(jù)寫入存儲(chǔ)裝置50的情況。在該 情況下,客戶端裝置40將寫請(qǐng)求發(fā)送給中繼裝置30。該寫請(qǐng)求包括例如將 成為寫目標(biāo)的數(shù)據(jù)以及指示該數(shù)據(jù)的索引。該索引包括例如將成為寫目標(biāo) 的數(shù)據(jù)的文件名或存儲(chǔ)裝置50中將寫入該數(shù)據(jù)的地址等。中繼單元31輸 入由客戶端裝置40發(fā)送的寫請(qǐng)求。中繼單元31將所輸入的寫請(qǐng)求傳送到 存儲(chǔ)裝置50。
緩存管理單元32對(duì)于例如將成為讀取目標(biāo)的數(shù)據(jù)或者將成為寫入目標(biāo) 的數(shù)據(jù)(下文中稱為目標(biāo)數(shù)據(jù))執(zhí)行緩存控制。緩存管理單元32確定緩存 數(shù)據(jù)庫22中是否具有緩存該目標(biāo)數(shù)據(jù)的空間區(qū)域。在具有緩存該目標(biāo)數(shù)據(jù) 的空間區(qū)域的情況下,緩存管理單元32通過將該目標(biāo)數(shù)據(jù)存儲(chǔ)在緩存數(shù)據(jù) 庫22的該空間區(qū)域中來緩存該目標(biāo)數(shù)據(jù)。此外,在沒有緩存該目標(biāo)數(shù)據(jù)的 空間區(qū)域的情況下,緩存管理單元32通過例如刪除存儲(chǔ)在緩存數(shù)據(jù)庫22 中的數(shù)據(jù)(緩存數(shù)據(jù))來獲取(secure)空間區(qū)域。
緩存管理單元32將與目標(biāo)數(shù)據(jù)的內(nèi)容相對(duì)應(yīng)的標(biāo)識(shí)符與該目標(biāo)數(shù)據(jù)相 關(guān)聯(lián),并且將其記錄在緩存數(shù)據(jù)表23中。此外,緩存管理單元32將與該 目標(biāo)數(shù)據(jù)的內(nèi)容相對(duì)應(yīng)的標(biāo)識(shí)符與指示該目標(biāo)數(shù)據(jù)的索引相關(guān)聯(lián),并且將 其記錄在緩存索引表24中。
在例如存在來自客戶端裝置40的讀請(qǐng)求的情況下,緩存管理單元32 稂據(jù)包括在該讀請(qǐng)求中的索引確定是否存在緩存命中。在緩存命中的情況
下,存儲(chǔ)在緩存數(shù)據(jù)庫22中的數(shù)據(jù)經(jīng)由中繼單元31而被發(fā)送到客戶端裝 置40。同時(shí),在緩存未命中的情況下,該讀請(qǐng)求被傳送給存儲(chǔ)裝置50,并 且從存儲(chǔ)裝置50中讀取由該讀請(qǐng)求指定的數(shù)據(jù)。
此外,在從緩存數(shù)據(jù)庫22中刪除了緩存數(shù)據(jù)(以獲取空間區(qū)域)的情 況下,緩存管理單元32刪除與該數(shù)據(jù)相關(guān)聯(lián)并記錄在緩存數(shù)據(jù)表23中的 標(biāo)識(shí)符,以便注銷(unregister)該標(biāo)識(shí)符。
標(biāo)識(shí)符生成單元33接收例如來自緩存管理單元32的目標(biāo)數(shù)據(jù)。標(biāo)識(shí) 符生成單元33生成與例如所接收的目標(biāo)數(shù)據(jù)的內(nèi)容相對(duì)應(yīng)的標(biāo)識(shí)符。當(dāng)執(zhí) 行該操作時(shí),標(biāo)識(shí)符生成單元33使用預(yù)定的哈希函數(shù),諸如MD5或SHA1, 以生成標(biāo)識(shí)符。換言之,標(biāo)識(shí)符生成單元33生成哈希值以作為標(biāo)識(shí)符。
將與目標(biāo)數(shù)據(jù)的內(nèi)容相對(duì)應(yīng)的哈希值(標(biāo)識(shí)符)與存儲(chǔ)(緩存)在緩 存數(shù)據(jù)庫22中的目標(biāo)數(shù)據(jù)(緩存數(shù)據(jù))相關(guān)聯(lián),并且保持(記錄)在緩存 數(shù)據(jù)表23中。
將與由讀請(qǐng)求或?qū)懻?qǐng)求指定的目標(biāo)數(shù)據(jù)的內(nèi)容相對(duì)應(yīng)的哈希值與包括 在上述讀請(qǐng)求或?qū)懻?qǐng)求中的索引相關(guān)聯(lián),并且保持(記錄)在緩存索引表 24中。此外,在以下描述中,索引是例如在其中讀取或?qū)懭肽繕?biāo)數(shù)據(jù)的磁 盤巻的序列號(hào)和邏輯塊地址(LBA)的組合。序列號(hào)是標(biāo)識(shí)存儲(chǔ)裝置50中 的磁盤巻的號(hào)碼。可以通過將例如CDB (指令描述符塊)查詢從中繼裝置 30發(fā)送到存儲(chǔ)裝置50來獲得序列號(hào)。此外,存在多種方法來實(shí)現(xiàn)上述過程, 諸如在iSCSI的情況下,可使用一對(duì)iSCSI-InitiatorName (iSCSI-發(fā)起方 名稱)和LUN作為序列號(hào)。
緩存索引表24被制備用于存儲(chǔ)裝置50上存在的所有磁盤巻中的每一 個(gè)。換言之,存在與存儲(chǔ)裝置50中的每個(gè)磁盤巻相對(duì)應(yīng)的緩存索引表24。 此外,在例如存儲(chǔ)裝置50中形成新的磁盤巻的情況下,形成與該磁盤巻相 對(duì)應(yīng)的緩存索引表24。例如,在未生成由索引(序列號(hào)和LBA)指示的數(shù) 據(jù)的哈希值的情況下,將例如指示無效的哈希值(例如,值全部為O)與該 索引相關(guān)聯(lián),并且記錄在緩存索引表24中。
記錄在緩存索引表24中的哈希值是例如LBA的多個(gè)扇區(qū)單元(512字 節(jié)的倍數(shù))中的數(shù)據(jù)的哈希值。為了方便起見,以下將以一個(gè)扇區(qū)單元(512
字節(jié))進(jìn)行描述。
圖3示出緩存數(shù)據(jù)表23的數(shù)據(jù)結(jié)構(gòu)的實(shí)例。如圖3所示,在緩存數(shù)據(jù) 表23中,緩存數(shù)據(jù)(存儲(chǔ)目的地地址)和標(biāo)識(shí)符已被關(guān)聯(lián)并記錄。這里, 緩存數(shù)據(jù)的地址是緩存數(shù)據(jù)被存儲(chǔ)在緩存數(shù)據(jù)庫22中的地址,并且例如是 以8字節(jié)描述的。此外,標(biāo)識(shí)符是通過使用預(yù)定的哈希函數(shù)(例如,SHA1) 根據(jù)關(guān)聯(lián)數(shù)據(jù)的內(nèi)容而生成的哈希值。此外,例如,該哈希值是以20字節(jié) 描述的。
在圖 3 所示的實(shí)例中, 哈希值 "0x5C3EB80066420002BC3DCC7CA4AB6EFAD7ED4AE5" (20字節(jié))與緩存數(shù)據(jù) 的地址"0xl5A0001000020000" (8字節(jié))相關(guān)聯(lián)并且被記錄。哈希值 "0xF28E8BDB1F95033D31D332AD1C192E5263687F27 " 與數(shù)據(jù)地址 "0xl5A0001000020200 "相關(guān)聯(lián)并且被記錄。此外,哈希值 "0xB376885AC8452B6CBF9CED81B1080BFD570D9B91 " 與數(shù)據(jù)地址 "0xl 5A0001000020400 "相關(guān)聯(lián)并且被記錄。
圖4示出緩存索引表24的數(shù)據(jù)結(jié)構(gòu)的實(shí)例。如圖4所示,磁盤巻的序 列號(hào)、LBA和標(biāo)識(shí)符被記錄在緩存索引表24中。在該緩存索引表24中,將 磁盤巻的序列號(hào)與LBA的組合提供作為索引。此外,對(duì)于每個(gè)磁盤巻(磁 盤巻的序列號(hào))都存在一個(gè)緩存索引表24。
如圖4所示,在緩存索引表24中,與序列號(hào)所標(biāo)識(shí)的磁盤巻中的每個(gè) LBA相關(guān)聯(lián)地記錄標(biāo)識(shí)符。
這里,例如,磁盤巻的序列號(hào)以10字節(jié)來描述。此外,LBA以4字節(jié) 來描述。標(biāo)識(shí)符是通過使用預(yù)定的哈希函數(shù)(例如,SHA1),根據(jù)磁盤巻的 序列號(hào)和LBA所指示數(shù)據(jù)(存儲(chǔ)在LBA中)的內(nèi)容所生成的哈希值。該哈 希值以例如20字節(jié)來描述。
圖4示出與序列號(hào)"0xF4BMCDDD8FA4ACBF834"所標(biāo)識(shí)的磁盤巻相對(duì) 應(yīng)的緩存索引表24。在圖4所示的實(shí)例中,哈希值 "0x5C3EB80066420002BC3DCC7CA4AB6EFAD7ED4AE5" (20字節(jié))與LBA "0x00000000 " (4字節(jié))相關(guān)聯(lián)并且被記錄。哈希值 "0xF28E8BDB1F95033D31D332AD1C192E5263687F27"與LBA "0x00000001" 相關(guān)聯(lián)并且被記錄。
哈希 值
"0xB376885AC8452B6CBF9CED81B1080BFD570D9B91"與LBA "0x00000003"
相 關(guān) 聯(lián) 并 且 被 記 錄 。
哈 希 值 "0x5C3EB80066420002BC3DCC7CA4AB6EFAD7ED4AE5"與LBA "0x00000007" 相關(guān)聯(lián)并且被記錄。
現(xiàn)在,將參照?qǐng)D5描述緩存數(shù)據(jù)表23與緩存索引表24之間的關(guān)系。 此外,與上述圖3和圖4不同,在圖5中,為了方便起見,簡(jiǎn)化并描述保 持(記錄)在緩存數(shù)據(jù)表23和緩存索引表24中的磁盤巻的序列號(hào)(磁盤 巻序列號(hào))、LBA、標(biāo)識(shí)符(哈希值)以及數(shù)據(jù)地址。
如圖5所示,針對(duì)存儲(chǔ)裝置50上存在的所有磁盤巻中的每一個(gè)制備緩 存索引表24-1到24-3。換言之,存在與存儲(chǔ)裝置50上的每個(gè)磁盤巻相對(duì) 應(yīng)的緩存索引表24-1到24-3。
圖5描述了與存儲(chǔ)裝置50中由磁盤巻序列號(hào)"1"標(biāo)識(shí)的磁盤巻相對(duì) 應(yīng)的緩存索引表24-l。緩存索引表24-i (i=l, 2,…)對(duì)應(yīng)于存儲(chǔ)裝置50 中由磁盤巻序列號(hào)"i"標(biāo)識(shí)的磁盤巻。
在該緩存索引表24-1中,標(biāo)識(shí)符"哈希值1"與LBA "1"相關(guān)聯(lián)并被 記錄。此外,標(biāo)識(shí)符"哈希值2"與LBA "2"相關(guān)聯(lián),標(biāo)識(shí)符"哈希值3" 與LBA "3"相關(guān)聯(lián),以及標(biāo)識(shí)符"哈希值1"與LBA "4"相關(guān)聯(lián),并且這 些標(biāo)識(shí)符被記錄。換言之,存儲(chǔ)在LBA"1"中的數(shù)據(jù)與存儲(chǔ)在LBA"4"中 的數(shù)據(jù)是相同數(shù)據(jù)。即,LBA "1"和LBA "4"處于指向相同數(shù)據(jù)的狀態(tài)。
同時(shí),在緩存數(shù)據(jù)表23中,"地址1"與標(biāo)識(shí)符"哈希值1"相關(guān)聯(lián)并 且作為緩存數(shù)據(jù)地址而被記錄。此夕卜,"地址2"與標(biāo)識(shí)符"哈希值2"相 關(guān)聯(lián),以及"地址3"與標(biāo)識(shí)符"哈希值3"相關(guān)聯(lián),并且地址2和地址3 作為緩存數(shù)據(jù)地址而被記錄。
此外,在緩存數(shù)據(jù)庫22的"地址1"中,存儲(chǔ)了數(shù)據(jù)A。在緩存數(shù)據(jù) 庫22的"地址2"中,存儲(chǔ)了數(shù)據(jù)B。在緩存數(shù)據(jù)庫22的"地址3"中, 存儲(chǔ)了數(shù)據(jù)C。
數(shù)據(jù)A是緩存在緩存數(shù)據(jù)庫22的"地址1"中的數(shù)據(jù),并且是(等同 于)在存儲(chǔ)裝置50的磁盤巻序列號(hào)"1"的LBA "1"和LBA "4"中存儲(chǔ)的 數(shù)據(jù)。
數(shù)據(jù)B是緩存在緩存數(shù)據(jù)庫22的"地址2"中的數(shù)據(jù),并且是(等同于)在存儲(chǔ)裝置50的磁盤巻序列號(hào)"1"的LBA "2"中存儲(chǔ)的數(shù)據(jù)。
數(shù)據(jù)C是緩存在緩存數(shù)據(jù)庫22的"地址3"中的數(shù)據(jù),并且是(等同 于)在存儲(chǔ)裝置50的磁盤巻序列號(hào)"1"的LBA "3"中存儲(chǔ)的數(shù)據(jù)。
如上所述,緩存數(shù)據(jù)表23和緩存索引表24-1通過標(biāo)識(shí)符(哈希值) 進(jìn)行關(guān)聯(lián)。因此,在存在例如從客戶端裝置40發(fā)送到存儲(chǔ)裝置50的讀請(qǐng) 求的情況下,中繼裝置30可根據(jù)包括在讀請(qǐng)求中的索引(磁盤巻序列號(hào)和 LBA)來標(biāo)識(shí)存儲(chǔ)在緩存數(shù)據(jù)庫22中的緩存數(shù)據(jù)。
現(xiàn)在,將參照?qǐng)D6的流程圖描述在存在例如來自客戶端裝置40的讀請(qǐng) 求的情況下,由中繼裝置30執(zhí)行的緩存命中確定處理的處理過程。由客戶 端裝置40發(fā)送的讀請(qǐng)求包括索引,該索引指示由該讀請(qǐng)求指定的數(shù)據(jù)(以 成為讀取目標(biāo))。該索引包括磁盤巻序列號(hào)以及該磁盤巻中的LBA,其中該 磁盤巻序列號(hào)標(biāo)識(shí)了存儲(chǔ)裝置50中存儲(chǔ)由讀請(qǐng)求指定的數(shù)據(jù)的磁盤巻。
首先,中繼裝置30中的中繼單元31輸入(接收)由客戶端裝置40發(fā) 送的讀請(qǐng)求。中繼單元31將所輸入的讀請(qǐng)求傳遞到緩存管理單元32。
隨后,緩存管理單元32標(biāo)識(shí)緩存索引表24-i (步驟S1),該緩存索引 表對(duì)應(yīng)于由磁盤巻序列號(hào)(磁盤巻序列號(hào)標(biāo)識(shí)的磁盤巻,該磁盤巻 序列號(hào)被包括在由中繼單元31傳遞的讀請(qǐng)求中。
在所標(biāo)識(shí)的緩存索引表24-i中,緩存管理單元32標(biāo)識(shí)與包括在讀請(qǐng) 求中的LBA相關(guān)聯(lián)地記錄的哈希值。緩存管理單元32確定所標(biāo)識(shí)的哈希值 是否有效(步驟S2)。
在例如如上所述沒有生成由讀請(qǐng)求指定的數(shù)據(jù)的哈希值的情況下,與 存儲(chǔ)了該數(shù)據(jù)的LBA相關(guān)聯(lián)地記錄指示無效的哈希值(例如,值全部為0)。
艮P,在所標(biāo)識(shí)的哈希值不是指示無效的哈希值的情況下,緩存管理單 元32確定該哈希值有效。
在所標(biāo)識(shí)的哈希值被確定為有效的情況下(步驟S2中為是),緩存管 理單元32獲得該哈希值(步驟S3)。
緩存管理單元32確定所獲得的哈希值是否存在于緩存數(shù)據(jù)表23中(步 驟S4)。
在所獲得的哈希值被確定為存在于緩存數(shù)據(jù)表23中的情況下(步驟S4 中為是),緩存管理單元32標(biāo)識(shí)在緩存數(shù)據(jù)表23中與哈希值相關(guān)聯(lián)地記錄
的緩存數(shù)據(jù)的地址(步驟S5)。
緩存管理單元32參照緩存數(shù)據(jù)庫22,獲得存儲(chǔ)(緩存)在所標(biāo)識(shí)地址 中的數(shù)據(jù)(緩存數(shù)據(jù))。緩存管理單元32將所獲得的數(shù)據(jù)經(jīng)由中繼單元31 輸出(發(fā)送)到客戶端裝置40 (步驟S6)。
例如,在如上所述將讀請(qǐng)求從客戶端裝置40發(fā)送到存儲(chǔ)裝置50的情 況下,執(zhí)行確定由讀請(qǐng)求指定的數(shù)據(jù)是否被緩存在緩存數(shù)據(jù)庫22中的處理 (緩存命中確定)。
同時(shí),在步驟S2中將所標(biāo)識(shí)的哈希值確定為無效的情況下,由讀請(qǐng)求 指定的數(shù)據(jù)被認(rèn)為未緩存,即緩存未命中,并且結(jié)束該處理。
此外,在步驟S4中將所獲得的哈希值確定為不存在于緩存數(shù)據(jù)表23 中的情況下,認(rèn)為緩存未命中,并且結(jié)束該處理。
現(xiàn)在,將在下面描述在中繼裝置30的緩存數(shù)據(jù)庫22中記錄數(shù)據(jù)(即, 緩存數(shù)據(jù))的處理過程。根據(jù)例如從客戶端裝置40發(fā)送到存儲(chǔ)裝置50的 請(qǐng)求是讀請(qǐng)求還是寫請(qǐng)求,在緩存數(shù)據(jù)庫22中執(zhí)行數(shù)據(jù)記錄處理(下文中 稱為緩存記錄處理)的時(shí)序會(huì)有所不同。
在此,將參照?qǐng)D7的流程圖來描述在例如將讀請(qǐng)求從客戶端裝置40發(fā) 送到存儲(chǔ)裝置50的情況下的處理流程。
首先,客戶端裝置40將讀請(qǐng)求發(fā)送到中繼裝置30 (步驟Sll)。
由客戶端裝置40發(fā)送的讀請(qǐng)求被輸入到中繼裝置30。在此,中繼裝置 30執(zhí)行上述圖6所示的緩存命中確定處理(步驟S12)。
在此,假設(shè)由中繼裝置30執(zhí)行的緩存命中確定處理確定了緩存未命中 的情況。在這種情況下,中繼裝置30將讀請(qǐng)求傳送到存儲(chǔ)裝置50 (步驟 S13)。在確定為緩存命中的情況下,中繼裝置30將緩存數(shù)據(jù)傳送到客戶端 裝置40,并且結(jié)束該處理。
在存儲(chǔ)裝置50中,讀取由中繼裝置30傳送的讀請(qǐng)求所指定的數(shù)據(jù)(讀 數(shù)據(jù))(步驟S14)。存儲(chǔ)裝置50將該讀數(shù)據(jù)發(fā)送到中繼裝置30。
中繼裝置30將由存儲(chǔ)裝置50發(fā)送的數(shù)據(jù)傳送到客戶端裝置40 (步驟 S15)。
中繼裝置30對(duì)由存儲(chǔ)裝置50發(fā)送的數(shù)據(jù)執(zhí)行緩存記錄處理(下文中 稱為第一緩存記錄處理)(步驟S16)。 現(xiàn)在,將參照?qǐng)D8的流程圖,描述在例如將寫請(qǐng)求從客戶端裝置40發(fā) 送到存儲(chǔ)裝置50的情況下的處理流程。寫請(qǐng)求包括由該寫請(qǐng)求指定的數(shù)據(jù) (寫數(shù)據(jù))以及指示該數(shù)據(jù)的索引。該索引包括標(biāo)識(shí)存儲(chǔ)裝置50中例如將 寫入該寫數(shù)據(jù)的磁盤巻的磁盤巻序列號(hào)以及該磁盤巻的LBA。
首先,客戶端裝置40將寫請(qǐng)求發(fā)送到中繼裝置30 (步驟S21)。
由客戶端裝置40發(fā)送的寫請(qǐng)求被輸入到中繼裝置30。中繼裝置30將 所輸入的寫請(qǐng)求傳送到存儲(chǔ)裝置50 (步驟S22)。當(dāng)寫請(qǐng)求被中繼裝置30 傳送時(shí),存儲(chǔ)裝置50根據(jù)該寫請(qǐng)求執(zhí)行數(shù)據(jù)的寫處理。
同時(shí),在中繼裝置30中,對(duì)由客戶端裝置40發(fā)送的寫請(qǐng)求所指定的 數(shù)據(jù)(寫數(shù)據(jù))執(zhí)行緩存記錄處理(下文中稱為第二緩存記錄處理)(步驟 S23)。
在此,將參照?qǐng)D9的流程圖描述圖7中示出的步驟16以及圖8中示出 的步驟S23的緩存記錄處理的處理過程。
如上所述,根據(jù)由客戶端裝置40發(fā)送的請(qǐng)求的類型(讀請(qǐng)求或?qū)懻?qǐng)求), 執(zhí)行緩存記錄處理的時(shí)序會(huì)有所不同。然而,當(dāng)中繼裝置30 (的中繼單元 31)輸入磁盤巻序列號(hào)、LBA和數(shù)據(jù)(讀數(shù)據(jù)或?qū)憯?shù)據(jù))時(shí),執(zhí)行上述第一 緩存記錄處理和第二緩存記錄處理。從而,在第一緩存記錄處理和第二緩 存記錄處理中執(zhí)行的處理被認(rèn)為是相同的。因此,該處理將被認(rèn)為是相同 的并描述如下。
磁盤巻序列號(hào)和LBA是包括在例如讀請(qǐng)求或?qū)懻?qǐng)求中的索引。此外, 由中繼裝置30輸入的數(shù)據(jù)將被描述為目標(biāo)數(shù)據(jù)。
中繼單元31將所輸入的磁盤巻序列號(hào)、LBA以及目標(biāo)數(shù)據(jù)傳遞到緩存 管理單元32。緩存管理單元32將所接收的目標(biāo)數(shù)據(jù)發(fā)送到標(biāo)識(shí)符生成單元 33。
標(biāo)識(shí)符生成單元33生成與由緩存管理單元33發(fā)送的目標(biāo)數(shù)據(jù)的內(nèi)容 相對(duì)應(yīng)的標(biāo)識(shí)符。此時(shí),標(biāo)識(shí)符生成單元33生成作為該標(biāo)識(shí)符的哈希值。 通過使用例如預(yù)定的哈希函數(shù),如SHA1,來生成該哈希值。
緩存管理單元32獲得由標(biāo)識(shí)符生成單元33生成的哈希值(步驟S31)。 緩存管理單元32確定所獲得的哈希值是否存在于緩存數(shù)據(jù)表23中(步 驟S32)。
在所獲得的哈希值被確定為沒有存在于緩存數(shù)據(jù)表23中的情況下(步 驟S32中為否),緩存管理單元32確定在例如緩存數(shù)據(jù)庫22中是否存在存 儲(chǔ)(緩存)該目標(biāo)數(shù)據(jù)的空間區(qū)域,即,緩存數(shù)據(jù)庫22的存儲(chǔ)區(qū)域是否用 盡(步驟S33)。
在確定沒有用于緩存的空間區(qū)域的情況下(步驟S33中為否),緩存管 理單元32在緩存數(shù)據(jù)庫22中獲取用于緩存目標(biāo)數(shù)據(jù)的空間區(qū)域。此時(shí), 例如,緩存管理單元32從緩存數(shù)據(jù)庫22中清除緩存在緩存數(shù)據(jù)庫22的緩 存數(shù)據(jù)中最不必要的數(shù)據(jù)。在此,在考慮例如時(shí)間/空間局部性的情況下來 辨別該最不必要的數(shù)據(jù)。例如,可應(yīng)用LRU (最近最少使用)。
此外,緩存管理單元32從緩存數(shù)據(jù)表23中刪除存儲(chǔ)在所獲取的區(qū)域 中的緩存數(shù)據(jù)的地址以及與該緩存數(shù)據(jù)的內(nèi)容相對(duì)應(yīng)的標(biāo)識(shí)符(哈希值), 并且在該緩存數(shù)據(jù)表23中注銷該標(biāo)識(shí)符。
在獲取緩存數(shù)據(jù)庫22中用于緩存目標(biāo)數(shù)據(jù)的空間區(qū)域之后,緩存管理 單元32將目標(biāo)數(shù)據(jù)緩存在緩存數(shù)據(jù)庫22中所獲取的區(qū)域內(nèi)(步驟S35)。 此外,緩存管理單元32將存儲(chǔ)所緩存的目標(biāo)數(shù)據(jù)的地址以及對(duì)應(yīng)于目標(biāo)數(shù) 據(jù)內(nèi)容的標(biāo)識(shí)符(條目)添加(記錄)到緩存數(shù)據(jù)表23中(步驟S35)。此 外,對(duì)應(yīng)于目標(biāo)數(shù)據(jù)內(nèi)容的標(biāo)識(shí)符是在上述步驟S31中生成的哈希值。
緩存管理單元32隨后標(biāo)識(shí)緩存索引表24-i,該緩存索引表對(duì)應(yīng)于由中 繼單元31傳遞的磁盤巻序列號(hào)(磁盤巻序列號(hào)所標(biāo)識(shí)的磁盤巻。在 所標(biāo)識(shí)的緩存索引表24-i中,緩存管理單元32將與由中繼單元31傳遞的 LBA相關(guān)聯(lián)的哈希值重寫為在上述步驟S31中獲得的哈希值(步驟S36)。
同時(shí),當(dāng)在步驟S32中獲得的哈希值被確定為存在于緩存數(shù)據(jù)表23中 的情況下,緩存管理單元32標(biāo)識(shí)在緩存數(shù)據(jù)表23中與所獲得的哈希值相 關(guān)聯(lián)地記錄的地址。緩存管理單元32確定存儲(chǔ)在緩存數(shù)據(jù)庫22中所標(biāo)識(shí) 地址處的數(shù)據(jù)(緩存數(shù)據(jù))是否與目標(biāo)數(shù)據(jù)相同(步驟S37)。
在確定存儲(chǔ)在緩存數(shù)據(jù)庫22中所標(biāo)識(shí)地址處的數(shù)據(jù)與目標(biāo)數(shù)據(jù)相同的 情況下(步驟S37中為是),執(zhí)行步驟S36的處理。
同時(shí),當(dāng)在步驟S37中確定存儲(chǔ)在緩存數(shù)據(jù)庫22中所標(biāo)識(shí)地址處的數(shù) 據(jù)與目標(biāo)數(shù)據(jù)不相同的情況下,由于相同哈希值對(duì)應(yīng)于多個(gè)數(shù)據(jù),所以檢 測(cè)出哈希沖突。例如,在檢測(cè)出哈希沖突的情況下,結(jié)束對(duì)該目標(biāo)數(shù)據(jù)的
緩存記錄處理。換言之,不緩存該目標(biāo)數(shù)據(jù)。
另外,也可進(jìn)行配置,使得在檢測(cè)出哈希沖突時(shí),接著使用與此前用 于生成該哈希值的哈希函數(shù)不同的哈希函數(shù)來生成哈希值。也可以生成不 同于該哈希值的標(biāo)識(shí)符,并且將該不同的標(biāo)識(shí)符作為第二標(biāo)識(shí)符。通過這 種方式,例如,可在避免哈希沖突的情況下執(zhí)行緩存記錄處理。
另外,在上述緩存記錄處理中,在例如從客戶端裝置40發(fā)送到存儲(chǔ)裝 置50的請(qǐng)求是寫請(qǐng)求的情況下,當(dāng)該寫請(qǐng)求針對(duì)已被緩存的緩存數(shù)據(jù)時(shí), 將該數(shù)據(jù)更新為該寫數(shù)據(jù)。當(dāng)寫請(qǐng)求針對(duì)未被緩存的數(shù)據(jù)時(shí),緩存該寫數(shù) 據(jù)。然而,也可進(jìn)行配置,使得在例如存在針對(duì)未被緩存的數(shù)據(jù)的寫請(qǐng)求 時(shí),不緩存該數(shù)據(jù),而是使標(biāo)識(shí)符(哈希值)無效,其中該標(biāo)識(shí)符與包括 在寫請(qǐng)求中的磁盤巻序列號(hào)以及LBA相關(guān)聯(lián)地記錄在緩存索引表24中。在 這種情況下,當(dāng)例如從存儲(chǔ)裝置50中讀出由該寫請(qǐng)求指定的寫數(shù)據(jù)時(shí),將 該寫數(shù)據(jù)緩存在中繼裝置30中。
現(xiàn)在,將參照?qǐng)D10詳細(xì)描述當(dāng)前實(shí)施例的操作。如圖10所示,首先, 哈希值1與索引1相關(guān)聯(lián)并被記錄在緩存索引表24a中。類似地,假設(shè)哈 希值2與索引2相關(guān)聯(lián),哈希值3與索引3相關(guān)聯(lián),以及哈希值1與索引4 相關(guān)聯(lián),并且這些哈希值被記錄。同時(shí),地址1與哈希值1相關(guān)聯(lián)并被記 錄在緩存數(shù)據(jù)表23a中。類似地,假設(shè)地址2與哈希值2相關(guān)聯(lián),以及地 址3與哈希值3相關(guān)聯(lián),并且地址2和地址3被記錄。此外,例如假設(shè)將 存儲(chǔ)(記錄)在緩存數(shù)據(jù)庫22中的地址1處的數(shù)據(jù)稱為數(shù)據(jù)A。
換言之,存儲(chǔ)在緩存數(shù)據(jù)庫22中的地址1處的數(shù)據(jù)A是由記錄在緩存 索引表24a中的索引1和4指示的數(shù)據(jù)。
在此,假設(shè)一種情況,其中,例如當(dāng)緩存數(shù)據(jù)庫22的存儲(chǔ)區(qū)域已用盡 時(shí),例如將存儲(chǔ)數(shù)據(jù)A的區(qū)域(由地址l指示的區(qū)域)獲取作為空間區(qū)域。 在這種情況下,記錄在緩存數(shù)據(jù)表23a中的哈希值1和地址1被從緩存數(shù) 據(jù)表23a中清除,并變?yōu)樽N。因此,如圖10所示,緩存數(shù)據(jù)表23a被更 新為緩存數(shù)據(jù)表23b。
通過這種方式,由上述索引l和4指示的數(shù)據(jù)(數(shù)據(jù)A)變?yōu)槲淳彺妗?br> 同時(shí),即使在記錄在緩存數(shù)據(jù)表23a中的哈希值1和地址1變?yōu)樽N 的情況下,記錄在緩存索引表24a中的索引和哈希值也不變?yōu)樽N。從而,
緩存索引表24a變成(與緩存索引表24a相同的)緩存索引表24b。
在此,假設(shè)例如由客戶端裝置40發(fā)送包括索引1的讀請(qǐng)求的情況。此 外,由索引1指示的數(shù)據(jù)是數(shù)據(jù)A。在這種情況下,通過例如上述的緩存記 錄處理來將數(shù)據(jù)A緩存到緩存數(shù)據(jù)庫22中。此時(shí),數(shù)據(jù)A被認(rèn)為緩存在緩 存數(shù)據(jù)庫22中的地址1處。
在這種情況下,使對(duì)應(yīng)于數(shù)據(jù)A的內(nèi)容的哈希值1與數(shù)據(jù)A的地址1 相關(guān)聯(lián),并記錄在緩存數(shù)據(jù)表23b中。換言之,如圖10所示,緩存數(shù)據(jù)表 23a變成緩存數(shù)據(jù)表23c。
通過這種方式,盡管由索引1和4指示的數(shù)據(jù)A未在上述階段的緩存 數(shù)據(jù)表23b中進(jìn)行緩存,但是例如當(dāng)根據(jù)包括索引1的讀請(qǐng)求重新緩存數(shù) 據(jù)A時(shí),數(shù)據(jù)A也可對(duì)應(yīng)于索引4而被緩存。
因此,在例如存在包括索引4的讀請(qǐng)求的情況下,即使未執(zhí)行對(duì)于索 引4的緩存記錄處理,也可以確定緩存命中并且快速地傳送數(shù)據(jù)。
如上所述,通過管理緩存數(shù)據(jù)表23和緩存索引表24,當(dāng)由多個(gè)索引所 指向的緩存數(shù)據(jù)在被無效之后重新進(jìn)行緩存時(shí),本實(shí)施例可使所述多個(gè)索 引指向重新緩存的數(shù)據(jù)。
換言之,即使在從緩存數(shù)據(jù)表23中注銷數(shù)據(jù)的標(biāo)識(shí)符(哈希值)和地 址的情況下,緩存索引表中的條目(哈希值)也不會(huì)被注銷。因此,例如 當(dāng)已從緩存數(shù)據(jù)表23中注銷的條目被重新記錄到該緩存中時(shí),指向該條目 的所有緩存索引表24的條目變?yōu)橛行?。因此,可以減小在由多個(gè)索引所指 向的緩存數(shù)據(jù)被無效的情況下,由緩存未命中所造成的負(fù)面影響。因此, 可以有效地傳送數(shù)據(jù)。
此外,在上述實(shí)施例中,描述了存儲(chǔ)在存儲(chǔ)裝置50的磁盤巻上的數(shù)據(jù) (塊巻)被緩存到中繼裝置30中。然而,關(guān)于上述實(shí)施例的緩存方法也可 采用當(dāng)前實(shí)施例中所描述緩存之外的通用緩存。也可以進(jìn)行細(xì)致地配置, 使得例如將緩存數(shù)據(jù)庫22、緩存數(shù)據(jù)表23以及緩存索引表24存儲(chǔ)在例如 計(jì)算機(jī)10的存儲(chǔ)器中。
此外,本發(fā)明就其整體而言不限于上述實(shí)施例。在實(shí)施階段,可通過 在本發(fā)明概述范圍中修改組件來實(shí)現(xiàn)本發(fā)明。此外,可以采用上述實(shí)施例 中公開的多個(gè)組件的任意組合來形成各種發(fā)明。例如,可以從實(shí)施例中指
示的全部組件中刪除一些組件。
本領(lǐng)域技術(shù)人員將能夠容易地獲知附加的優(yōu)點(diǎn)和修改。因此,本發(fā)明 就其更廣泛方面而言不限于在此示出和描述的具體細(xì)節(jié)和典型實(shí)施例。因 此,在不偏離由所附權(quán)利要求及其等同物限定的一般發(fā)明概念的精神或范 圍的情況下,可作出各種修改。
權(quán)利要求
1、一種由緩存設(shè)備執(zhí)行的緩存方法,該緩存設(shè)備包括用于在存儲(chǔ)裝置中緩存數(shù)據(jù)的緩存數(shù)據(jù)庫、緩存數(shù)據(jù)表和緩存索引表,所述方法的特征在于,包括輸入存儲(chǔ)在所述存儲(chǔ)裝置中的數(shù)據(jù)以及指示所述數(shù)據(jù)的索引;生成與所輸入的數(shù)據(jù)的內(nèi)容相對(duì)應(yīng)的標(biāo)識(shí)符;確定所述緩存數(shù)據(jù)庫中是否存在緩存所輸入的數(shù)據(jù)的空間區(qū)域;當(dāng)確定在所述緩存數(shù)據(jù)庫中存在所述空間區(qū)域時(shí),將所輸入的數(shù)據(jù)緩存進(jìn)所述緩存數(shù)據(jù)庫;將所生成的標(biāo)識(shí)符與所緩存的數(shù)據(jù)相關(guān)聯(lián)地記錄在所述緩存數(shù)據(jù)表中;將所生成的標(biāo)識(shí)符與所輸入的索引相關(guān)聯(lián)地記錄在所述緩存索引表中;當(dāng)確定所述緩存數(shù)據(jù)庫中不存在空間區(qū)域時(shí),在所述緩存數(shù)據(jù)庫中獲取空間區(qū)域;將所輸入的數(shù)據(jù)緩存進(jìn)所獲取的空間區(qū)域;以及將記錄在所述緩存數(shù)據(jù)表中的所述標(biāo)識(shí)符注銷,所述標(biāo)識(shí)符與在所獲取的空間區(qū)域中緩存的所輸入的數(shù)據(jù)相關(guān)聯(lián)。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括輸入用于請(qǐng)求從所述存儲(chǔ)裝置讀取數(shù)據(jù)的讀請(qǐng)求,該請(qǐng)求包括索弓I , 該索引指示被請(qǐng)求從所述存儲(chǔ)裝置讀取的數(shù)據(jù);標(biāo)識(shí)與包括在所輸入的讀請(qǐng)求中的所述索引相關(guān)聯(lián)地記錄在所述緩存 索引表中的標(biāo)識(shí)符;確定在所述緩存數(shù)據(jù)庫中是否存在與所述緩存數(shù)據(jù)表中所標(biāo)識(shí)的標(biāo)識(shí) 符相關(guān)聯(lián)的數(shù)據(jù);以及在確定存在所述數(shù)據(jù)的情況下,將所述數(shù)據(jù)輸出到讀請(qǐng)求方。
3、 根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括 確定所生成的標(biāo)識(shí)符是否記錄在所述緩存數(shù)據(jù)表中;其中,在確定是否存在所述空間區(qū)域的步驟中,在所生成的標(biāo)識(shí)符被確定為未記錄在所述緩存數(shù)據(jù)表中的情況下,確定在所述緩存數(shù)據(jù)庫中是否存在所述空間區(qū)域。
4、 根據(jù)權(quán)利要求l所述的方法,其特征在于,還包括 在所輸入的數(shù)據(jù)是將被寫到所述存儲(chǔ)裝置上的寫數(shù)據(jù)的情況下,獲得與指示所述數(shù)據(jù)的索引相關(guān)聯(lián)地記錄在所述緩存索引表中的標(biāo)識(shí)符;參照所述緩存數(shù)據(jù)表,確定是否存在與所獲得的標(biāo)識(shí)符相關(guān)聯(lián)的數(shù)據(jù);以及在確定存在所述數(shù)據(jù)的情況下,將存儲(chǔ)在所述緩存數(shù)據(jù)庫中的所述數(shù) 據(jù)更新為所述寫數(shù)據(jù)。
5、 根據(jù)權(quán)利要求4所述的方法,其特征在于,還包括 在確定是否存在所述數(shù)據(jù)的步驟中,在確定不存在所述數(shù)據(jù)的情況下,使得與指示所述數(shù)據(jù)的索引相關(guān)聯(lián)地記錄在所述緩存索引表中的所述標(biāo)識(shí) 符無效。
6、 根據(jù)權(quán)利要求1所述的方法,其特征在于,在生成所述標(biāo)識(shí)符的步 驟中,使用預(yù)定的哈希函數(shù)生成哈希值,以作為與所述數(shù)據(jù)的內(nèi)容相對(duì)應(yīng) 的標(biāo)識(shí)符。
7、 根據(jù)權(quán)利要求6所述的方法,其特征在于,還包括 確定所生成的哈希值是否記錄在所述緩存數(shù)據(jù)表中; 在確定所述哈希值記錄在所述緩存數(shù)據(jù)表中的情況下,確定與所生成的哈希值相關(guān)聯(lián)的數(shù)據(jù)是否與所輸入的數(shù)據(jù)相同;以及在上述步驟確定為不相同的情況下,檢測(cè)哈希沖突,其中 在緩存步驟中,在檢測(cè)出所述哈希沖突的情況下,不將所輸入的數(shù)據(jù)緩存進(jìn)所述緩存數(shù)據(jù)庫。
8、 根據(jù)權(quán)利要求7所述的方法,其特征在于,還包括 在檢測(cè)出所述哈希沖突的情況下,使用另一哈希函數(shù)生成哈希值。
9、 根據(jù)權(quán)利要求7所述的方法,其特征在于,還包括-在檢測(cè)出所述哈希沖突的情況下,生成不同于所述哈希值的標(biāo)識(shí)符。
10、 根據(jù)權(quán)利要求1所述的方法,其特征在于, 所輸入的數(shù)據(jù)是從所述存儲(chǔ)裝置傳送到所述客戶端裝置的傳送數(shù)據(jù),其中所述存儲(chǔ)裝置和所述客戶端裝置是獨(dú)立于所述緩存設(shè)備提供的。
11、 根據(jù)權(quán)利要求10所述的方法,其特征在于, 所輸入的數(shù)據(jù)是在所述存儲(chǔ)裝置中提供的磁盤巻內(nèi)存儲(chǔ)的塊巻,以及 所述索引包括標(biāo)識(shí)所述磁盤巻的標(biāo)識(shí)號(hào)碼以及存儲(chǔ)所述塊巻的邏輯塊地址。
12、 一種緩存設(shè)備,其特征在于,包括緩存數(shù)據(jù)庫,用于緩存數(shù)據(jù); 輸入單元,用于輸入數(shù)據(jù)和指示該數(shù)據(jù)的索引; 標(biāo)識(shí)符生成單元,用于生成與所輸入的數(shù)據(jù)的內(nèi)容相對(duì)應(yīng)的標(biāo)識(shí)符; 確定單元,用于確定在所述緩存數(shù)據(jù)庫中是否存在緩存所輸入的數(shù)據(jù) 的空間區(qū)域;緩存數(shù)據(jù)庫,在確定存在所述空間區(qū)域的情況下,將所輸入的數(shù)據(jù)緩 存進(jìn)所述緩存數(shù)據(jù)庫;緩存數(shù)據(jù)表,將所生成的標(biāo)識(shí)符與緩存在所述緩存數(shù)據(jù)庫中的所述數(shù) 據(jù)相關(guān)聯(lián)地記錄在所述緩存數(shù)據(jù)表中;緩存索引表,將所生成的標(biāo)識(shí)符與所輸入的索引相關(guān)聯(lián)地記錄在所述 緩存索引表中;獲取單元,用于在確定所述緩存數(shù)據(jù)庫中不存在空間區(qū)域的情況下, 在所述緩存數(shù)據(jù)庫中獲取空間區(qū)域;緩存管理單元,用于將所輸入的數(shù)據(jù)緩存進(jìn)所獲取的空間區(qū)域中;以及注銷單元,用于將與緩存在所獲取的區(qū)域中的數(shù)據(jù)相關(guān)聯(lián)地記錄在所 述緩存數(shù)據(jù)表中的標(biāo)識(shí)符注銷。
全文摘要
本發(fā)明提供了用于緩存數(shù)據(jù)的方法及裝置。在該裝置中,中繼單元(31)輸入數(shù)據(jù)和索引。緩存管理單元(32)確定是否存在用于緩存數(shù)據(jù)的空間區(qū)域。在存在空間區(qū)域的情況下,緩存管理單元(32)緩存數(shù)據(jù)。標(biāo)識(shí)符生成單元(33)生成與所緩存的數(shù)據(jù)的內(nèi)容相對(duì)應(yīng)的標(biāo)識(shí)符。在緩存數(shù)據(jù)表(23)中與該數(shù)據(jù)相關(guān)聯(lián)地記錄標(biāo)識(shí)符。在緩存索引表(24)中與索引相關(guān)聯(lián)地記錄標(biāo)識(shí)符。在不存在空間區(qū)域的情況下,緩存管理單元(32)獲取空間區(qū)域。緩存管理單元(32)將與緩存在所獲取區(qū)域中的數(shù)據(jù)相關(guān)聯(lián)的標(biāo)識(shí)符注銷。
文檔編號(hào)G06F17/30GK101350030SQ200810137750
公開日2009年1月21日 申請(qǐng)日期2008年7月18日 優(yōu)先權(quán)日2007年7月20日
發(fā)明者小原誠 申請(qǐng)人:株式會(huì)社東芝;東芝解決方案株式會(huì)社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1