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

關(guān)于利用原子性更新的中央高速緩沖存儲器的方法和系統(tǒng)的制作方法

文檔序號:6381668閱讀:195來源:國知局
專利名稱:關(guān)于利用原子性更新的中央高速緩沖存儲器的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明通常涉及計(jì)算機(jī)記憶存儲技術(shù),更具體地說,涉及高速緩沖存儲器。
背景技術(shù)
要創(chuàng)建或訪問計(jì)算機(jī)應(yīng)用程序所需要的某些數(shù)據(jù),其費(fèi)用昂貴。這些費(fèi)用可以包括計(jì)算資源,用于計(jì)算在網(wǎng)絡(luò)上訪問該數(shù)據(jù)的數(shù)據(jù)費(fèi)用和輸送費(fèi)用(包括帶寬和時(shí)間)。一旦在花費(fèi)資源來創(chuàng)建或訪問這些數(shù)據(jù)之后,計(jì)算設(shè)備就經(jīng)常會將該數(shù)據(jù)存儲在“高速緩沖”存儲器中。然后,如果該計(jì)算設(shè)備再次需要該數(shù)據(jù),則可以廉價(jià)地從該高速緩沖存儲器中存取這些數(shù)據(jù)。
該高速緩沖存儲器對于該原始應(yīng)用程序或原始計(jì)算設(shè)備而言可以是本地的,也可以在幾個(gè)應(yīng)用程序和設(shè)備之中共享該高速緩沖存儲器。后一種類型的高速緩沖存儲器經(jīng)常被稱作“中央”高速緩沖存儲器。在一些環(huán)境中,每個(gè)應(yīng)用程序支持供其自己使用的本地高速緩沖存儲器,同時(shí)與其他應(yīng)用程序共享中央高速緩沖存儲器。對該中央高速緩沖存儲器進(jìn)行優(yōu)化,用于存儲對一個(gè)以上的應(yīng)用程序有用的數(shù)據(jù);同時(shí),這些本地高速緩沖存儲器可以為對于每個(gè)應(yīng)用程序而言是特定的那些數(shù)據(jù)提供超高速緩存的各種好處。
在中央高速緩沖存儲器中管理數(shù)據(jù)很少是簡單明了的。嘗試從該中央高速緩沖存儲器中讀取數(shù)據(jù)的多個(gè)應(yīng)用程序很少會引起難題,但當(dāng)至少一個(gè)應(yīng)用程序希望將數(shù)據(jù)加入該高速緩沖存儲器時(shí),就不可以這樣說了。如果在一個(gè)應(yīng)用程序正對該中央高速緩沖存儲器進(jìn)行寫入的同時(shí),允許其他應(yīng)用程序從該高速緩沖存儲器進(jìn)行讀取,那么,這些閱讀器會獲得過時(shí)或甚至是曲解的數(shù)據(jù)。當(dāng)一個(gè)以上的應(yīng)用程序希望將數(shù)據(jù)加入該高速緩沖存儲器時(shí),這種存取協(xié)調(diào)問題會加劇。
緩解這種存取協(xié)調(diào)問題的一種普通的方法被稱作“高速緩沖存儲器鎖定”。只要一個(gè)應(yīng)用程序希望通過增加、刪除或修改其內(nèi)容來更改該高速緩沖存儲器的內(nèi)容,它就可以尋求對“鎖”數(shù)據(jù)結(jié)構(gòu)的單獨(dú)存取。當(dāng)復(fù)寫器應(yīng)用程序具有該鎖時(shí),它可以修改該高速緩沖存儲器,并且,只要復(fù)寫器具有該鎖,就可以防止其他應(yīng)用程序存取該高速緩沖存儲器。這樣,可以防止閱讀器獲得過時(shí)或曲解的數(shù)據(jù)。如果兩個(gè)應(yīng)用程序都希望修改該高速緩沖存儲器,那么,它們中的一個(gè)應(yīng)用程序必須等候,直到另一個(gè)放棄該鎖為止。
在協(xié)調(diào)對中央高速緩沖存儲器的存取的過程中,鎖會非常有用。但是,顯而易見,只要一個(gè)應(yīng)用程序希望修改該高速緩沖存儲器,這些鎖就會延遲所有應(yīng)用程序的存取。對于一些中央高速緩沖存儲器而言,應(yīng)用程序容易容忍這種關(guān)閉。但是,對于其他高速緩沖存儲器而言,這真的會是一件麻煩事。例如,考慮字體圖示符高速緩沖存儲器。計(jì)算機(jī)屏幕上所顯示的字符由被稱作“圖示符”的單獨(dú)元素構(gòu)成。由于這些圖示符中的一些圖示符包含重大數(shù)量的數(shù)據(jù),并且由于這些圖示符中的一些圖示符在其生成過程中消耗重要的計(jì)算資源,因此,它們是中央高速緩沖存儲器的理想主題。但是,如果在將新的圖示符加入該字體圖示符高速緩沖存儲器的同時(shí)鎖定該字體圖示符高速緩沖存儲器,則會在寫入該計(jì)算機(jī)屏幕的應(yīng)用程序中引起顯著的延遲。
當(dāng)限制中央高速緩沖存儲器可用的這些內(nèi)存資源時(shí),產(chǎn)生了另一個(gè)高速緩沖存儲器管理問題。希望將數(shù)據(jù)加入該高速緩沖存儲器的多個(gè)應(yīng)用程序彼此獨(dú)立地進(jìn)行操作。這樣,通常關(guān)于應(yīng)該將哪些數(shù)據(jù)加入該中央高速緩沖存儲器,以便改善該操作環(huán)境,這些應(yīng)用程序沒有“全局”觀點(diǎn)。如果該中央高速緩沖存儲器增長得太大,并且用較小的尺寸再形成,以便慮及進(jìn)一步的增加,則會產(chǎn)生同樣的問題。沒有一個(gè)應(yīng)用程序可以決定哪些數(shù)據(jù)應(yīng)該被保留在該中央高速緩沖存儲器中,以及哪些數(shù)據(jù)最好被除去,以便釋放內(nèi)存,供高速緩沖存儲器將來增長。

發(fā)明內(nèi)容
鑒于前述內(nèi)容,本發(fā)明提供了一種中央高速緩沖存儲器,該中央高速緩沖存儲器可以在沒有鎖定的延遲管理費(fèi)用的情況下被加以更新,并且對該高速緩沖存儲器內(nèi)的數(shù)據(jù)的重要性具有全局觀點(diǎn)。“原子性”更新提供了存取協(xié)調(diào)的各種好處,而不會招致鎖定的延遲管理費(fèi)用。高速緩沖存儲器更新是“原子性的”,這體現(xiàn)在它們被設(shè)計(jì)成無法被中途打斷。通過這些高速緩沖存儲器更新,當(dāng)被應(yīng)用程序存取時(shí),高速緩沖存儲器內(nèi)總是保持最新、一致。
應(yīng)用程序總是自由地讀取該中央高速緩沖存儲器中的數(shù)據(jù),從而通過參考表格來存取該數(shù)據(jù)。但是,這些應(yīng)用程序沒有直接更新該高速緩沖存儲器,相反,它們將更新請求發(fā)送到服務(wù)程序。為了更新該高速緩沖存儲器,該高速緩沖存儲器服務(wù)程序在兩個(gè)階段中進(jìn)行。在第一個(gè)階段中,該高速緩沖存儲器服務(wù)程序準(zhǔn)備該新數(shù)據(jù)并將它們加入該高速緩沖存儲器,而不會更新該參考表格。這第一個(gè)階段可能會花費(fèi)一些時(shí)間,但應(yīng)用程序仍然可以充分地對該高速緩沖存儲器進(jìn)行存取,這是因?yàn)樵摳咚倬彌_存儲器沒有被鎖定。在這第一個(gè)階段期間,存取該高速緩沖存儲器的應(yīng)用程序無法“看見”該新數(shù)據(jù),因?yàn)樵搮⒖急砀襁€沒有被更新。只有在該高速緩沖存儲器數(shù)據(jù)被充分加以準(zhǔn)備并被載入該高速緩沖存儲器之后,該高速緩沖存儲器服務(wù)程序才執(zhí)行該更新過程的第二個(gè)階段更新該參考表格。該更新(包括只改變一個(gè)指針)利用原子性來加以執(zhí)行,而不會鎖定該高速緩沖存儲器。這樣,該雙相更新過程不要求鎖定該高速緩沖存儲器,并且一直使該高速緩沖存儲器處于存取應(yīng)用程序的有效狀態(tài)。由于一個(gè)高速緩沖存儲器服務(wù)程序執(zhí)行所有的更新,因此,不需要鎖在多個(gè)高速緩沖存儲器復(fù)寫器之中進(jìn)行協(xié)調(diào)。
該高速緩沖存儲器服務(wù)程序收集關(guān)于如何使用該高速緩沖存儲器中的數(shù)據(jù)的統(tǒng)計(jì)數(shù)字。當(dāng)該高速緩沖存儲器增長得太大時(shí),該高速緩沖存儲器服務(wù)程序使用這些統(tǒng)計(jì)數(shù)字來決定應(yīng)該將哪些數(shù)據(jù)拷貝到新的高速緩沖存儲器中。再次在兩個(gè)階段中,利用原子性來創(chuàng)建這個(gè)新的高速緩沖存儲器。在第一個(gè)階段期間,該高速緩沖存儲器服務(wù)程序創(chuàng)建這個(gè)新的高速緩沖存儲器,并且用來自老的高速緩沖存儲器的所選擇的數(shù)據(jù)來填充這個(gè)新的高速緩沖存儲器。迄今,應(yīng)用程序還不具備有關(guān)這個(gè)新的高速緩沖存儲器的知識。當(dāng)這個(gè)新的高速緩沖存儲器準(zhǔn)備好使用時(shí),該高速緩沖存儲器服務(wù)程序在老的高速緩沖存儲器的頭部中為其加入?yún)⒖?。然后,在第二個(gè)階段中,并且通過使用另一項(xiàng)原子性操作,該高速緩沖存儲器服務(wù)程序?qū)⒗系母咚倬彌_存儲器標(biāo)記為“過時(shí)的”。一注意到這個(gè)老的高速緩沖存儲器被標(biāo)記為過時(shí),應(yīng)用程序就遵循對該新高速緩沖存儲器的參考,并且開始只使用這個(gè)新的高速緩沖存儲器。如在高速緩沖存儲器內(nèi)的更新中,按這樣一種方式來執(zhí)行用于替換整個(gè)高速緩沖存儲器的這種機(jī)制,以便應(yīng)用程序始終可以看見一致的高速緩沖存儲器。
應(yīng)用程序可以繼續(xù)使用過時(shí)的高速緩沖存儲器,直到它們注意到過時(shí)的標(biāo)志并轉(zhuǎn)到這個(gè)新的高速緩沖存儲器。一旦已轉(zhuǎn)換所有應(yīng)用程序,就自動刪除該過時(shí)的高速緩沖存儲器。
在一些實(shí)施例中,高速緩沖存儲器內(nèi)的參考表格包括偏移量,這些偏移量相對于該高速緩沖存儲器內(nèi)的另一個(gè)位置來規(guī)定該高速緩沖存儲器中所存儲的數(shù)據(jù)位置。這具有一個(gè)優(yōu)點(diǎn)該高速緩沖存儲器可以被存儲為文件,并且在操辦該高速緩沖存儲器的計(jì)算設(shè)備重新啟動之后被立即再使用。
該中央高速緩沖存儲器可以由一個(gè)計(jì)算設(shè)備來主辦,并可以由那個(gè)計(jì)算設(shè)備和其他計(jì)算設(shè)備上的應(yīng)用程序來使用。每個(gè)應(yīng)用程序也可以具有結(jié)合該中央高速緩沖存儲器來加以使用的其自己的本地高速緩沖存儲器。如果該本地高速緩沖存儲器具有與該中央高速緩沖存儲器相同的數(shù)據(jù)結(jié)構(gòu),那么,可以為這兩種高速緩沖存儲器使用相同的超高速緩存訪問代碼。
該高速緩沖存儲器服務(wù)程序?qū)⒃囂椒☉?yīng)用于其所搜集的關(guān)于高速緩沖存儲器使用的統(tǒng)計(jì)數(shù)字,以便決定當(dāng)替換該高速緩沖存儲器時(shí)要保存哪些數(shù)據(jù)。在一些實(shí)施例中,提供了用戶界面,從而允許改變該試探法,并允許監(jiān)控該高速緩沖存儲器的操作。


所附權(quán)利要求書詳細(xì)陳述了本發(fā)明的各個(gè)特點(diǎn),但通過以下詳細(xì)的描述并結(jié)合附圖,可以最佳程度地理解本發(fā)明及其目的和優(yōu)點(diǎn)。在這些附圖中圖1a是框圖,表現(xiàn)了經(jīng)由局域網(wǎng)(LAN)來共享超高速緩存數(shù)據(jù)的三個(gè)計(jì)算設(shè)備;圖1b是框圖,表現(xiàn)了在圖1a的這些計(jì)算設(shè)備之中被共享的中央高速緩沖存儲器;圖2是示意圖,通常展示了支持本發(fā)明的示范計(jì)算機(jī)系統(tǒng);圖3a~3d一起構(gòu)成流程圖,展示了根據(jù)本發(fā)明的示范方法,應(yīng)用程序使用該示范方法來嘗試從中央高速緩沖存儲器存取數(shù)據(jù);圖4a是示意圖,表現(xiàn)了根據(jù)本發(fā)明的中央高速緩沖存儲器的示范數(shù)據(jù)結(jié)構(gòu);圖4b是示意圖,表現(xiàn)了中央高速緩沖存儲器中的數(shù)據(jù)元素的示范數(shù)據(jù)結(jié)構(gòu);圖5a~5d一起構(gòu)成根據(jù)本發(fā)明的示范方法的流程圖,該示范方法是關(guān)于維持中央高速緩沖存儲器的例行程序;以及,圖6是示范方法的流程圖,該示范方法用于配置中央高速緩沖存儲器服務(wù)程序。
具體實(shí)施例方式
參考這些附圖(其中,類似的參考數(shù)字提及類似的元件),將本發(fā)明展示為在合適的計(jì)算環(huán)境中被加以執(zhí)行。下文基于本發(fā)明的實(shí)施例,不應(yīng)該被視作在這里未作明確描述的選擇性實(shí)施例方面限制本發(fā)明。
在下文中,除非另有指示,參照由一個(gè)或多個(gè)計(jì)算設(shè)備執(zhí)行的動作和操作的符號表示,來描述本發(fā)明。照此,將會理解這類動作和操作(有時(shí)被稱作“是計(jì)算機(jī)執(zhí)行的”)包括用組織形式表示數(shù)據(jù)的電信號計(jì)算設(shè)備的處理單元所執(zhí)行的操作。這項(xiàng)操作變換該數(shù)據(jù)或?qū)⑵浔4嬖谠撚?jì)算設(shè)備的存儲系統(tǒng)中的位置,這樣,用精通該技術(shù)領(lǐng)域的人所熟悉的方式來重新配置或改變該設(shè)備的操作。其中保存有數(shù)據(jù)的這些數(shù)據(jù)結(jié)構(gòu)是具有由該數(shù)據(jù)的格式定義的特殊屬性的存儲器的物理位置。但是,前述上下文中正在描述本發(fā)明,而這并不意味著起限制的作用,因?yàn)榫ㄔ摷夹g(shù)領(lǐng)域的人將會理解也可以在硬件中執(zhí)行下文中所描述的各種動作和操作。
本發(fā)明提供了一種利用原子性更新的中央高速緩沖存儲器。該中央高速緩沖存儲器可以由運(yùn)行于操辦該高速緩沖存儲器的計(jì)算設(shè)備上的應(yīng)用程序來專用,或者,如在圖1a中,該中央高速緩沖存儲器可以由幾個(gè)計(jì)算設(shè)備上的應(yīng)用程序來使用。在圖1a中,三個(gè)計(jì)算設(shè)備——A 102、B 104和便攜式計(jì)算機(jī)106處于超高速緩存數(shù)據(jù)共享環(huán)境100中。中央高速緩沖存儲器(未示出)駐留在計(jì)算設(shè)備A 102上,并且可以經(jīng)由LAN 108由應(yīng)用程序來加以存取?,F(xiàn)存的標(biāo)準(zhǔn)通信協(xié)議用于在共享環(huán)境100內(nèi)的各個(gè)計(jì)算設(shè)備之中傳送高速緩沖存儲器請求和響應(yīng)。
與因特網(wǎng)110的連接被示出指出即使遠(yuǎn)程計(jì)算設(shè)備也可以加入超高速緩存數(shù)據(jù)共享環(huán)境100。實(shí)際上,這類遠(yuǎn)程設(shè)備存取該中央高速緩沖存儲器所需的通信時(shí)間增加了,這樣,為了滿足該高速緩沖存儲器提供對數(shù)據(jù)的快速存取的目的,可運(yùn)行計(jì)數(shù)器。大多數(shù)中央高速緩沖存儲器的情況將只涉及一個(gè)或至多幾個(gè)位置接近的計(jì)算設(shè)備。
圖1b呈現(xiàn)了圖1a中的超高速緩存數(shù)據(jù)共享環(huán)境100的示范實(shí)施例的結(jié)構(gòu)細(xì)節(jié)。應(yīng)用程序A 112正在計(jì)算設(shè)備A 102上運(yùn)行。在一起構(gòu)成應(yīng)用程序A 112的各種例行程序之中,是本地和中央高速緩沖存儲器搜索程序114。當(dāng)應(yīng)用程序A 112需要可以駐留在高速緩沖存儲器中的數(shù)據(jù)時(shí),這個(gè)程序114在當(dāng)前的本地高速緩沖存儲器116和當(dāng)前的中央高速緩沖存儲器118中尋找該數(shù)據(jù)。本地高速緩沖存儲器116是應(yīng)用程序A 112的一部分,并且在應(yīng)用程序A 112的控制之下。中央高速緩沖存儲器118不是應(yīng)用程序A 112的一部分,但應(yīng)用程序A 112和其他應(yīng)用程序可以對中央高速緩沖存儲器118進(jìn)行存取。
如果中央高速緩沖存儲器搜索程序114在本地高速緩沖存儲器116中或在中央高速緩沖存儲器118中找到所請求的數(shù)據(jù),則它將該數(shù)據(jù)返回到應(yīng)用程序A 112。如果沒有找到所請求的數(shù)據(jù),則在其他地方搜尋該數(shù)據(jù),或者創(chuàng)建該數(shù)據(jù)。一旦找到或創(chuàng)建該數(shù)據(jù),高速緩沖存儲器搜索程序114就要求通過調(diào)用本地高速緩沖存儲器更新程序120,將該數(shù)據(jù)加入本地高速緩沖存儲器116。也將請求發(fā)送到中央高速緩沖存儲器服務(wù)程序124,以便將該數(shù)據(jù)加入中央高速緩沖存儲器118。
當(dāng)將數(shù)據(jù)加入本地高速緩沖存儲器和中央高速緩沖存儲器時(shí),這兩種高速緩沖存儲器都會增長。當(dāng)它們變得太大時(shí),可創(chuàng)建新的高速緩沖存儲器,并用先前的高速緩沖存儲器的部分?jǐn)?shù)據(jù)來填充這個(gè)新的高速緩沖存儲器。為了選擇將哪些數(shù)據(jù)傳送到這個(gè)新的高速緩沖存儲器,可以應(yīng)用任何數(shù)量的方法。例如,選擇最新近使用的數(shù)據(jù)或最頻繁使用的數(shù)據(jù)。圖1b表現(xiàn)了先前的本地高速緩沖存儲器122以及當(dāng)前的本地高速緩沖存儲器116。
當(dāng)創(chuàng)建新的中央高速緩沖存儲器時(shí),注意使用該中央高速緩沖存儲器來防止應(yīng)用程序的中斷。當(dāng)新的中央高速緩沖存儲器118準(zhǔn)備就緒時(shí),將較老的中央高速緩沖存儲器126標(biāo)記為“過時(shí)的”,以便警告應(yīng)用程序具備較新的高速緩沖存儲器。但是,那些應(yīng)用程序不需要立即切換到較新的高速緩沖存儲器118,而可以選擇暫時(shí)繼續(xù)存取較老的中央高速緩沖存儲器126。一旦不再有應(yīng)用程序存取較老的中央高速緩沖存儲器126,就刪除那個(gè)高速緩沖存儲器。
應(yīng)用程序B 128在超高速緩存數(shù)據(jù)共享環(huán)境100中的另一個(gè)計(jì)算設(shè)備上運(yùn)行。該應(yīng)用程序被示出沒有本地高速緩沖存儲器,但它具有中央高速緩沖存儲器搜索程序130。那個(gè)例行程序仍然存取較老的中央高速緩沖存儲器126,但還沒有注意到這個(gè)高速緩沖存儲器被標(biāo)記為過時(shí)。高速緩沖存儲器搜索程序130可以要求將數(shù)據(jù)加入該中央高速緩沖存儲器,但中央高速緩沖存儲器服務(wù)程序124將把那個(gè)數(shù)據(jù)加入當(dāng)前的中央高速緩沖存儲器118,而不是加入過時(shí)的高速緩沖存儲器126。
圖1中的計(jì)算設(shè)備102、104和106可能屬于任何構(gòu)造。圖2是框圖,通常展示了支持本發(fā)明的示范計(jì)算機(jī)系統(tǒng)。圖2中的計(jì)算機(jī)系統(tǒng)只是合適的環(huán)境的一個(gè)例子,并且,它并不意在提出有關(guān)本發(fā)明的使用或功能性的范圍的任何限制。不應(yīng)該將計(jì)算設(shè)備102解釋為具有涉及圖2中所展示的任何一個(gè)部件或部件組合的任何從屬性或要求。本發(fā)明可用于其他許多通用或?qū)S玫挠?jì)算環(huán)境或配置。適合用于本發(fā)明的眾所周知的計(jì)算系統(tǒng)、環(huán)境和配置的例子包括(但不局限于)個(gè)人計(jì)算機(jī)、服務(wù)器、手持設(shè)備或便攜式設(shè)備、寫字板設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PCs、小型計(jì)算機(jī)、大型計(jì)算機(jī)以及包括以上任何系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境。在其最基本的配置中,計(jì)算設(shè)備102通常包括至少一個(gè)處理單元200和存儲器202。存儲器202可能是易失的(例如,RAM)、非易失的(例如,ROM或快閃存儲器),也可能是兩者的某種組合。在圖2中,用虛線204展示了該最基本的配置。計(jì)算設(shè)備102可能具有額外的特點(diǎn)和功能性。例如,計(jì)算設(shè)備102可以包括額外的存儲器(可移動的和不可移動的),該額外的存儲器包括(但不局限于)磁盤、光盤和磁帶。在圖2中,由可移動存儲器206和不可移動的存儲器208來展示這類額外的存儲器。計(jì)算機(jī)存儲介質(zhì)包括易失的和非易失的可移動和不可移動的介質(zhì),該介質(zhì)用關(guān)于信息(例如,計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù))存儲的任何方法或技術(shù)來加以執(zhí)行。存儲器202、可移動存儲器206和不可移動的存儲器208都是計(jì)算機(jī)存儲介質(zhì)的例子。計(jì)算機(jī)存儲介質(zhì)包括(但不局限于)RAM、ROM、EEPROM、快閃存儲器、其他存儲技術(shù)、CD-ROM、數(shù)字通用磁盤、其他光學(xué)存儲器、盒式磁帶、磁帶、磁盤存儲器、其他磁性存儲設(shè)備,以及可以被用來存儲所需信息并可以由設(shè)備102來存取的其他任何介質(zhì)。任何這類計(jì)算機(jī)存儲介質(zhì)都可能是設(shè)備102的一部分。設(shè)備102也可能包含允許該設(shè)備與其他設(shè)備進(jìn)行通信的信道210。信道210是通信介質(zhì)的例子。通信介質(zhì)通常具體表現(xiàn)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或調(diào)制數(shù)據(jù)信號(例如,載波或其他傳送機(jī)制)中的其他數(shù)據(jù),并且,它包括任何信息傳遞介質(zhì)。術(shù)語“調(diào)制數(shù)據(jù)信號”意味著一種信號,該信號的一個(gè)或多個(gè)特征用這樣一種方式來加以設(shè)置或更改,以便為該信號中的信息編碼。舉例來講(不作限制),通信介質(zhì)包括有線介質(zhì)(例如,有線網(wǎng)絡(luò)和直線連接)和無線介質(zhì)(例如,聲音、RF、紅外線和其他無線介質(zhì))。如這里所使用的術(shù)語“計(jì)算機(jī)可讀介質(zhì)”包括存儲介質(zhì)和通信介質(zhì)。計(jì)算設(shè)備102也可能具有輸入設(shè)備212(例如,鍵盤、鼠標(biāo)、筆、語音輸入設(shè)備、寫字板、觸摸輸入設(shè)備等)。也可能包括諸如顯示器(可能與觸摸輸入設(shè)備結(jié)合)、揚(yáng)聲器和打印機(jī)的輸出設(shè)備214。所有這些設(shè)備在該技術(shù)領(lǐng)域中都眾所周知,這里不需要詳細(xì)討論。
圖3a~3d呈現(xiàn)了關(guān)于圖1b中的本地和中央高速緩沖存儲器搜索程序114的示范方法。該流程圖包括不需要被包括在高速緩沖存儲器搜索程序114的每個(gè)實(shí)施例中的許多選項(xiàng)。
在該流程圖始于圖3a中的步驟300之前,向高速緩沖存儲器搜索程序114請求存取與應(yīng)用程序A 112有關(guān)的數(shù)據(jù)。在步驟300中,通過檢查是否可以存取中央高速緩沖存儲器,來開始高速緩沖存儲器搜索程序114。如果沒有中央高速緩沖存儲器可存取,那么,高速緩沖存儲器搜索程序114進(jìn)行到圖3d中的步驟326,并在本地高速緩沖存儲器中尋找有關(guān)的數(shù)據(jù)。高速緩沖存儲器搜索程序114的其他實(shí)施例根據(jù)這些情況來嘗試在該中央高速緩沖存儲器之前存取本地高速緩沖存儲器。
如果中央高速緩沖存儲器可存取,那么,高速緩沖存儲器搜索程序114在步驟302中進(jìn)行核對,來了解該中央高速緩沖存儲器是否被標(biāo)記為“過時(shí)的”。注意,這個(gè)步驟和隨后的步驟304是任選的高速緩沖存儲器搜索程序114可以繼續(xù)使用過時(shí)的高速緩沖存儲器。但是,為了保持當(dāng)前狀態(tài),高速緩沖存儲器搜索程序114應(yīng)該定期檢驗(yàn)該中央高速緩沖存儲器的狀況,以便一旦它注意到老的高速緩沖存儲器過時(shí)了,它就會存取并放棄這個(gè)老的高速緩沖存儲器。
在中央高速緩沖存儲器被標(biāo)記為過時(shí)之前,中央高速緩沖存儲器服務(wù)程序124創(chuàng)建新的中央高速緩沖存儲器(見圖5a和5b中的步驟512~518)。這樣,在步驟304中,高速緩沖存儲器搜索程序114可以遵循在該過時(shí)的中央高速緩沖存儲器的頭部中對該當(dāng)前的中央高速緩沖存儲器的參考。由于請求到達(dá)時(shí)與處理那個(gè)請求時(shí)之間的延遲會很重大,因此,在該延遲期間,一個(gè)以上的高速緩沖存儲器可以被標(biāo)記為過時(shí)。在那種情況下,重復(fù)步驟302和304,直到達(dá)到非過時(shí)的高速緩沖存儲器。
在步驟306中,高速緩沖存儲器搜索程序114存取該中央高速緩沖存儲器,來了解它是否包含有關(guān)的數(shù)據(jù)。根據(jù)該中央高速緩沖存儲器的結(jié)構(gòu)的細(xì)節(jié),步驟306的細(xì)節(jié)會有很大的變化。如圖3a~3c中所示的步驟306呈現(xiàn)了一項(xiàng)可能的實(shí)施,并且意在結(jié)合圖4a和4b中所示的示范高速緩沖存儲器數(shù)據(jù)結(jié)構(gòu)來加以觀察。
圖4a展示了中央高速緩沖存儲器400的結(jié)構(gòu),中央高速緩沖存儲器400可以結(jié)合步驟306中所展示的程序來使用。尺寸固定的頭部402包含該過時(shí)的標(biāo)志,并且,如果設(shè)置該標(biāo)志,則參考更當(dāng)前的中央高速緩沖存儲器400。接下來是尺寸固定的參考表格404。參考表格404中的每個(gè)項(xiàng)目要么是對數(shù)據(jù)元素存儲區(qū)406中的數(shù)據(jù)元素(見圖4b中的410)的參考,要么是特殊值(例如,NULL),該特殊值指出該項(xiàng)目沒有提到數(shù)據(jù)元素。在一些實(shí)施例中,這些參考作為整數(shù)偏移量來加以提供。這允許在主機(jī)計(jì)算設(shè)備102重新啟動之后,將中央高速緩沖存儲器400作為磁盤上的文件來加以存儲,并且對其進(jìn)行恢復(fù)。
實(shí)際的超高速緩存數(shù)據(jù)作為單獨(dú)的數(shù)據(jù)元素410來加以存儲。被分配給這些數(shù)據(jù)元素406的空間按需要變成不受約束空間408的區(qū)域。當(dāng)用完不受約束空間408時(shí),高速緩沖存儲器服務(wù)程序124就該創(chuàng)建新的中央高速緩沖存儲器400了。
步驟306中所展示的特殊實(shí)施通過散列有關(guān)的數(shù)據(jù),在步驟308中開始。然后,在步驟310中,使用該散列,作為進(jìn)入中央高速緩沖存儲器400中的參考表格404的索引。在圖3b的步驟312中,檢查參考表格404中的所選擇的項(xiàng)目。如果那個(gè)項(xiàng)目沒有提到任何數(shù)據(jù)元素,那么,有關(guān)的數(shù)據(jù)不在中央高速緩沖存儲器400中(步驟314)。然后,高速緩沖存儲器搜索程序114進(jìn)行到圖3d中的步驟326,以便在除中央高速緩沖存儲器400以外的其他地方尋找有關(guān)的數(shù)據(jù)。
另一方面,如果參考表格404中的所選擇的項(xiàng)目提到數(shù)據(jù)元素,那么,那個(gè)數(shù)據(jù)元素可能或可能不包含有關(guān)的數(shù)據(jù)。其中的原因是不同的數(shù)據(jù)值可能會散列到相同的值,并導(dǎo)致在參考表格404中選擇相同的項(xiàng)目。
查閱圖4b中的示范數(shù)據(jù)元素結(jié)構(gòu)410。每個(gè)數(shù)據(jù)元素410始于參考412,參考412要么提到具有相同的散列值的另一個(gè)數(shù)據(jù)元素410,要么提到特殊值(例如,NULL),該特殊值指出該項(xiàng)目沒有提到另一個(gè)數(shù)據(jù)元素410。就利用參考表格404中的這些項(xiàng)目,該參考可以作為整數(shù)偏移量來加以提供。參考412后面是數(shù)據(jù)標(biāo)識符領(lǐng)域414,該數(shù)據(jù)標(biāo)識符領(lǐng)域?qū)iT識別這個(gè)數(shù)據(jù)元素410中所包含的數(shù)據(jù)。最后是包含該數(shù)據(jù)本身的領(lǐng)域416。這個(gè)領(lǐng)域416的尺寸和結(jié)構(gòu)針對所存儲的數(shù)據(jù)的性質(zhì)。在一些實(shí)施例中,數(shù)據(jù)元素410包含一個(gè)領(lǐng)域,該領(lǐng)域指出其尺寸或(同樣)特定元素?cái)?shù)據(jù)區(qū)416的末端的位置。在其他實(shí)施例中,中央高速緩沖存儲器400的頭部402中的領(lǐng)域指出所分配的數(shù)據(jù)存儲區(qū)406的末端。無論如何,使用這些長度字段來指出在哪里可以將另一個(gè)數(shù)據(jù)元素410加入高速緩沖存儲器400(在圖5d的步驟534中,以下將加以討論)。
注意數(shù)據(jù)元素410的這個(gè)示范結(jié)構(gòu),返回到圖3b中的步驟316。步驟316中的數(shù)據(jù)元素410的散列匹配有關(guān)數(shù)據(jù)的散列。為了了解這個(gè)數(shù)據(jù)元素410是否包含有關(guān)的數(shù)據(jù),可以將數(shù)據(jù)元素410的數(shù)據(jù)標(biāo)識符領(lǐng)域414和有關(guān)的數(shù)據(jù)進(jìn)行比較。如果它們匹配,那么,該搜索完成。有關(guān)的數(shù)據(jù)在步驟318中被加以檢索,并被傳遞到應(yīng)用程序A 112。這成功地結(jié)束了圖3a~3d中的高速緩沖存儲器搜索程序114。
另一方面,如果步驟316中的比較揭示這個(gè)數(shù)據(jù)元素410不包含有關(guān)的數(shù)據(jù),那么,高速緩沖存儲器搜索程序114進(jìn)行到圖3c中的步驟320。在步驟320中,檢查數(shù)據(jù)元素410的參考域412。如果這個(gè)參考域沒有提到另一個(gè)數(shù)據(jù)元素410,那么,中央高速緩沖存儲器400不包含有關(guān)的數(shù)據(jù)(步驟322)。高速緩沖存儲器搜索程序114進(jìn)行到圖3d中的步驟326,以便在其他地方搜索有關(guān)的數(shù)據(jù)。
在步驟320中,如果數(shù)據(jù)元素410的參考域412提到進(jìn)一步的數(shù)據(jù)元素,那么,檢查那個(gè)進(jìn)一步的數(shù)據(jù)元素,來了解它是否包含有關(guān)的數(shù)據(jù)。步驟324捕獲這個(gè)過程通過重復(fù)步驟316~322來跟隨數(shù)據(jù)元素鏈410,直到找到并檢索到有關(guān)的數(shù)據(jù)(步驟318),或者直到達(dá)到該鏈的末端而沒有找到有關(guān)的數(shù)據(jù)(步驟322)。
如果中央高速緩沖存儲器400不包含有關(guān)的數(shù)據(jù),那么,在圖3d的步驟326中,高速緩沖存儲器搜索程序114可以搜索對于應(yīng)用程序A 112而言是本地的高速緩沖存儲器116。在一些實(shí)施中,步驟326的細(xì)節(jié)監(jiān)控步驟306的細(xì)節(jié)。這允許再使用該高速緩沖存儲器搜索代碼。無論如何,如果本地高速緩沖存儲器116包含有關(guān)的數(shù)據(jù),那么,在步驟332中檢索那些數(shù)據(jù)。如果不包含有關(guān)的數(shù)據(jù),并且假定沒有其他的高速緩沖存儲器搜索有關(guān)的數(shù)據(jù),那么,在步驟328中創(chuàng)建那些數(shù)據(jù)。然后,在步驟330中將那些數(shù)據(jù)加入本地高速緩沖存儲器116,以促進(jìn)將來的存取??梢栽诓襟E334中請求將所創(chuàng)建的數(shù)據(jù)加入中央高速緩沖存儲器400。
圖3a~3d展示了高速緩沖存儲器搜索程序114如何從中央高速緩沖存儲器400中或從其他地方檢索有關(guān)的數(shù)據(jù)。圖5a~5d展示了高速緩沖存儲器400的另一個(gè)方面高速緩沖存儲器服務(wù)程序124,當(dāng)目前的高速緩沖存儲器變滿時(shí),高速緩沖存儲器服務(wù)程序124將數(shù)據(jù)加入高速緩沖存儲器400并創(chuàng)建新的中央高速緩沖存儲器。由于高速緩沖存儲器服務(wù)程序124是將數(shù)據(jù)加入高速緩沖存儲器400的唯一的例行程序,因此,不需要鎖定高速緩沖存儲器400,以防止多個(gè)復(fù)寫器之中的沖突。也由于所有的寫請求都流過高速緩沖存儲器服務(wù)程序124,因此,它可以收集有關(guān)高速緩沖存儲器使用的統(tǒng)計(jì)數(shù)字并形成對將數(shù)據(jù)加入高速緩沖存儲器400的特殊請求的重要性的“全局”觀點(diǎn),并且,可以決定當(dāng)創(chuàng)建新的高速緩沖存儲器時(shí),應(yīng)該傳送哪些數(shù)據(jù)。圖5a~5d中的程序只是起示范的作用。它使用在圖4a和4b中所介紹的各種中央高速緩沖存儲器數(shù)據(jù)結(jié)構(gòu)。
高速緩沖存儲器服務(wù)程序124始于圖5a中的步驟500,這時(shí),它接收到將數(shù)據(jù)加入中央高速緩沖存儲器400的請求。當(dāng)高速緩沖存儲器搜索程序114執(zhí)行圖3d中的步驟334時(shí),這個(gè)請求可能已發(fā)生。
在步驟502中,高速緩沖存儲器服務(wù)程序124的一些實(shí)施例收集有關(guān)所接收的請求和有關(guān)其他請求的統(tǒng)計(jì)數(shù)字。在步驟504中,高速緩沖存儲器服務(wù)程序124決定是否服從這個(gè)請求。一些實(shí)施例完全服從所有請求,而其他實(shí)施例在決定有關(guān)的數(shù)據(jù)是否“值得”被加入中央高速緩沖存儲器400之前先參考所收集的統(tǒng)計(jì)數(shù)字。如果與高速緩沖存儲器400中的不受約束空間408比較,有關(guān)數(shù)據(jù)的尺寸太大,則一些實(shí)施例拒絕該請求。將有關(guān)的數(shù)據(jù)和高速緩沖存儲器400中的數(shù)據(jù)進(jìn)行比較(可能通過執(zhí)行圖3a~3c中的步驟306),并且,如果已經(jīng)存在有關(guān)的數(shù)據(jù),則拒絕該請求。發(fā)生這種情況的原因是排列在步驟500中所接收的請求,并且請求到達(dá)時(shí)與將有關(guān)的數(shù)據(jù)加入高速緩沖存儲器400時(shí)(在圖5b~5d的步驟522中)之間會有重大的延遲。在該延遲期間,請求的高速緩沖存儲器服務(wù)程序114或另一個(gè)例行程序會再存取高速緩沖存儲器400,無法找到有關(guān)的數(shù)據(jù),并且再提出該請求。到處理稍后的請求的時(shí)候,依照較早的請求,有關(guān)的數(shù)據(jù)已經(jīng)被加入隊(duì)列400。無論如何,如果在步驟506中決定不服從該請求,那么,高速緩沖存儲器服務(wù)程序124在步驟508中等候進(jìn)一步的請求。
如果決定服從該請求,那么,在步驟510中,高速緩沖存儲器服務(wù)程序124決定是否需要新的中央高速緩沖存儲器400。例如,如果有關(guān)的數(shù)據(jù)將不適合高速緩沖存儲器400中的不受約束空間408,那么,在圖5a和5b的步驟512~520中創(chuàng)建新的高速緩沖存儲器400。如果參考表格404變滿,或者,如果高速緩沖存儲器400具有太多暫時(shí)還沒有被使用的數(shù)據(jù)元素410,則也可以創(chuàng)建新的高速緩沖存儲器400。如果不需要新的高速緩沖存儲器400,那么,高速緩沖存儲器服務(wù)程序124在圖5b的步驟522中直接開始加入有關(guān)的數(shù)據(jù)。
如果需要新的中央高速緩沖存儲器400,則在步驟512中創(chuàng)建空核。高速緩沖存儲器通常被存儲在RAM中,以便它們可以提供對其數(shù)據(jù)的快速存取。一些操作系統(tǒng)允許RAM的區(qū)域由該文件系統(tǒng)來映射。這提供了某些優(yōu)點(diǎn),以后將對這些優(yōu)點(diǎn)進(jìn)行描述。
在圖5b的步驟514中,高速緩沖存儲器服務(wù)程序124用從現(xiàn)存的高速緩沖存儲器中選擇的數(shù)據(jù)元素410來填充新近被創(chuàng)建的高速緩沖存儲器400??梢酝ㄟ^幾種可能的方法來選擇數(shù)據(jù)元素410。高速緩沖存儲器服務(wù)程序124可以收集有關(guān)已如何使用數(shù)據(jù)元素410的統(tǒng)計(jì)數(shù)字。然后,選擇最新近使用的元素或最頻繁使用的元素。一些實(shí)施例使用該選擇中的隨機(jī)性元素。無論如何,一旦選擇數(shù)據(jù)元素410,就將它們拷貝到新的中央高速緩沖存儲器400的數(shù)據(jù)存儲區(qū)406中,并且填充新的高速緩沖存儲器400的參考表格404。注意,步驟514會需要一些時(shí)間來加以執(zhí)行,但是,在這個(gè)步驟期間,老的高速緩沖存儲器總是可存取的。
在老的高速緩沖存儲器的頭部402中,在步驟516中寫入對新的高速緩沖存儲器400的參考,并且,在步驟518中,設(shè)置標(biāo)志,以便將老的高速緩沖存儲器標(biāo)記為“過時(shí)的”。現(xiàn)在,新的高速緩沖存儲器400準(zhǔn)備就緒,可以使用了。高速緩沖存儲器搜索程序114一看見老的高速緩沖存儲器中的該過時(shí)標(biāo)志,就遵循對新的高速緩沖存儲器400的參考(見圖3a中的步驟302和304) 。
在步驟520中,高速緩沖存儲器服務(wù)程序124要求一沒有提到該過時(shí)的高速緩沖存儲器的應(yīng)用程序,也就是說,所有這些應(yīng)用程序一放棄其對該過時(shí)的高速緩沖存儲器的參考,該操作系統(tǒng)就自動刪除該過時(shí)的高速緩沖存儲器。
不管是否剛剛創(chuàng)建新的高速緩沖存儲器400,都在步驟522中將有關(guān)的數(shù)據(jù)加入當(dāng)前的高速緩沖存儲器400。圖5b~5d中的步驟522監(jiān)控圖3a~3c中的步驟306的復(fù)雜化,因?yàn)椴襟E522創(chuàng)建在步驟306中被搜索的各種數(shù)據(jù)結(jié)構(gòu)。附圖中所提供的、關(guān)于步驟306和522的細(xì)節(jié)只說明了一些實(shí)施例,而在大多數(shù)實(shí)施例中,這些步驟彼此監(jiān)控。
步驟522的特殊實(shí)施例從在步驟524中散列有關(guān)的數(shù)據(jù)開始(圖3a中的監(jiān)控步驟308)。在步驟526中,使用該散列,在高速緩沖存儲器400的參考表格404中選擇項(xiàng)目(監(jiān)控步驟310)。如果在步驟528中,所選擇的項(xiàng)目還沒有提到數(shù)據(jù)元素410,那么,在圖5d的步驟534中,在高速緩沖存儲器400的數(shù)據(jù)存儲區(qū)406中創(chuàng)建數(shù)據(jù)元素410。然后,用有關(guān)的數(shù)據(jù)來填充這個(gè)新的數(shù)據(jù)元素。注意,當(dāng)這個(gè)填充步驟(population step)進(jìn)行時(shí),存取高速緩沖存儲器400的高速緩沖存儲器搜索程序114將不會看見該新數(shù)據(jù),所以可能會提出加入這些相同的數(shù)據(jù)的額外請求。一旦填充步驟534完成并且新的數(shù)據(jù)元素410準(zhǔn)備就緒,高速緩沖存儲器服務(wù)程序124就利用原子性來更新參考表格404中的所選擇的指針,以指向新的數(shù)據(jù)元素410(步驟536)。該參考的寫操作只占據(jù)一個(gè)計(jì)算機(jī)指令,以便它本質(zhì)上是不可中斷的。這樣,在這項(xiàng)操作期間,不需要鎖定高速緩沖存儲器400,以保持其內(nèi)部的一致性。
返回到步驟528,如果參考表格404中的所選擇的項(xiàng)目已經(jīng)提到數(shù)據(jù)元素410,那么,在步驟530中檢查數(shù)據(jù)元素410的參考域412。在步驟532中,遵循該參考鏈,直到它結(jié)束為止。(在圖3b~3c的步驟316~324中,這沿相同的參考鏈來監(jiān)控該搜索。)一旦找到該鏈的末端,該高速緩沖存儲器服務(wù)程序就進(jìn)行到以上所描述的步驟534,其中,新的數(shù)據(jù)元素410被定位并用有關(guān)的數(shù)據(jù)來填充。在這種情況中,步驟536利用原子性將對新的數(shù)據(jù)元素410的參考加入曾經(jīng)處于該鏈末端的現(xiàn)存的數(shù)據(jù)元素410,這樣,將該參考鏈延長又一個(gè)“鏈環(huán)”。
總而言之,無論是將新的數(shù)據(jù)元素410加入現(xiàn)存的中央高速緩沖存儲器400,還是創(chuàng)建新的中央高速緩沖存儲器400,高速緩沖存儲器服務(wù)程序124都在兩個(gè)階段中進(jìn)行。首先,準(zhǔn)備該數(shù)據(jù),并且完成所有耗時(shí)的工作。在這個(gè)階段期間,對于高速緩沖存儲器搜索程序114而言,中央高速緩沖存儲器400的這些變化不可見。所以,不需要鎖定中央高速緩沖存儲器400,來保持其內(nèi)部的一致性。也不需要按高優(yōu)先級來運(yùn)行高速緩沖存儲器服務(wù)程序124。第二個(gè)階段包括將單一指針寫入新的數(shù)據(jù)元素410或?qū)懭胄碌闹醒敫咚倬彌_存儲器400。寫入單一指針是本質(zhì)上不可中斷的程序,因此,又不需要在此階段期間鎖定中央高速緩沖存儲器400。一旦第二個(gè)階段完成,高速緩沖存儲器搜索程序114就可以存取這個(gè)新的數(shù)據(jù)或新的高速緩沖存儲器。
圖6表現(xiàn)了一種用于監(jiān)控和配置高速緩沖存儲器服務(wù)程序124的操作的方法。在步驟600中,顯示了該中央高速緩沖存儲器的最大尺寸和當(dāng)前尺寸。在步驟602中,顯示了當(dāng)填充新的中央高速緩沖存儲器時(shí)在圖5b的步驟514中被用來從現(xiàn)存的中央高速緩沖存儲器中選擇數(shù)據(jù)元素的試探法。在步驟604中,顯示了在步驟504中被用來決定是否服從將數(shù)據(jù)加入該中央高速緩沖存儲器的請求的試探法。記住這種試探法可以只是“始終服從”。步驟606顯示了已被搜集的、關(guān)于高速緩沖存儲器使用的各種統(tǒng)計(jì)數(shù)字。網(wǎng)絡(luò)管理員可以分析這些統(tǒng)計(jì)數(shù)字,并決定該中央高速緩沖存儲器沒有正在最佳地進(jìn)行操作。該網(wǎng)絡(luò)管理員在步驟608中輸入某種變化,該變化在步驟610中被反映回來。圖6意在僅僅提供用戶界面的風(fēng)味,而無法公平對待該技術(shù)領(lǐng)域中眾所周知的眾多不同的高速緩沖存儲器分析工具。
鑒于可以應(yīng)用本發(fā)明的原理的這許多可能的實(shí)施例,應(yīng)該認(rèn)識到這里根據(jù)附圖而描述的實(shí)施例意在只是起說明性的作用,而不應(yīng)該被視作限制本發(fā)明的范圍。例如,精通該技術(shù)領(lǐng)域的人將會認(rèn)識到在不脫離本發(fā)明的精神的前提下,可以在布置和細(xì)節(jié)方面修改所展示的實(shí)施例,尤其是基于這些實(shí)施例的各種數(shù)據(jù)結(jié)構(gòu)和程序。雖然按照軟件模塊或部件來描述本發(fā)明,但是,精通該技術(shù)領(lǐng)域的人將會認(rèn)識到這樣的軟件模塊或部件可以同等地由硬件部件來取代。所以,如這里所描述的本發(fā)明計(jì)劃可將所有這類實(shí)施例包括在以下權(quán)利要求書及其相等物的范圍以內(nèi)。
權(quán)利要求
1.一種在具有應(yīng)用程序、具有中央高速緩沖存儲器和具有與該應(yīng)用程序截然不同的高速緩沖存儲器服務(wù)程序的計(jì)算環(huán)境中,供該高速緩沖存儲器服務(wù)程序用來嘗試將有關(guān)的數(shù)據(jù)加入該中央高速緩沖存儲器的方法,其特征在于,包括從該應(yīng)用程序接收請求,該請求要求將有關(guān)的數(shù)據(jù)加入該中央高速緩沖存儲器;確定是否將有關(guān)的數(shù)據(jù)加入該中央高速緩沖存儲器;以及,根據(jù)加入有關(guān)數(shù)據(jù)的確定,將有關(guān)的數(shù)據(jù)加入該中央高速緩沖存儲器。
2.如如權(quán)利要求1所述的方法,其特征在于,該應(yīng)用程序在第一個(gè)計(jì)算設(shè)備上運(yùn)行;其中,該高速緩沖存儲器服務(wù)程序在第二個(gè)計(jì)算設(shè)備上運(yùn)行;并且,其中,這第一個(gè)和第二個(gè)計(jì)算設(shè)備彼此截然不同。
3.如權(quán)利要求2所述的方法,其特征在于,從該應(yīng)用程序接收請求包括通過從小組中選擇的通信介質(zhì)來進(jìn)行接收,該小組包括串行通信線路、并行通信線路、局域網(wǎng)、內(nèi)聯(lián)網(wǎng)、調(diào)制解調(diào)器連接和因特網(wǎng)。
4.如權(quán)利要求1所述的方法,其特征在于,有關(guān)的數(shù)據(jù)包括字體圖示符。
5.如權(quán)利要求1所述的方法,其特征在于,確定是否將有關(guān)的數(shù)據(jù)加入該中央高速緩沖存儲器至少部分地基于從小組中選擇的操作,該小組包括確定有關(guān)的數(shù)據(jù)是否將適合該中央高速緩沖存儲器;確定是否已經(jīng)在該中央高速緩沖存儲器中找到有關(guān)的數(shù)據(jù);收集有關(guān)該請求和有關(guān)從該應(yīng)用程序或從其他應(yīng)用程序接收的其他請求的統(tǒng)計(jì)數(shù)字;以及,從該應(yīng)用程序接收統(tǒng)計(jì)數(shù)字。
6.如權(quán)利要求5所述的方法,其特征在于,收集統(tǒng)計(jì)數(shù)字包括收集從小組中選擇的統(tǒng)計(jì)數(shù)字,該小組包括對有關(guān)數(shù)據(jù)的請求數(shù)量、對有關(guān)數(shù)據(jù)的請求次數(shù)、有關(guān)數(shù)據(jù)的尺寸和對有關(guān)數(shù)據(jù)的請求來源。
7.如權(quán)利要求1所述的方法,其特征在于,將有關(guān)的數(shù)據(jù)加入該中央高速緩沖存儲器包括首先,將有關(guān)的數(shù)據(jù)存儲在該中央高速緩沖存儲器中;以及,其次,將該中央高速緩沖存儲器中的參考加入有關(guān)的數(shù)據(jù)。
8.如權(quán)利要求7所述的方法,其特征在于,將該中央高速緩沖存儲器中的參考加入有關(guān)的數(shù)據(jù)是原子性操作。
9.如權(quán)利要求1所述的方法,其特征在于,將有關(guān)的數(shù)據(jù)加入該中央高速緩沖存儲器包括在該中央高速緩沖存儲器中的參考表格中選擇項(xiàng)目,該選擇至少部分地基于有關(guān)數(shù)據(jù)的散列。
10.如權(quán)利要求9所述的方法,其特征在于,還包括如果對所選項(xiàng)目的檢查揭示所選項(xiàng)目沒有提到該中央高速緩沖存儲器中的數(shù)據(jù)元素,那么用有關(guān)的數(shù)據(jù)來填充該中央高速緩沖存儲器中的新的數(shù)據(jù)元素;以及,加入對該參考表格中的所選項(xiàng)目中的有關(guān)數(shù)據(jù)的參考。
11.如權(quán)利要求10所述的方法,其特征在于,加入對有關(guān)數(shù)據(jù)的參考包括計(jì)算到這個(gè)新的數(shù)據(jù)元素的整數(shù)偏移量。
12.如權(quán)利要求9所述的方法,其特征在于,包括如果對所選項(xiàng)目的檢查揭示所選項(xiàng)目提到該中央高速緩沖存儲器中的數(shù)據(jù)元素,那么如果對該數(shù)據(jù)元素的檢查揭示該數(shù)據(jù)元素提到進(jìn)一步的數(shù)據(jù)元素,那么,重復(fù)檢查該數(shù)據(jù)元素的步驟,其中,檢查該進(jìn)一步的數(shù)據(jù)元素,直到達(dá)到?jīng)]有提到另一個(gè)數(shù)據(jù)元素的數(shù)據(jù)元素為止;以及,當(dāng)達(dá)到?jīng)]有提到另一個(gè)數(shù)據(jù)元素的數(shù)據(jù)元素時(shí),那么用有關(guān)的數(shù)據(jù)來填充該中央高速緩沖存儲器中的新的數(shù)據(jù)元素;以及,加入對該數(shù)據(jù)元素中的有關(guān)數(shù)據(jù)的參考。
13.如權(quán)利要求12所述的方法,其特征在于,加入對有關(guān)數(shù)據(jù)的參考包括計(jì)算到這個(gè)新的數(shù)據(jù)元素的整數(shù)偏移量。
14.如權(quán)利要求1所述的方法,其特征在于,還包括確定是否創(chuàng)建新的中央高速緩沖存儲器;以及,根據(jù)創(chuàng)建新的中央高速緩沖存儲器的確定,來創(chuàng)建新的中央高速緩沖存儲器。
15.如權(quán)利要求14所述的方法,其特征在于,確定是否創(chuàng)建新的中央高速緩沖存儲器至少部分地基于從小組中選擇的操作,該小組包括確定有關(guān)的數(shù)據(jù)是否將適合該中央高速緩沖存儲器;確定該中央高速緩沖存儲器中的參考表格是否裝滿;以及,確定已使用該中央高速緩沖存儲器中的數(shù)據(jù)有多新近。
16.如權(quán)利要求14所述的方法,其特征在于,創(chuàng)建新的中央高速緩沖存儲器包括創(chuàng)建新的中央高速緩沖存儲器;加入對該中央高速緩沖存儲器中的新的中央高速緩沖存儲器的參考;以及,將該中央高速緩沖存儲器標(biāo)記為過時(shí)。
17.如權(quán)利要求16所述的方法,其特征在于,還包括用從該過時(shí)的中央高速緩沖存儲器中選擇的數(shù)據(jù)元素來填充這個(gè)新的中央高速緩沖存儲器,該選擇至少部分地基于被應(yīng)用于所收集的統(tǒng)計(jì)數(shù)字的試探法,所收集的統(tǒng)計(jì)數(shù)字是關(guān)于該過時(shí)的中央高速緩沖存儲器中的數(shù)據(jù)元素的使用。
18.如權(quán)利要求17所述的方法,其特征在于,從小組中選擇該試探法,該小組包括最新近使用的、最頻繁使用的和循環(huán)法。
19.如權(quán)利要求16所述的方法,其特征在于,還包括標(biāo)記該過時(shí)的中央高速緩沖存儲器,以便當(dāng)沒有應(yīng)用程序提到該過時(shí)的中央高速緩沖存儲器時(shí),自動刪除該過時(shí)的中央高速緩沖存儲器。
20.一種包含用于執(zhí)行一種方法的指令的計(jì)算機(jī)可讀介質(zhì),該方法采用與應(yīng)用程序截然不同的高速緩沖存儲器服務(wù)程序來嘗試將有關(guān)的數(shù)據(jù)加入中央高速緩沖存儲器,其特征在于,包括從該應(yīng)用程序接收請求,該請求要求將有關(guān)的數(shù)據(jù)加入該中央高速緩沖存儲器;確定是否將有關(guān)的數(shù)據(jù)加入該中央高速緩沖存儲器;以及,根據(jù)加入有關(guān)數(shù)據(jù)的確定,將有關(guān)的數(shù)據(jù)加入該中央高速緩沖存儲器。
21.一種在具有應(yīng)用程序、具有中央高速緩沖存儲器和具有與該應(yīng)用程序截然不同的高速緩沖存儲器服務(wù)程序的計(jì)算環(huán)境中,供該應(yīng)用程序用來嘗試存取有關(guān)的數(shù)據(jù)方法,其特征在于,包括搜索該中央高速緩沖存儲器中的有關(guān)的數(shù)據(jù);確定是否在該中央高速緩沖存儲器中找到有關(guān)的數(shù)據(jù);如果在該中央高速緩沖存儲器中找到有關(guān)的數(shù)據(jù),那么,存取該中央高速緩沖存儲器中的有關(guān)的數(shù)據(jù);以及,如果在該中央高速緩沖存儲器中沒有找到有關(guān)的數(shù)據(jù),那么嘗試在除該中央高速緩沖存儲器中以外的其他地方存取有關(guān)的數(shù)據(jù);以及,向該高速緩沖存儲器服務(wù)程序發(fā)出請求,要求將有關(guān)的數(shù)據(jù)加入該中央高速緩沖存儲器。
22.如權(quán)利要求21所述的方法,其中,該應(yīng)用程序在第一個(gè)計(jì)算設(shè)備上運(yùn)行;其中,該高速緩沖存儲器服務(wù)程序在第二個(gè)計(jì)算設(shè)備上運(yùn)行;并且,其中,這第一個(gè)和第二個(gè)計(jì)算設(shè)備彼此截然不同。
23.如權(quán)利要求22所述的方法,其特征在于,向該高速緩沖存儲器服務(wù)程序發(fā)出請求包括通過從小組中選擇的通信介質(zhì)來發(fā)出,該小組包括串行通信線路、并行通信線路、局域網(wǎng)、內(nèi)聯(lián)網(wǎng)、調(diào)制解調(diào)器連接和因特網(wǎng)。
24.如權(quán)利要求21所述的方法,其特征在于,有關(guān)的數(shù)據(jù)包括字體圖示符。
25.如權(quán)利要求21所述的方法,其特征在于,搜索該中央高速緩沖存儲器中的有關(guān)的數(shù)據(jù)包括在該中央高速緩沖存儲器中的參考表格中選擇項(xiàng)目,該選擇至少部分地基于有關(guān)數(shù)據(jù)的散列。
26.如權(quán)利要求25所述的方法,其特征在于,還包括如果對所選項(xiàng)目的檢查揭示所選項(xiàng)目沒有提到該中央高速緩沖存儲器中的數(shù)據(jù)元素,那么,決定有關(guān)的數(shù)據(jù)不在該中央高速緩沖存儲器中。
27.如權(quán)利要求25所述的方法,其特征在于,還包括如果對所選項(xiàng)目的檢查揭示所選項(xiàng)目提到該中央高速緩沖存儲器中的數(shù)據(jù)元素,并且,如果對該數(shù)據(jù)元素的檢查揭示該數(shù)據(jù)元素包含有關(guān)的數(shù)據(jù),那么,決定有關(guān)的數(shù)據(jù)在該中央高速緩沖存儲器中。
28.如權(quán)利要求27所述的方法,其特征在于,所選項(xiàng)目借助于該中央高速緩沖存儲器中的整數(shù)偏移量來提到數(shù)據(jù)元素。
29.如權(quán)利要求25所述的方法,其特征在于,還包括如果對所選項(xiàng)目的檢查揭示所選項(xiàng)目提到該中央高速緩沖存儲器中的數(shù)據(jù)元素,并且,如果對該數(shù)據(jù)元素的檢查揭示該數(shù)據(jù)元素不包含有關(guān)的數(shù)據(jù),那么如果該數(shù)據(jù)元素沒有提到進(jìn)一步的數(shù)據(jù)元素,那么,決定有關(guān)的數(shù)據(jù)不在該中央高速緩沖存儲器中;以及,如果該數(shù)據(jù)元素提到進(jìn)一步的數(shù)據(jù)元素,那么,重復(fù)檢查該數(shù)據(jù)元素的步驟,其中,檢查該進(jìn)一步的數(shù)據(jù)元素,直到達(dá)到包含有關(guān)數(shù)據(jù)的數(shù)據(jù)元素,或者直到達(dá)到?jīng)]有提到另一個(gè)數(shù)據(jù)元素的數(shù)據(jù)元素。
30.如權(quán)利要求21所述的方法,其特征在于,嘗試在除該中央高速緩沖存儲器中以外的其他地方存取有關(guān)的數(shù)據(jù),包括搜索對于該應(yīng)用程序而言是本地的高速緩沖存儲器中的有關(guān)數(shù)據(jù);以及,如果在該本地高速緩沖存儲器中找到有關(guān)的數(shù)據(jù),那么,存取該本地高速緩沖存儲器中的有關(guān)數(shù)據(jù);以及,如果在該本地高速緩沖存儲器中沒有找到有關(guān)數(shù)據(jù),那么,調(diào)用例行程序來創(chuàng)建有關(guān)的數(shù)據(jù)。
31.如權(quán)利要求30所述的方法,其特征在于,還包括如果在該本地高速緩沖存儲器中沒有找到有關(guān)的數(shù)據(jù),那么,將所創(chuàng)建的有關(guān)數(shù)據(jù)加入該本地高速緩沖存儲器。
32.如權(quán)利要求30所述的方法,其特征在于,還包括如果在該局部高速緩沖存儲器中沒有找到有關(guān)的數(shù)據(jù),那么,向該高速緩沖存儲器服務(wù)程序發(fā)出請求,要求將所創(chuàng)建的有關(guān)數(shù)據(jù)加入該中央高速緩沖存儲器。
33.如權(quán)利要求21所述的方法,其特征在于,向該高速緩沖存儲器服務(wù)程序發(fā)出請求包括存儲該請求;存儲一個(gè)或多個(gè)其他的請求;以及,向該高速緩沖存儲器服務(wù)程序發(fā)出所存儲的請求。
34.如權(quán)利要求21所述的方法,其特征在于,還包括檢驗(yàn)該中央高速緩沖存儲器,以了解該中央高速緩沖存儲器是否被標(biāo)記為過時(shí);以及,如果該中央高速緩沖存儲器被標(biāo)記為過時(shí),那么,使用該過時(shí)的中央高速緩沖存儲器中的參考來對另一個(gè)中央高速緩沖存儲器進(jìn)行定位。
35.如權(quán)利要求21所述的方法,其特征在于,還包括收集有關(guān)該應(yīng)用程序?qū)υ撝醒敫咚倬彌_存儲器的使用的統(tǒng)計(jì)數(shù)字;以及,將所收集的統(tǒng)計(jì)數(shù)字發(fā)給該高速緩沖存儲器服務(wù)程序。
36.一種包含用于執(zhí)行一種方法的指令的計(jì)算機(jī)可讀介質(zhì),該方法供應(yīng)用程序用來嘗試存取有關(guān)的數(shù)據(jù),其特征在于,包括搜索中央高速緩沖存儲器中的有關(guān)數(shù)據(jù);確定是否在該中央高速緩沖存儲器中找到有關(guān)數(shù)據(jù);如果在該中央高速緩沖存儲器中找到有關(guān)數(shù)據(jù),那么,存取該中央高速緩沖存儲器中的有關(guān)數(shù)據(jù);以及,如果在該中央高速緩沖存儲器中沒有找到有關(guān)數(shù)據(jù),那么嘗試在除該中央高速緩沖存儲器中以外的其他地方存取有關(guān)的數(shù)據(jù);以及,向與該應(yīng)用程序截然不同的高速緩沖存儲器服務(wù)程序發(fā)出請求,要求將有關(guān)的數(shù)據(jù)加入該中央高速緩沖存儲器。
37.一種方法,供計(jì)算設(shè)備的用戶用來改變高速緩沖存儲器服務(wù)程序的參數(shù),其特征在于,包括當(dāng)該高速緩沖存儲器服務(wù)程序用從現(xiàn)存的中央高速緩沖存儲器中所選擇的數(shù)據(jù)元素來填充新的中央高速緩沖存儲器時(shí),顯示將要由該高速緩沖存儲器服務(wù)程序來使用的試探法,該選擇至少部分地基于該試探法;從用戶那里接收新的試探法的指示;顯示該新的試探法;以及,使該高速緩沖存儲器服務(wù)程序可以存取該新的試探法。
38.如權(quán)利要求37所述的方法,其特征在于,從小組中選擇該新的試探法,該小組包括最新近使用的、最頻繁使用的和循環(huán)法。
39.如權(quán)利要求37所述的方法,其特征在于,還包括顯示該現(xiàn)存的中央高速緩沖存儲器的當(dāng)前尺寸;顯示該現(xiàn)存的中央高速緩沖存儲器的最大容許尺寸;從該用戶那里接收新的最大容許尺寸的指示;顯示這個(gè)新的最大容許尺寸;以及,使該高速緩沖存儲器服務(wù)程序可以存取這個(gè)新的最大容許尺寸。
40.如權(quán)利要求37所述的方法,其特征在于,還包括顯示該現(xiàn)存的中央高速緩沖存儲器的使用統(tǒng)計(jì)數(shù)字。
41.一種包含用于執(zhí)行一種方法的指令的計(jì)算機(jī)可讀介質(zhì),該方法供計(jì)算設(shè)備的用戶用來改變高速緩沖存儲器服務(wù)程序的參數(shù),其特征在于,包括當(dāng)該高速緩沖存儲器服務(wù)程序用從現(xiàn)存的中央高速緩沖存儲器中所選擇的數(shù)據(jù)元素來填充新的中央高速緩沖存儲器時(shí),顯示將要由該高速緩沖存儲器服務(wù)程序來使用的試探法,該選擇至少部分地基于該試探法;從該用戶那里接收新的試探法的指示;顯示這個(gè)新的試探法;以及,使該高速緩沖存儲器服務(wù)程序可以存取這個(gè)新的試探法。
42.一種其上存儲有高速緩沖存儲器的數(shù)據(jù)結(jié)構(gòu)的計(jì)算機(jī)可讀介質(zhì),該高速緩沖存儲器數(shù)據(jù)結(jié)構(gòu)包括第一數(shù)據(jù)區(qū),它包含表示頭部的數(shù)據(jù);第二數(shù)據(jù)區(qū),它包含表示對多個(gè)數(shù)據(jù)元素的參考表格的數(shù)據(jù);以及,第三數(shù)據(jù)區(qū),它包含表示這多個(gè)數(shù)據(jù)元素的數(shù)據(jù),其中,這第二數(shù)據(jù)區(qū)包括到這第三數(shù)據(jù)區(qū)中的數(shù)據(jù)元素的整數(shù)偏移量。
43.如權(quán)利要求42所述的高速緩沖存儲器數(shù)據(jù)結(jié)構(gòu),其特征在于,這第一數(shù)據(jù)區(qū)包括第四數(shù)據(jù)區(qū),它包含表示用于將該高速緩沖存儲器標(biāo)記為過時(shí)的標(biāo)志的數(shù)據(jù);以及,第五數(shù)據(jù)區(qū),它包含表示對另一個(gè)高速緩沖存儲器的參考的數(shù)據(jù)。
44.如權(quán)利要求42所述的高速緩沖存儲器數(shù)據(jù)結(jié)構(gòu),其特征在于,這第三數(shù)據(jù)區(qū)中的一個(gè)數(shù)據(jù)元素包括第四數(shù)據(jù)區(qū),它包含表示到這第三數(shù)據(jù)區(qū)中的另一個(gè)數(shù)據(jù)元素的整數(shù)偏移量的數(shù)據(jù);第五數(shù)據(jù)區(qū),它包含表示數(shù)據(jù)元素類型標(biāo)識符的數(shù)據(jù);以及,第六數(shù)據(jù)區(qū),它包含表示特定數(shù)據(jù)元素?cái)?shù)據(jù)的數(shù)據(jù)。
45.如權(quán)利要求44所述的高速緩沖存儲器數(shù)據(jù)結(jié)構(gòu),其特征在于,該特定數(shù)據(jù)元素?cái)?shù)據(jù)包括字體圖示符。
46.一種用于將數(shù)據(jù)存儲在中央高速緩沖存儲器中并且用于存取被存儲在中央高速緩沖存儲器中的數(shù)據(jù)的系統(tǒng),其特征在于,包括用于存儲數(shù)據(jù)的該中央高速緩沖存儲器;多個(gè)應(yīng)用程序,用于嘗試存取該中央高速緩沖存儲器中的有關(guān)的數(shù)據(jù),并且,如果在該中央高速緩沖存儲器中沒有找到有關(guān)的數(shù)據(jù),則用于要求將有關(guān)的數(shù)據(jù)加入該中央高速緩沖存儲器;以及,與這些應(yīng)用程序截然不同的高速緩沖存儲器服務(wù)程序,用于將有關(guān)的數(shù)據(jù)加入該中央高速緩沖存儲器,同時(shí)允許這些應(yīng)用程序?qū)υ撝醒敫咚倬彌_存儲器進(jìn)行讀訪問。
全文摘要
揭示了一種中央高速緩沖存儲器,該中央高速緩沖存儲器的更新無需鎖定管理費(fèi)用。更新是“原子性的”,這體現(xiàn)在這些更新無法被中途打斷。應(yīng)用程序始終自由地讀取該高速緩沖存儲器中的數(shù)據(jù),從而通過參考表格來存取該數(shù)據(jù)。應(yīng)用程序不是直接更新該高速緩沖存儲器,相反,它們將更新請求發(fā)送到服務(wù)程序。為了更新該高速緩沖存儲器,該服務(wù)程序在兩個(gè)階段中進(jìn)行。在第一個(gè)階段中,該服務(wù)程序準(zhǔn)備該新數(shù)據(jù),并將其加入該高速緩沖存儲器,而不會更新該參考表格。在第一個(gè)階段期間,存取該高速緩沖存儲器的應(yīng)用程序無法“看見”該新數(shù)據(jù),因?yàn)檫€沒有更新該參考表格。在第一個(gè)階段完成之后,該服務(wù)程序執(zhí)行該更新過程的第二個(gè)階段利用原子性來更新該參考表格。該雙相更新過程使該高速緩沖存儲器始終處于一致狀態(tài)。
文檔編號G06F9/46GK1517885SQ20041000350
公開日2004年8月4日 申請日期2004年1月29日 優(yōu)先權(quán)日2003年1月28日
發(fā)明者D·C·布朗, D C 布朗, M·V·利昂諾夫, 利昂諾夫, M·M·伯德, 伯德 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1