專利名稱:存儲(chǔ)集群中的自適應(yīng)功率保存的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總的涉及功率保存。更具體地,本發(fā)明涉及存儲(chǔ)集群中的功率保存。
背景技術(shù):
當(dāng)前,正在進(jìn)行普遍的努力以減小計(jì)算機(jī)的電力消耗,從而推動(dòng)所謂的“綠色”技術(shù)并解決全球氣候變化。但是,除了這些長(zhǎng)期目標(biāo)之外,減小的功率消耗還能夠?yàn)槠髽I(yè)主提供立即見(jiàn)效的節(jié)省。計(jì)算機(jī)系統(tǒng)使用的功率的減少不僅意味著計(jì)算機(jī)系統(tǒng)自身的電費(fèi)降低,而且功率減小還將意味著計(jì)算機(jī)系統(tǒng)的冷卻成本減少。對(duì)于管理大量數(shù)據(jù)中心的企業(yè),冷卻計(jì)算機(jī)機(jī)架所需的功率的減小會(huì)具有非常重要意義。對(duì)于這些企業(yè),冷卻容量 (capacity)的減小還意味著數(shù)據(jù)中心所需的冷卻基礎(chǔ)設(shè)置減少以及所需的不動(dòng)產(chǎn)減少。因此,通常理想的是保存計(jì)算機(jī)存儲(chǔ)集群中的功率,以節(jié)省錢(qián)并減少必需的冷卻。 但是,在客戶應(yīng)用一直向集群寫(xiě)入并從集群讀取的存儲(chǔ)集群中并且在存儲(chǔ)集群自身評(píng)價(jià)其自己的數(shù)字對(duì)象完整性并進(jìn)行數(shù)字對(duì)象的必要拷貝時(shí),設(shè)計(jì)功率保存方案是具有挑戰(zhàn)性的。因此,需要這樣一種技術(shù)和系統(tǒng)其將減少計(jì)算機(jī)集群中的功率消耗,同時(shí)仍允許客戶應(yīng)用進(jìn)行必要的訪問(wèn),并將維持集群內(nèi)的對(duì)象完整性。
發(fā)明內(nèi)容
為了實(shí)現(xiàn)以上所述,并且根據(jù)本發(fā)明的目的,公開(kāi)了一種功率保存技術(shù)。可以理解的是通過(guò)在卷(volume)不在使用中時(shí)使磁盤(pán)驅(qū)動(dòng)器旋轉(zhuǎn)減慢以及通過(guò)在節(jié)點(diǎn)不在使用中時(shí)減少CPU使用來(lái)保存功率,對(duì)存儲(chǔ)集群是有利的。本發(fā)明提出了一種機(jī)制,通過(guò)該機(jī)制,使用不足的集群能夠開(kāi)始使磁盤(pán)旋轉(zhuǎn)減慢, 并減少節(jié)點(diǎn)CPU的使用。目標(biāo)不是特意地減少可用的處理能力以保存功率,而是辨識(shí)處理能力要求何時(shí)較低并采取行動(dòng)以保存功率。在夜間或周末休眠的集群或者對(duì)于寫(xiě)入/讀取 /刪除操作不常使用的集群將在休眠時(shí)期期間享受到顯著的功率使用減小,或許高達(dá)80% 至90%。集群的后續(xù)訪問(wèn)將自動(dòng)地喚醒一個(gè)或多個(gè)節(jié)點(diǎn)來(lái)執(zhí)行請(qǐng)求并最終可以恢復(fù)整個(gè)集群。盡管在對(duì)睡眠節(jié)點(diǎn)的首次訪問(wèn)時(shí)將出現(xiàn)附加的等待時(shí)間,但可得到的最大處理能力將不受影響。該方法的優(yōu)點(diǎn)包括本發(fā)明能夠根據(jù)客戶應(yīng)用的大幅變化的使用方式進(jìn)行調(diào)節(jié); 每個(gè)節(jié)點(diǎn)和卷關(guān)于何時(shí)睡眠和蘇醒作出其自己各自的決定;以及整個(gè)集群可以完全休眠。 本發(fā)明不需要管理員設(shè)計(jì)更復(fù)雜的子集群布置以適應(yīng)功率保存;并且,存在基本為零的管理日常支出。本發(fā)明的第一實(shí)施例允許存儲(chǔ)集群中的計(jì)算機(jī)節(jié)點(diǎn)及其硬盤(pán)各自獨(dú)立地閑置,從而保存功率。第二實(shí)施例允許在整個(gè)存儲(chǔ)集群閑置時(shí)對(duì)存儲(chǔ)集群中的相關(guān)節(jié)點(diǎn)的讀取或?qū)懭朐L問(wèn)而不需要喚醒整個(gè)集群。第三實(shí)施例使用用于存檔應(yīng)用的存檔模式,在該模式下,某些節(jié)點(diǎn)保持閑置和空載,直至被需要。第四實(shí)施例允許在集群已經(jīng)閑置預(yù)定時(shí)間之后發(fā)生整個(gè)集群的健康處理。第五實(shí)施例使用固態(tài)驅(qū)動(dòng)器(SSD)來(lái)消除由于旋轉(zhuǎn)加快延時(shí)造成的閑置集群的初始等待時(shí)間。
通過(guò)參照結(jié)合附圖進(jìn)行的下面描述,本發(fā)明連同其進(jìn)一步的優(yōu)點(diǎn)可以得到最佳的理解,在附圖中圖1示出了用于本發(fā)明的操作的環(huán)境。圖2是流程圖,描繪了在正常操作中客戶應(yīng)用如何將文件寫(xiě)入到存儲(chǔ)集群中。圖3是流程圖,描繪了節(jié)點(diǎn)如何從活動(dòng)狀態(tài)轉(zhuǎn)變到閑置狀態(tài)。圖4是流程圖,描繪了閑置的集群如何處理讀取請(qǐng)求。圖5是流程圖,描繪了閑置的集群如何處理寫(xiě)入請(qǐng)求。圖6A和6B示出了適于執(zhí)行本發(fā)明的實(shí)施例的計(jì)算機(jī)系統(tǒng)。
具體實(shí)施例方式本發(fā)明可以利用任何合適的計(jì)算機(jī)硬件和軟件來(lái)執(zhí)行。存儲(chǔ)集群可以包括任何數(shù)量的計(jì)算機(jī)節(jié)點(diǎn)。優(yōu)選地,每個(gè)節(jié)點(diǎn)包括CPU(或多個(gè)CPU)、操作系統(tǒng)、通向其他節(jié)點(diǎn)(或至少中央路由器)的通信鏈路、以及任何數(shù)量的內(nèi)部硬盤(pán)驅(qū)動(dòng)器或固態(tài)驅(qū)動(dòng)器(即,從零到N 個(gè))。一般地,每個(gè)節(jié)點(diǎn)包括至少一個(gè)驅(qū)動(dòng)器,并且可以存在硬盤(pán)驅(qū)動(dòng)器與固態(tài)驅(qū)動(dòng)器的任何組合。集群一般為固定內(nèi)容存儲(chǔ)集群,這意味著其用于備份、長(zhǎng)期存儲(chǔ)、存檔等,并且一般不用于對(duì)計(jì)算機(jī)文件的每日訪問(wèn)。通常稱為WORM(—次寫(xiě)入,多次讀取)存儲(chǔ)器,這意味著一旦計(jì)算機(jī)文件或數(shù)字對(duì)象被寫(xiě)入到集群中,便不能被改變。(當(dāng)然,計(jì)算機(jī)文件的修改版本也可以存儲(chǔ)在集群內(nèi))。集群可以執(zhí)行為獨(dú)立節(jié)點(diǎn)冗余陣列(RAIN),這意味著每個(gè)節(jié)點(diǎn)運(yùn)行其自己的操作系統(tǒng)并作出關(guān)于集群內(nèi)的存儲(chǔ)的獨(dú)立的決定。存儲(chǔ)集群可以構(gòu)建在片式機(jī)、塔式機(jī)、個(gè)人計(jì)算機(jī)和服務(wù)器上??商娲兀瑔蝹€(gè)計(jì)算機(jī)箱內(nèi)的多核處理器可以支持在每個(gè)核上運(yùn)行的虛擬存儲(chǔ)節(jié)點(diǎn),這意味著具有多個(gè)節(jié)點(diǎn)的存儲(chǔ)集群可以存在于單個(gè)計(jì)算機(jī)箱內(nèi)。另外,單個(gè)物理箱內(nèi)的計(jì)算機(jī)系統(tǒng)可以包括多個(gè)CPU,在這種情況下,每個(gè)CPU可以表示節(jié)點(diǎn),并且存儲(chǔ)集群可以在該單個(gè)物理箱內(nèi)執(zhí)行。圖1示出了用于本發(fā)明的操作的環(huán)境10。包括有存儲(chǔ)集群20、客戶應(yīng)用30、管理控制臺(tái)40、任何數(shù)量的計(jì)算機(jī)節(jié)點(diǎn)51-54、以及中央路由器70。如上所述,計(jì)算機(jī)節(jié)點(diǎn)是物理文件服務(wù)器,其優(yōu)選地包括至少一個(gè)CPU和任何數(shù)量的磁盤(pán)驅(qū)動(dòng)器、固態(tài)驅(qū)動(dòng)器或具有這兩種類型的混合驅(qū)動(dòng)器。每個(gè)節(jié)點(diǎn)執(zhí)行諸如Debian Linux的操作系統(tǒng),并執(zhí)行處理以管理節(jié)點(diǎn)之間的對(duì)等通信,從而執(zhí)行健康的處理,并代表節(jié)點(diǎn)及其卷作出獨(dú)立的決定。每個(gè)節(jié)點(diǎn)還包括管理軟件,并且其狀態(tài)能夠通過(guò)網(wǎng)頁(yè)瀏覽器在互聯(lián)網(wǎng)上進(jìn)行觀察。在一個(gè)特別的RAIN實(shí)施例中,每個(gè)節(jié)點(diǎn)是IU服務(wù)器(例如,x86服務(wù)器),具有帶標(biāo)準(zhǔn)以太網(wǎng)聯(lián)網(wǎng)能力的1太拉字節(jié)(terabyte)或更多字節(jié)的串口 ATA磁盤(pán)存儲(chǔ)容量。每個(gè)節(jié)點(diǎn)具有IP地址并可以利用基于IP的LAN、MAN或WAN物理地相互連接。因此,每個(gè)節(jié)點(diǎn)可以與單個(gè)節(jié)點(diǎn)進(jìn)行對(duì)話并可以利用路由器70或其他類似的網(wǎng)絡(luò)開(kāi)關(guān)將信息廣播至存儲(chǔ)集群內(nèi)的所有節(jié)點(diǎn)(組播)。每個(gè)節(jié)點(diǎn)包括管理模塊,該管理模塊用于處理來(lái)自客戶應(yīng)用的外部請(qǐng)求(例如,SCSP請(qǐng)求)、節(jié)點(diǎn)間的復(fù)制請(qǐng)求(例如,SCSP間請(qǐng)求)、以及其他節(jié)點(diǎn)間協(xié)議通信(競(jìng)標(biāo) (bidding)、用于信息的請(qǐng)求,等等)。健康處理模塊(將在下面描述)管理每個(gè)節(jié)點(diǎn)的數(shù)字內(nèi)容。管理控制臺(tái)40優(yōu)選是鏈接到存儲(chǔ)集群的網(wǎng)頁(yè)服務(wù)器,其允許通過(guò)任何合適的互聯(lián)網(wǎng)連接訪問(wèn)每個(gè)節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)執(zhí)行能夠用來(lái)觀察和管理整個(gè)集群的冗余管理控制臺(tái)。在一個(gè)實(shí)施例中,利用可以從德州奧斯丁的Caringo公司得到的CAMor內(nèi)容存儲(chǔ)軟件或任何合適的計(jì)算機(jī)硬件來(lái)執(zhí)行存儲(chǔ)集群。在該實(shí)施例中,存儲(chǔ)集群是固定內(nèi)容存儲(chǔ)器并且每個(gè)數(shù)字對(duì)象在集群內(nèi)通過(guò)隨機(jī)的數(shù)字(通用唯一標(biāo)識(shí)符,或UUID)被唯一地尋址, 該UUID是利用真隨機(jī)數(shù)字生成器對(duì)該數(shù)字對(duì)象生成的。利用散列函數(shù)對(duì)每個(gè)數(shù)字對(duì)象的內(nèi)容進(jìn)行驗(yàn)證??蛻糗浖?yīng)用在將數(shù)字對(duì)象存儲(chǔ)在集群中時(shí)接收UUID并通過(guò)將該UUID提供至集群來(lái)檢索該數(shù)字對(duì)象。軟件應(yīng)用利用標(biāo)準(zhǔn)HTTP 1.1,更具體地,利用稱為簡(jiǎn)單內(nèi)容存儲(chǔ)協(xié)議(SCSP)的標(biāo)準(zhǔn)的簡(jiǎn)化子集與CAMor集群進(jìn)行通信。利用該標(biāo)準(zhǔn)接口,客戶應(yīng)用 (例如電子郵件、企業(yè)內(nèi)容管理、健康護(hù)理應(yīng)用、網(wǎng)頁(yè)瀏覽器、Web 2. O、圖片共享、社交媒體網(wǎng)站、安全視頻、視頻編輯,等等)可以訪問(wèn)CAMor存儲(chǔ)集群。另外,直接HTTP訪問(wèn)對(duì)瀏覽器、JAVA、Python、C++和其他軟件環(huán)境是可用的。碰本發(fā)明允許集群中的每個(gè)節(jié)點(diǎn)和卷基于該集群在可配置時(shí)期內(nèi)實(shí)際處理來(lái)自外部客戶應(yīng)用的請(qǐng)求以及節(jié)點(diǎn)之間的復(fù)制請(qǐng)求的頻率關(guān)于是否減少其功耗作出獨(dú)立的決定。 使用稱為“休眠后(sle印After) ”和“醒來(lái)后(wakeAfter) ”的兩個(gè)節(jié)點(diǎn)配置參數(shù),這兩個(gè)參數(shù)例如都是整數(shù)秒(這些參數(shù)不需要對(duì)于集群中的所有節(jié)點(diǎn)都具有相同的值)。如果節(jié)點(diǎn)沒(méi)有在最后的sle印After秒內(nèi)處理過(guò)來(lái)自客戶應(yīng)用的請(qǐng)求(讀取或?qū)懭?或來(lái)自另一個(gè)節(jié)點(diǎn)的類似請(qǐng)求,其將開(kāi)始休息。如果繼續(xù)沒(méi)有要求讀取或?qū)懭氲耐獠恳?例如,如在夜間或周末所預(yù)見(jiàn)的那樣),那么最終節(jié)點(diǎn)及所有其卷將變?yōu)橥耆菝摺?當(dāng)客戶應(yīng)用一旦重新開(kāi)始發(fā)送請(qǐng)求時(shí),集群中的節(jié)點(diǎn)中的一個(gè)或多個(gè)將醒來(lái),以處理這些請(qǐng)求。即使長(zhǎng)時(shí)間沒(méi)有檢測(cè)到外部活動(dòng),每個(gè)節(jié)點(diǎn)也將在已經(jīng)閑置了 wakeAfter秒之后醒來(lái),使其能夠周期性地執(zhí)行其健康處理事務(wù)(確保數(shù)字對(duì)象的至少最小數(shù)量的指定拷貝存在于集群內(nèi))。使用競(jìng)標(biāo)處理,每個(gè)節(jié)點(diǎn)通過(guò)該競(jìng)標(biāo)處理計(jì)算競(jìng)標(biāo)值,該競(jìng)標(biāo)值反映了該節(jié)點(diǎn)寫(xiě)入數(shù)字對(duì)象、讀取數(shù)字對(duì)象或復(fù)制數(shù)字對(duì)象(在該節(jié)點(diǎn)上保留拷貝的成本)的成本是多少。 通常,節(jié)點(diǎn)通過(guò)向請(qǐng)求來(lái)自所有可用節(jié)點(diǎn)的競(jìng)標(biāo)的初次訪問(wèn)節(jié)點(diǎn)投標(biāo)而對(duì)這些寫(xiě)入、讀取和復(fù)制請(qǐng)求進(jìn)行競(jìng)標(biāo)。競(jìng)標(biāo)是數(shù)值,并且競(jìng)標(biāo)越低,節(jié)點(diǎn)贏得處理請(qǐng)求的機(jī)會(huì)的機(jī)會(huì)則越大。寫(xiě)入是從客戶應(yīng)用取得數(shù)字對(duì)象并將其存儲(chǔ)在集群的節(jié)點(diǎn)中的磁盤(pán)上的過(guò)程。讀取是接受來(lái)自客戶應(yīng)用的用于數(shù)字對(duì)象的唯一標(biāo)識(shí)符、在集群中的磁盤(pán)上找到數(shù)字對(duì)象、以及然后將該對(duì)象返回到客戶應(yīng)用的過(guò)程。復(fù)制請(qǐng)求確定將數(shù)字對(duì)象的拷貝存儲(chǔ)在集群內(nèi)的節(jié)點(diǎn)上的成本(假定復(fù)制因子等于2,那么集群中需要兩個(gè)拷貝的數(shù)字對(duì)象)。復(fù)制請(qǐng)求之后的競(jìng)標(biāo)結(jié)果可以涉及拷貝和存儲(chǔ)對(duì)象的另一個(gè)拷貝。為了保存集群中的功率,競(jìng)標(biāo)將考慮節(jié)點(diǎn)是否閑置、節(jié)點(diǎn)的容量、節(jié)點(diǎn)在過(guò)去幾分鐘內(nèi)有多忙、有哪些類型的磁盤(pán)驅(qū)動(dòng)器可用、 以及節(jié)點(diǎn)的當(dāng)前狀態(tài)。具有最低競(jìng)標(biāo)的節(jié)點(diǎn)贏得寫(xiě)入、讀取或復(fù)制的機(jī)會(huì)。復(fù)制競(jìng)標(biāo)反映了將數(shù)字對(duì)象的一個(gè)拷貝保持在其所在處的成本。健康處理將使用復(fù)制競(jìng)標(biāo)來(lái)決定是否移動(dòng)一個(gè)拷貝到不同的節(jié)點(diǎn)。基本上,健康處理向每個(gè)節(jié)點(diǎn)詢問(wèn)是否具有該數(shù)字對(duì)象的一個(gè)拷貝以及保持其在該處的成本是多少。每個(gè)節(jié)點(diǎn)通過(guò)計(jì)算其復(fù)制競(jìng)標(biāo)并將其提供給健康處理模塊來(lái)進(jìn)行響應(yīng)。閑置節(jié)點(diǎn)通過(guò)暫停其健康處理并改變其競(jìng)標(biāo)(將在下面描述)以使其優(yōu)選不讀取、寫(xiě)入或復(fù)制數(shù)據(jù)流給另一個(gè)節(jié)點(diǎn)來(lái)減少其功耗。其操作系統(tǒng)將注意到使用減少并將相應(yīng)地降低CPU時(shí)鐘速度和功耗。以高時(shí)鐘速度運(yùn)行處理器允許更好的性能。然而,當(dāng)同一處理器在較低頻率(速度)下運(yùn)行時(shí),其產(chǎn)生較少的熱并消耗較少的功率。在很多情況下,還能夠降低核心電壓,從而進(jìn)一步減少功耗和熱生成。這能夠保存存儲(chǔ)服務(wù)器中的電池功率,延長(zhǎng)處理器壽命,并且減少可變速風(fēng)扇產(chǎn)生的噪聲。大多數(shù)英特爾芯片組都具有 SpeedStep 技術(shù)以在處理器要做的工作較少時(shí)自動(dòng)地降低CPU時(shí)鐘速度。來(lái)自AMD的稱為PowerNow ! 的類似技術(shù)完成對(duì)該公司的芯片組同樣的用途。閑置的卷主要通過(guò)斷開(kāi)磁盤(pán)I/O以及使其磁盤(pán)旋轉(zhuǎn)減慢來(lái)降低其功耗。當(dāng)節(jié)點(diǎn)變?yōu)殚e置時(shí),一些或全部其卷可能仍然是活動(dòng)的,并且工作于未完成的節(jié)點(diǎn)任務(wù)。卷僅當(dāng)其在過(guò)去的sle印After秒內(nèi)已經(jīng)沒(méi)有I/O活動(dòng)時(shí)才轉(zhuǎn)變到閑置狀態(tài)并使其磁盤(pán)旋轉(zhuǎn)減慢。詳細(xì)設(shè)計(jì)使用四個(gè)集群范圍配置參數(shù)sle印After,即在活動(dòng)節(jié)點(diǎn)或卷變?yōu)殚e置之前不活動(dòng)的秒數(shù)(缺省為2小時(shí));wakeAfter,即在閑置節(jié)點(diǎn)重新變?yōu)榛顒?dòng)之前不活動(dòng)的秒數(shù)(缺省為8小時(shí));idleCost (閑置成本),即所增加的讀取和寫(xiě)入用于閑置節(jié)點(diǎn)的競(jìng)標(biāo)的競(jìng)標(biāo)補(bǔ)貼(bid premium)(缺省為10);以及implication factor (復(fù)制因子),即存儲(chǔ)集群內(nèi)必須保持的每個(gè)數(shù)字對(duì)象的拷貝數(shù)(缺省為2,但每個(gè)對(duì)象可以含有構(gòu)建該參數(shù)的元數(shù)據(jù))。 這些參數(shù)存儲(chǔ)于在啟動(dòng)時(shí)間發(fā)送至每個(gè)節(jié)點(diǎn)的集群配置文件中。存檔模式(archive mode)設(shè)定被提供給每個(gè)節(jié)點(diǎn),用于執(zhí)行存檔的那些應(yīng)用。該設(shè)定(一般為二元值)通過(guò)從100減去寫(xiě)入競(jìng)標(biāo)值以獲得新的寫(xiě)入競(jìng)標(biāo)值來(lái)改變節(jié)點(diǎn)上的所有卷的正常寫(xiě)入競(jìng)標(biāo)值。在使用時(shí),該設(shè)定限定節(jié)點(diǎn)如何競(jìng)標(biāo)寫(xiě)入,試圖盡可能長(zhǎng)時(shí)間地保持節(jié)點(diǎn)休眠。真正的存檔應(yīng)用對(duì)寫(xiě)入和讀取處理能力沒(méi)有特別高的要求,特別是與非常大的集群的總處理能力容量相比。用于計(jì)算寫(xiě)入競(jìng)標(biāo)和復(fù)制競(jìng)標(biāo)的正常競(jìng)標(biāo)算法試圖在集群中的所有節(jié)點(diǎn)之間統(tǒng)一地加載平衡以使處理能力最大化,但是該平衡具有不期望的剝奪節(jié)點(diǎn)的休眠的副作用。集群管理員可以選擇指定一些或所有節(jié)點(diǎn)處于存檔模式。一般地, 足夠大以處理峰值處理能力要求的節(jié)點(diǎn)的核心組將是非存檔的。完全為了增加容量而增加的新的節(jié)點(diǎn)能夠被指定為存檔節(jié)點(diǎn)并將一直休眠,直至被需要。對(duì)于這些應(yīng)用,存檔模式設(shè)定對(duì)于寫(xiě)入請(qǐng)求基本上改變節(jié)點(diǎn)上的所有卷的正常競(jìng)標(biāo)樣式??蛰d或幾乎空載的卷將優(yōu)選不寫(xiě)入數(shù)據(jù)流,而較滿的卷極度地試圖存儲(chǔ)越來(lái)越多的數(shù)據(jù),直到其臨達(dá)到容量之前。節(jié)點(diǎn)在要求其他較空的卷變?yōu)榛顒?dòng)之前將試圖填滿其幾乎滿載的卷。結(jié)果是新的相對(duì)較空的節(jié)點(diǎn)將不能贏得任何寫(xiě)入競(jìng)標(biāo),將不處理客戶應(yīng)用寫(xiě)入請(qǐng)求,并將繼續(xù)休眠,這是存檔應(yīng)用中理想的。在本公開(kāi)中描述的功率保持機(jī)制的情況下并假定這種類型的存檔改變競(jìng)標(biāo),期望添加到集群的新的節(jié)點(diǎn)或卷保持在低功率模式下閑置,直至實(shí)際需要其容量。較早的節(jié)點(diǎn)和卷將繼續(xù)被使用,直至其變的幾乎滿載,此時(shí),這些節(jié)點(diǎn)和卷也將開(kāi)始休眠。為了保存功率,每個(gè)節(jié)點(diǎn)都能夠轉(zhuǎn)變到閑置狀態(tài)。如果節(jié)點(diǎn)在最后的sle印After秒內(nèi)沒(méi)有檢測(cè)到來(lái)自其他節(jié)點(diǎn)的進(jìn)行讀取或?qū)懭氲目蛻魬?yīng)用請(qǐng)求或類似的請(qǐng)求,那么其將進(jìn)入閑置狀態(tài);在該狀態(tài)下,節(jié)點(diǎn)開(kāi)始減少其CPU使用并改變其競(jìng)標(biāo)措施以保存功率。前者簡(jiǎn)單地通過(guò)在處于閑置模式時(shí)使節(jié)點(diǎn)的健康處理模塊暫停來(lái)實(shí)現(xiàn)。CPU使用的減少將通過(guò)自動(dòng)地降低CPU和RAM的時(shí)鐘速度使操作系統(tǒng)和CPU自身保存功率,使用較少的功率,產(chǎn)生較少的熱,并且使冷卻風(fēng)扇也能夠較慢地運(yùn)行并使用較少的功率。如上所述,節(jié)點(diǎn)使用競(jìng)標(biāo)來(lái)與其他節(jié)點(diǎn)競(jìng)爭(zhēng)。將在下面描述的競(jìng)標(biāo)變化旨在使閑置節(jié)點(diǎn)對(duì)于讀取、寫(xiě)入、刪除和需要將文件從閑置節(jié)點(diǎn)移動(dòng)的復(fù)制(即,需要磁盤(pán)訪問(wèn)的動(dòng)作)贏得將來(lái)的競(jìng)標(biāo)的可能性較低。如果集群中的其他節(jié)點(diǎn)仍然是醒著的,那么這些節(jié)點(diǎn)將更可能處理這些請(qǐng)求,從而允許閑置節(jié)點(diǎn)保持休眠。注意,閑置節(jié)點(diǎn)仍響應(yīng)于節(jié)點(diǎn)間協(xié)議消息,并還可繼續(xù)工作于未完成的工作,如已經(jīng)排隊(duì)等候的復(fù)制請(qǐng)求和來(lái)自其自己的健康處理器的請(qǐng)求以讀取和檢查對(duì)象的完整性。閑置節(jié)點(diǎn)在其健康處理暫停并且其競(jìng)標(biāo)是“閑散的”這一意義上來(lái)說(shuō)是閑置的。 其將在被要求這樣做的情況下繼續(xù)用作主訪問(wèn)節(jié)點(diǎn)(PAN,Primary Access Node),并將繼續(xù)響應(yīng)于來(lái)自其他節(jié)點(diǎn)的節(jié)點(diǎn)間協(xié)議詢問(wèn),所有這些詢問(wèn)都僅僅利用存儲(chǔ)器內(nèi)的結(jié)構(gòu)(而不是訪問(wèn)磁盤(pán))來(lái)回答。作為PAN來(lái)處理外部請(qǐng)求將不喚醒休眠的節(jié)點(diǎn)(轉(zhuǎn)變到活動(dòng)狀態(tài)),除非該節(jié)點(diǎn)實(shí)際上贏得了競(jìng)標(biāo)。當(dāng)節(jié)點(diǎn)處于閑置狀態(tài)時(shí),其將如下地限定對(duì)于寫(xiě)入、讀取(包括刪除)和復(fù)制的其正常節(jié)點(diǎn)間競(jìng)標(biāo)寫(xiě)入競(jìng)標(biāo)一照常計(jì)算,然后添加idleCost (競(jìng)標(biāo)成本);讀取競(jìng)標(biāo)一照常計(jì)算,然后添加idleCost ;復(fù)制競(jìng)標(biāo)一照常計(jì)算,然后減去 idleCost。即,將已有的副本保持在閑置節(jié)點(diǎn)上的適當(dāng)位置比將其從閑置節(jié)點(diǎn)移走的成本要低??傊x取閑置節(jié)點(diǎn)或?qū)懭氲介e置節(jié)點(diǎn)的成本較高,而保持已有的副本在其位置處成本較低。注意,健康處理使用寫(xiě)入競(jìng)標(biāo)來(lái)決定是否將副本移動(dòng)到閑置節(jié)點(diǎn)上,并使用復(fù)制競(jìng)標(biāo)來(lái)決定是否從閑置節(jié)點(diǎn)移走副本。限定競(jìng)標(biāo)(而非僅僅不對(duì)讀取和寫(xiě)入競(jìng)標(biāo))的原因是為了避免由在其他節(jié)點(diǎn)保持醒著并處理請(qǐng)求時(shí)休眠的一些節(jié)點(diǎn)所導(dǎo)致的阻塞點(diǎn)。盡管這可能在一定時(shí)期內(nèi)發(fā)生,但最終,由醒著的節(jié)點(diǎn)返回的競(jìng)標(biāo)將超過(guò)來(lái)自休眠節(jié)點(diǎn)的競(jìng)標(biāo), 甚至還考慮了閑置補(bǔ)貼的因素。閑置節(jié)點(diǎn)將仍參與節(jié)點(diǎn)間協(xié)議通信,并可仍具有忙碌的卷。在不存在外部客戶應(yīng)用請(qǐng)求、內(nèi)部復(fù)制活動(dòng)和健康處理循環(huán)的情況下,閑置節(jié)點(diǎn)將繼續(xù)處理某些來(lái)自其他節(jié)點(diǎn)的請(qǐng)求。如果所述其他節(jié)點(diǎn)中的一些仍然活動(dòng),則存在大量需要訪問(wèn)磁盤(pán)卷以進(jìn)行響應(yīng)的節(jié)點(diǎn)間消息。這些節(jié)點(diǎn)間消息包括縮減請(qǐng)求一其在存在太多副本時(shí)由另一個(gè)節(jié)點(diǎn)發(fā)送; 刪除詢問(wèn)一其在另一個(gè)節(jié)點(diǎn)響應(yīng)于動(dòng)態(tài)刪除而刪除了數(shù)據(jù)流之后被發(fā)送;版本詢問(wèn)一其由另一個(gè)節(jié)點(diǎn)發(fā)送,以詢問(wèn)固定流(anchor stream)的版本數(shù)量;以及版本通知一其在確定了存在陳舊的易變對(duì)象時(shí)由另一個(gè)節(jié)點(diǎn)發(fā)送。由于這些節(jié)點(diǎn)間請(qǐng)求將需要被處理,所以閑置節(jié)點(diǎn)一般將不能使其所有卷都立即旋轉(zhuǎn)減慢。最終,集群中的大多數(shù)或全部的其他節(jié)點(diǎn)也將變?yōu)殚e置,并且節(jié)點(diǎn)間活動(dòng)將減少,并最終全部停止。當(dāng)這發(fā)生時(shí),閑置節(jié)點(diǎn)的卷將開(kāi)始自己變?yōu)殚e置。節(jié)點(diǎn)的每個(gè)卷也具有閑置狀態(tài)。單個(gè)卷將獨(dú)立地決定何時(shí)其應(yīng)當(dāng)使其磁盤(pán)旋轉(zhuǎn)減慢。卷使用與節(jié)點(diǎn)整體使用的相同的標(biāo)準(zhǔn)和參數(shù)來(lái)這樣做。一旦卷注意到其有序的隊(duì)列上已經(jīng)sle印After秒沒(méi)有磁盤(pán)活動(dòng)了,其將轉(zhuǎn)變到卷閑置狀態(tài)并使其磁盤(pán)旋轉(zhuǎn)減慢。與節(jié)點(diǎn)不同,卷不需要每個(gè)wakeAfter秒都醒著,因?yàn)楣?jié)點(diǎn)本身將醒來(lái)并且開(kāi)始在其卷上重復(fù)循環(huán),從而自動(dòng)地使磁盤(pán)重新再旋轉(zhuǎn)加快。固態(tài)驅(qū)動(dòng)器不物理地旋轉(zhuǎn)減慢或旋轉(zhuǎn)加快,而是可以仍然接受和處理作為轉(zhuǎn)變到閑置狀態(tài)或從閑置狀態(tài)轉(zhuǎn)變的一部分的“旋轉(zhuǎn)減慢”和“旋轉(zhuǎn)加快”命令(例如,驅(qū)動(dòng)器可以僅僅確認(rèn)該命令)。連接于其中一個(gè)節(jié)點(diǎn)的管理控制臺(tái)顯示集群狀態(tài)。管理控制臺(tái)還顯示閑置節(jié)點(diǎn)和閑置卷狀態(tài)。與基本從其卷的組合狀態(tài)得到的其他節(jié)點(diǎn)狀態(tài)不同,閑置狀態(tài)對(duì)節(jié)點(diǎn)和卷是獨(dú)立的。換句話說(shuō),節(jié)點(diǎn)可能在所有其卷都活動(dòng)時(shí)處于閑置。還可能的是,活動(dòng)節(jié)點(diǎn)在一段較短的時(shí)期具有閑置的卷。除了反映閑置狀態(tài)之外,管理控制臺(tái)還支持在運(yùn)行時(shí)間從集群狀態(tài)頁(yè)面上的設(shè)定窗口修改對(duì)于sle印After和wakeAfter參數(shù)的集群范圍設(shè)定。由完全閑置的存儲(chǔ)集群處理的第一讀取或?qū)懭胝?qǐng)求可能在一個(gè)或多個(gè)卷醒來(lái)并使其硬盤(pán)旋轉(zhuǎn)加快時(shí)經(jīng)歷異常長(zhǎng)的等待時(shí)間。后續(xù)的操作將很可能返回到此時(shí)旋轉(zhuǎn)的卷,如上所述,因此該附加的等待時(shí)間僅僅出現(xiàn)在第一次請(qǐng)求時(shí)。固態(tài)驅(qū)動(dòng)器(SSD)能夠被用來(lái)減小或消除該附加的等待時(shí)間,因?yàn)楫?dāng)閑置與活動(dòng)基本相同時(shí),與旋轉(zhuǎn)介質(zhì)及其等待時(shí)間相比,固態(tài)驅(qū)動(dòng)器已經(jīng)是功率高效的,即,固態(tài)驅(qū)動(dòng)器并不物理地旋轉(zhuǎn)減慢。然而,與常規(guī)的磁盤(pán)驅(qū)動(dòng)器相比,SSD—般成本更高,并且具有較小的容量。為了對(duì)這些不同的特性進(jìn)行建模,SSD可以與普通的驅(qū)動(dòng)器不同地計(jì)算其競(jìng)標(biāo)。 SSD通常將具有較低的寫(xiě)入競(jìng)標(biāo)和讀取競(jìng)標(biāo),反映了其較高的處理速度,并具有較高的復(fù)制競(jìng)標(biāo),反映了其較小的容量和較高的成本。換句話說(shuō),SSD將優(yōu)選初始存儲(chǔ)新的數(shù)據(jù),但是盡快將其復(fù)制給其他成本較低的介質(zhì)。來(lái)自SSD的競(jìng)標(biāo)(與來(lái)自節(jié)點(diǎn)的其他驅(qū)動(dòng)器的競(jìng)標(biāo)一起)將在計(jì)算用于整個(gè)節(jié)點(diǎn)的競(jìng)標(biāo)值時(shí)被其節(jié)點(diǎn)考慮在內(nèi)。重要地,SSD將不像常規(guī)的卷那樣在處于閑置模式時(shí)調(diào)節(jié)其競(jìng)標(biāo)。由于該行為,閑置集群中的SSD卷將最有可能對(duì)其存儲(chǔ)的數(shù)據(jù)贏得任何寫(xiě)入或讀取競(jìng)標(biāo)。總的效果在于, 含有SSD的閑置集群將以非常短的等待時(shí)間——與沒(méi)有SSD的閑置集群相比——響應(yīng)于請(qǐng)求,而不會(huì)負(fù)面地影響功率節(jié)省特性。健康處理如上所述,每個(gè)節(jié)點(diǎn)的健康處理模塊在節(jié)點(diǎn)的數(shù)字對(duì)象上重復(fù)循環(huán),以確保所有數(shù)字內(nèi)容的完整性,從而確保每個(gè)數(shù)字對(duì)象的適當(dāng)數(shù)量的拷貝存在于存儲(chǔ)集群內(nèi),并將對(duì)象移至成本較低的節(jié)點(diǎn)以保留處理能力。當(dāng)數(shù)字對(duì)象被客戶應(yīng)用首次寫(xiě)入到存儲(chǔ)集群時(shí), 用于該對(duì)象的散列值被計(jì)算并被存儲(chǔ)在可由管理存儲(chǔ)集群的軟件訪問(wèn)(例如,可由健康處理模塊訪問(wèn))的存儲(chǔ)位置中??梢允褂萌魏魏线m的散列函數(shù),例如,MD5算法非常適于該目的。注意,該唯一的散列值用來(lái)確認(rèn)每個(gè)數(shù)字對(duì)象的完整性,并不一定與用來(lái)定位數(shù)字對(duì)象的通用唯一標(biāo)識(shí)符相同。在優(yōu)選實(shí)施例中,用于完整性目的的MD5不同于通用唯一標(biāo)識(shí)符。 集群中每個(gè)節(jié)點(diǎn)的缺省狀態(tài)是執(zhí)行完整性檢查,假定沒(méi)有寫(xiě)入或讀取(“送”或“取”)正在進(jìn)行。每個(gè)節(jié)點(diǎn)的健康處理模塊然后排查節(jié)點(diǎn)的所有數(shù)字內(nèi)容,驗(yàn)證每個(gè)數(shù)字對(duì)象的原始存儲(chǔ)的MD5等于對(duì)該數(shù)字對(duì)象新計(jì)算的MD5。為了確保每個(gè)數(shù)字對(duì)象的適當(dāng)數(shù)量的拷貝存在于存儲(chǔ)集群內(nèi),健康處理模塊使用組播技術(shù)。在一個(gè)實(shí)施例中,在完整性檢查期間無(wú)論何時(shí)文件被接觸到,健康處理模塊都向所有的其他節(jié)點(diǎn)發(fā)送消息,詢問(wèn)其是否具有該數(shù)字對(duì)象以及其繼續(xù)存儲(chǔ)該數(shù)字對(duì)象的成本是多少。對(duì)該組播消息的響應(yīng)將指示存儲(chǔ)集群內(nèi)是否需要更多拷貝的特定文件,并還將指示在每個(gè)節(jié)點(diǎn)上繼續(xù)存儲(chǔ)這樣的拷貝的成本(復(fù)制競(jìng)標(biāo))。即使存儲(chǔ)集群內(nèi)存在數(shù)字對(duì)象的足夠拷貝(如數(shù)字對(duì)象本身的任何元數(shù)據(jù)所限定的,由集群參數(shù)“復(fù)制因子”確定),健康處理模塊可決定將對(duì)象移動(dòng)到成本較低的節(jié)點(diǎn)。 盡管該移動(dòng)可以幫助確保高處理能力(數(shù)據(jù)傳播開(kāi)并且更多的節(jié)點(diǎn)活動(dòng)),但這并不一定對(duì)存檔應(yīng)用是最佳的。存檔應(yīng)用在僅僅幾個(gè)節(jié)點(diǎn)活動(dòng)并存儲(chǔ)數(shù)據(jù)的情況下更好地保存功率。一旦這幾個(gè)節(jié)點(diǎn)滿了,則其能夠變休眠,從而節(jié)省功率。在一定情形下可以使用上面的存檔模式參數(shù)。詳細(xì)流稈2是流程圖,描繪了在正常操作下客戶應(yīng)用如何將文件寫(xiě)入到存儲(chǔ)集群中。在步驟204中,任何合適的客戶應(yīng)用30都期望將數(shù)字對(duì)象(例如任何計(jì)算機(jī)文件、數(shù)字圖像、 數(shù)字電影、健康記錄等)存儲(chǔ)在存儲(chǔ)集群20中??蛻魬?yīng)用發(fā)現(xiàn)或獲得集群內(nèi)的節(jié)點(diǎn)51中的一個(gè)的IP地址并選擇該節(jié)點(diǎn)作為主訪問(wèn)節(jié)點(diǎn)(PAN),利用該主訪問(wèn)節(jié)點(diǎn)來(lái)開(kāi)始存儲(chǔ)過(guò)程。 一般地,客戶應(yīng)用將訪問(wèn)其下一個(gè)寫(xiě)入請(qǐng)求所使用的最后節(jié)點(diǎn)。在步驟208中,客戶應(yīng)用發(fā)送請(qǐng)求201給PAN以存儲(chǔ)數(shù)字對(duì)象。在一個(gè)實(shí)施例中,該請(qǐng)求是HTTP POST請(qǐng)求,該請(qǐng)求包括數(shù)字對(duì)象的字節(jié)的標(biāo)頭和長(zhǎng)度。對(duì)從PAN到客戶的該請(qǐng)求的響應(yīng)是以下幾種中的一種 “是”,PAN能夠存儲(chǔ)對(duì)象;“否”,此處為存儲(chǔ)對(duì)象的更好的節(jié)點(diǎn);或者“否”,該集群內(nèi)沒(méi)有節(jié)點(diǎn)能夠存儲(chǔ)該對(duì)象。在步驟212中,PAN接收該請(qǐng)求并通過(guò)向集群內(nèi)的所有節(jié)點(diǎn)發(fā)送組播消息進(jìn)行響應(yīng),其中該組播消息指示要存儲(chǔ)的數(shù)字對(duì)象及其字節(jié)的大小,以確定將使用哪個(gè)節(jié)點(diǎn)來(lái)存儲(chǔ)對(duì)象。在步驟216中,每個(gè)節(jié)點(diǎn)(包括PAN)計(jì)算對(duì)于該數(shù)字對(duì)象的寫(xiě)入競(jìng)標(biāo)并將該競(jìng)標(biāo)值返回給PAN。寫(xiě)入競(jìng)標(biāo)值反映了將數(shù)字對(duì)象存儲(chǔ)在每個(gè)節(jié)點(diǎn)上的成本并在當(dāng)前被執(zhí)行為從0到100的值。較低的競(jìng)標(biāo)意味著將對(duì)象存儲(chǔ)在該節(jié)點(diǎn)上成本較低并且該節(jié)點(diǎn)更有可能贏得競(jìng)標(biāo)。用來(lái)計(jì)算用于節(jié)點(diǎn)的寫(xiě)入競(jìng)標(biāo)值的因素包括節(jié)點(diǎn)有多滿,數(shù)字對(duì)象的大小,節(jié)點(diǎn)是活動(dòng)的還是閑置的,節(jié)點(diǎn)近期有多忙碌,哪些類型的卷是可用的(固態(tài)驅(qū)動(dòng)器,磁盤(pán)驅(qū)動(dòng)器,等等)及其各個(gè)競(jìng)標(biāo),以及卷的狀態(tài)(休息,閑置,等等)。換句話說(shuō),節(jié)點(diǎn)的競(jìng)標(biāo)從其卷中的每個(gè)的各個(gè)競(jìng)標(biāo)得到。節(jié)點(diǎn)對(duì)每個(gè)卷計(jì)算存儲(chǔ)成本,采用最低(最佳)值,并且然后使用該最低值來(lái)如上所述地計(jì)算其自己的節(jié)點(diǎn)-水平競(jìng)標(biāo)。節(jié)點(diǎn)可以具有很多具有不同競(jìng)標(biāo)的驅(qū)動(dòng)器,因?yàn)檫@些驅(qū)動(dòng)器具有不同的容量,或者這些驅(qū)動(dòng)器處于不同的狀態(tài),等等。PAN然后選擇具有最低競(jìng)標(biāo)值的節(jié)點(diǎn),并且控制移動(dòng)到步驟220或步驟232。在步驟220中,PAN具有最低的競(jìng)標(biāo)并且其通過(guò)將“繼續(xù)”消息發(fā)送回至客戶應(yīng)用來(lái)進(jìn)行響應(yīng)。 作為響應(yīng),客戶在步驟224中發(fā)送數(shù)字對(duì)象給PAN,并且在步驟228中,PAN存儲(chǔ)數(shù)字對(duì)象, 計(jì)算通用唯一標(biāo)識(shí)符并將該標(biāo)識(shí)符返回至客戶應(yīng)用。另一方面,如果PAN失去競(jìng)標(biāo),那么在步驟232中,PAN將客戶應(yīng)用重新引導(dǎo)至然后將處理請(qǐng)求的具有最低競(jìng)標(biāo)的節(jié)點(diǎn)53Q02),即輔助訪問(wèn)節(jié)點(diǎn)(SAN,Secondary Access Node)。然后在步驟236中,客戶應(yīng)用發(fā)送相同的請(qǐng)求給SAN (如在步驟208中那樣),并且節(jié)點(diǎn)在步驟MO中通過(guò)將“繼續(xù)”消息發(fā)送回至客戶應(yīng)用來(lái)進(jìn)行響應(yīng)。作為響應(yīng),客戶應(yīng)用在步驟244中發(fā)送數(shù)字對(duì)象給SAN,并且在步驟248中,SAN存儲(chǔ)數(shù)字對(duì)象,計(jì)算通用唯一標(biāo)識(shí)符并將該標(biāo)識(shí)符返回至客戶應(yīng)用。以類似的方式,客戶應(yīng)用可以請(qǐng)求存儲(chǔ)集群返回UUID所標(biāo)識(shí)的特定數(shù)字對(duì)象。這可以利用SCSP GET請(qǐng)求來(lái)實(shí)現(xiàn)??蛻魬?yīng)用將標(biāo)識(shí)符提供至存儲(chǔ)集群的PAN,組播消息連同標(biāo)識(shí)符被一起發(fā)送至集群內(nèi)的所有節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)計(jì)算讀取競(jìng)標(biāo)(讀取數(shù)字對(duì)象并將其返回至客戶應(yīng)用的成本),PAN選擇具有最低讀取競(jìng)標(biāo)的節(jié)點(diǎn),并且該節(jié)點(diǎn)然后將數(shù)字對(duì)象返回至客戶應(yīng)用。當(dāng)然,不存儲(chǔ)數(shù)字對(duì)象的節(jié)點(diǎn)(由節(jié)點(diǎn)的存儲(chǔ)器內(nèi)對(duì)象的唯一標(biāo)識(shí)符的存在確定)將不競(jìng)標(biāo)。盡管任何節(jié)點(diǎn)都可以執(zhí)行POST請(qǐng)求并向其驅(qū)動(dòng)器中的一個(gè)寫(xiě)入數(shù)字對(duì)象,但僅僅實(shí)際存儲(chǔ)數(shù)字對(duì)象的節(jié)點(diǎn)才能夠響應(yīng)于來(lái)自客戶應(yīng)用的GET請(qǐng)求。節(jié)點(diǎn)還可以通過(guò)與以上所述相似的方式執(zhí)行節(jié)點(diǎn)間寫(xiě)入和讀取請(qǐng)求(為了健康處理期間的復(fù)制目的)。因此,實(shí)現(xiàn)了某些活動(dòng)使節(jié)點(diǎn)“忙碌”并將其置于活動(dòng)狀態(tài)。如果節(jié)點(diǎn)響應(yīng)于諸如寫(xiě)入文件或檢索文件的外部客戶請(qǐng)求、或者如果節(jié)點(diǎn)響應(yīng)于另一個(gè)節(jié)點(diǎn)的寫(xiě)入或讀取文件的請(qǐng)求(或許作為健康處理的一部分),那么節(jié)點(diǎn)是忙碌的(并因此不處于閑置狀態(tài))。為了保存功率,下面的技術(shù)使節(jié)點(diǎn)從活動(dòng)狀態(tài)轉(zhuǎn)變到閑置狀態(tài)。圖3是流程圖,描繪了節(jié)點(diǎn)如何從活動(dòng)狀態(tài)轉(zhuǎn)變到閑置狀態(tài)。該流程由存儲(chǔ)集群中的每個(gè)節(jié)點(diǎn)獨(dú)立地執(zhí)行。最初,假定節(jié)點(diǎn)是忙碌的或活動(dòng)的,意味著其正在執(zhí)行寫(xiě)入、讀取和健康處理活動(dòng)(檢查存儲(chǔ)在節(jié)點(diǎn)處的每個(gè)文件的完整性,判斷集群內(nèi)是否存在適當(dāng)數(shù)量的文件拷貝,并且將文件移至成本較低的節(jié)點(diǎn))。當(dāng)然,如果發(fā)現(xiàn)文件損壞,則應(yīng)當(dāng)被刪除,并且在集群內(nèi)存儲(chǔ)附加的拷貝。類似地,如果健康處理判定在集群內(nèi)沒(méi)有發(fā)現(xiàn)適當(dāng)數(shù)量的拷貝,那么也需要存儲(chǔ)附加的拷貝。如果能夠發(fā)現(xiàn)成本較低的節(jié)點(diǎn),健康處理還可將文件寫(xiě)入到另一節(jié)點(diǎn)(即使存在足夠的拷貝)。所有這些活動(dòng)都是CPU密集的并會(huì)涉及磁盤(pán)訪問(wèn)。然后,活動(dòng)的節(jié)點(diǎn)響應(yīng)于來(lái)自客戶應(yīng)用或來(lái)自其他節(jié)點(diǎn)的讀取和寫(xiě)入請(qǐng)求。因此,在步驟304中,節(jié)點(diǎn)由于這些活動(dòng)中的任何一個(gè)而在當(dāng)前是活動(dòng)的。步驟 308和312優(yōu)選并行地執(zhí)行并測(cè)試在預(yù)定時(shí)長(zhǎng)內(nèi)是否存在過(guò)任何寫(xiě)入或讀取活動(dòng)或涉及寫(xiě)入到磁盤(pán)的任何健康處理。關(guān)于健康處理活動(dòng),應(yīng)當(dāng)注意,一些活動(dòng)可能不涉及將文件寫(xiě)入磁盤(pán)。例如,如果完整性檢查未發(fā)現(xiàn)任何損壞對(duì)象,那么不需要寫(xiě)入附加的拷貝。類似地, 如果在集群內(nèi)存在適當(dāng)數(shù)量的拷貝,那么不需要寫(xiě)入附加的拷貝。最后,如果健康處理未發(fā)現(xiàn)成本較低的節(jié)點(diǎn),那么不需要移動(dòng)文件的拷貝。涉及寫(xiě)入到磁盤(pán)的健康處理活動(dòng)將阻止節(jié)點(diǎn)向閑置狀態(tài)轉(zhuǎn)變,而不涉及寫(xiě)入的活動(dòng)將不阻止該轉(zhuǎn)變。如上所述,參數(shù)sle印After可以設(shè)定為期望的時(shí)長(zhǎng)。如果存在過(guò)任何活動(dòng),那么節(jié)點(diǎn)保持活動(dòng),但是,如果在預(yù)定時(shí)長(zhǎng)之后仍沒(méi)有讀取或?qū)懭牖顒?dòng)或者沒(méi)有任何涉及寫(xiě)入的健康處理活動(dòng),那么在步驟316中,節(jié)點(diǎn)轉(zhuǎn)變到閑置狀態(tài)??梢酝ㄟ^(guò)不同的方式來(lái)執(zhí)行節(jié)點(diǎn)向閑置狀態(tài)的轉(zhuǎn)變。優(yōu)選地,轉(zhuǎn)變涉及停止所有的健康處理活動(dòng),從而保留非常少的活動(dòng)處理。一旦操作系統(tǒng)注意到?jīng)]有CPU活動(dòng)(或有非常少的CPU活動(dòng)),操作系統(tǒng)將降低CPU和RAM上的時(shí)鐘速度。存儲(chǔ)集群內(nèi)的功率保存的一個(gè)優(yōu)點(diǎn)在于,除了外部客戶應(yīng)用請(qǐng)求、健康處理活動(dòng)以及集群中的組播消息的處理之外, 存在非常少的其他活動(dòng)處理(如果存在的話)。一旦節(jié)點(diǎn)轉(zhuǎn)變到閑置狀態(tài)并且所有健康處理停止,更可能的是操作系統(tǒng)將由于非常少的處理保留而降低時(shí)鐘速度。在正常的計(jì)算機(jī)上,存在大量始終運(yùn)行的處理,這些處理減少了操作系統(tǒng)降低時(shí)鐘速度的可能性。一旦處于閑置狀態(tài),節(jié)點(diǎn)便以“閑散”方式競(jìng)標(biāo),從而減少其被要求執(zhí)行讀取、寫(xiě)入或復(fù)制的機(jī)會(huì)。此時(shí),節(jié)點(diǎn)是閑置的,但是其任何卷都可以仍然處理其工作隊(duì)列中未完成的工作。每個(gè)卷保持
1CN 102549524 A
其自己的工作隊(duì)列。一旦在步驟320中確定用于特定卷的工作隊(duì)列已經(jīng)空了 sle印After秒(即,磁盤(pán)沒(méi)有事情可做),那么在步驟328中,該卷也將轉(zhuǎn)變到閑置狀態(tài)。如果用于卷的工作隊(duì)列不是空的,那么在步驟324中,卷仍然忙碌,但是節(jié)點(diǎn)將保持閑置。卷通過(guò)利用任何適當(dāng)?shù)拿钍蛊浯疟P(pán)旋轉(zhuǎn)減慢來(lái)轉(zhuǎn)變到閑置狀態(tài)。例如,一種控制磁盤(pán)旋轉(zhuǎn)減慢的方法是通過(guò)安裝在嵌入式Linux操作系統(tǒng)中的硬盤(pán)顯示參數(shù)(hdparm)實(shí)體進(jìn)行的。關(guān)注的命令行選項(xiàng)是 S、y、C、Y和Z。選項(xiàng)“S”設(shè)定用于驅(qū)動(dòng)器的待機(jī)(旋轉(zhuǎn)減慢)超時(shí)。該值由驅(qū)動(dòng)器用來(lái)確定在關(guān)閉心軸馬達(dá)以節(jié)省功率之前需要等待多久(沒(méi)有磁盤(pán)活動(dòng))。步驟320中的測(cè)試可以利用操作系統(tǒng)執(zhí)行或在硬件中執(zhí)行。最后,一旦磁盤(pán)已經(jīng)旋轉(zhuǎn)減慢,其便在步驟332中停止,從而進(jìn)一步減少功耗。圖4是流程圖,描繪了閑置的集群如何處理讀取請(qǐng)求。在步驟404中,假定整個(gè)存儲(chǔ)集群都是閑置的,也就是說(shuō),集群的每個(gè)計(jì)算機(jī)都處于閑置狀態(tài)。另外,所有的健康處理活動(dòng)都已停止。在步驟408中,在主訪問(wèn)節(jié)點(diǎn)(PAN)接收來(lái)自客戶應(yīng)用的外部讀取請(qǐng)求,該請(qǐng)求請(qǐng)求由唯一標(biāo)識(shí)符所標(biāo)識(shí)的特定數(shù)字對(duì)象。在步驟412中,PAN開(kāi)始組播競(jìng)標(biāo)過(guò)程。每個(gè)合格的節(jié)點(diǎn)計(jì)算其自己的讀取競(jìng)標(biāo)并將該值返回至PAN。利用每個(gè)節(jié)點(diǎn)的CPU和RAM進(jìn)行競(jìng)標(biāo)值的計(jì)算并且沒(méi)有必要進(jìn)行磁盤(pán)訪問(wèn),因而保存功率。節(jié)點(diǎn)將僅在其卷中的一個(gè)實(shí)際存儲(chǔ)所需的數(shù)字對(duì)象的情況下才進(jìn)行競(jìng)標(biāo);節(jié)點(diǎn)作出唯一標(biāo)識(shí)符是否存儲(chǔ)在節(jié)點(diǎn)的存儲(chǔ)器中的該判斷。用來(lái)計(jì)算用于節(jié)點(diǎn)的讀取競(jìng)標(biāo)值的因素包括節(jié)點(diǎn)是活動(dòng)的還是閑置的;節(jié)點(diǎn)近期有多忙碌;哪些類型的卷存儲(chǔ)對(duì)象及其各個(gè)競(jìng)標(biāo);以及卷的狀態(tài)(休息,閑置,等等)。 如上所述,如果節(jié)點(diǎn)是閑置的,閑置成本值則被添加到競(jìng)標(biāo)中。該附加值幫助閑置的節(jié)點(diǎn)保持閑置。如果所有的節(jié)點(diǎn)都是閑置的,那么一個(gè)節(jié)點(diǎn)將需要被喚醒以執(zhí)行請(qǐng)求。在步驟416中,PAN基于最低競(jìng)標(biāo)選擇響應(yīng)的節(jié)點(diǎn)中的一個(gè);此時(shí),被選擇的節(jié)點(diǎn) (以及所有的其他節(jié)點(diǎn))仍然處于閑置狀態(tài)。在步驟420中,所選擇的節(jié)點(diǎn)從閑置狀態(tài)轉(zhuǎn)變到活動(dòng)狀態(tài),并且其存儲(chǔ)數(shù)字對(duì)象的卷也轉(zhuǎn)變到活動(dòng)狀態(tài)。對(duì)于節(jié)點(diǎn)和卷,轉(zhuǎn)變到活動(dòng)狀態(tài)涉及首先使含有數(shù)字對(duì)象的卷旋轉(zhuǎn)加快。用于新激活的節(jié)點(diǎn)的健康處理器將直到讀取完成才開(kāi)始。在步驟424中,活動(dòng)節(jié)點(diǎn)然后執(zhí)行GET請(qǐng)求并將所識(shí)別的數(shù)字對(duì)象返回到客戶應(yīng)用。此時(shí),在步驟428中,所選擇的節(jié)點(diǎn)和卷保持處于活動(dòng)狀態(tài),并且健康處理可以重新發(fā)生。接下來(lái),節(jié)點(diǎn)開(kāi)始執(zhí)行圖3的流程圖,由此,節(jié)點(diǎn)可以最終轉(zhuǎn)變回到閑置狀態(tài)。圖5是流程圖,描繪了閑置集群如何處理寫(xiě)入請(qǐng)求。在步驟504中,假定整個(gè)存儲(chǔ)集群都是閑置的,也就是說(shuō),集群的每個(gè)計(jì)算機(jī)節(jié)點(diǎn)都處于閑置狀態(tài)。另外,所有的健康處理活動(dòng)都已停止。在步驟508中,在主訪問(wèn)節(jié)點(diǎn)(PAN)接收來(lái)自客戶應(yīng)用的外部讀取請(qǐng)求,該請(qǐng)求請(qǐng)求將特定數(shù)字對(duì)象寫(xiě)入到存儲(chǔ)集群中。在步驟512中,PAN開(kāi)始組播競(jìng)標(biāo)過(guò)程。集群的每個(gè)節(jié)點(diǎn)計(jì)算其自己的寫(xiě)入競(jìng)標(biāo)(例如,如上所述)并將該值返回至PAN。利用每個(gè)節(jié)點(diǎn)的 CPU和RAM進(jìn)行競(jìng)標(biāo)值的計(jì)算并且沒(méi)有必要進(jìn)行磁盤(pán)訪問(wèn),因而保存功率。如上所述,如果節(jié)點(diǎn)是閑置的,閑置成本值則被添加到競(jìng)標(biāo)中。該附加值幫助閑置的節(jié)點(diǎn)保持閑置。如上所述,獲勝的競(jìng)標(biāo)將主要由節(jié)點(diǎn)及其卷的使用確定。具有更多可用存儲(chǔ)容量的卷更可能贏得競(jìng)標(biāo),如具有更多不使用的存儲(chǔ)器的節(jié)點(diǎn)。在步驟516中,PAN基于最低寫(xiě)入競(jìng)標(biāo)選擇節(jié)點(diǎn)中的一個(gè);此時(shí),被選擇的節(jié)點(diǎn) (以及所有的其他節(jié)點(diǎn))仍然處于閑置狀態(tài)。在步驟520中,所選擇的節(jié)點(diǎn)從閑置狀態(tài)轉(zhuǎn)變到活動(dòng)狀態(tài),并且其最不滿的卷也轉(zhuǎn)變到活動(dòng)狀態(tài)。所選擇的卷將使其磁盤(pán)旋轉(zhuǎn)加快。在步驟524中,活動(dòng)節(jié)點(diǎn)然后執(zhí)行POST請(qǐng)求并將數(shù)字對(duì)象寫(xiě)入到最不滿的卷,計(jì)算用于該數(shù)字對(duì)象的唯一標(biāo)識(shí)符,并將該標(biāo)識(shí)符返回至客戶應(yīng)用。此時(shí),在步驟528中,所選擇的節(jié)點(diǎn)和卷保持處于活動(dòng)狀態(tài),并且健康處理可以再次發(fā)生。由于在存儲(chǔ)集群內(nèi)一般需要數(shù)字對(duì)象的至少兩個(gè)拷貝,所以在步驟532中,輔助訪問(wèn)節(jié)點(diǎn)(SAN)再次發(fā)送組播消息,以再次開(kāi)始競(jìng)標(biāo)過(guò)程,為了獲得寫(xiě)入數(shù)字對(duì)象的拷貝的機(jī)會(huì)。在步驟536中,一旦節(jié)點(diǎn) (復(fù)制競(jìng)爭(zhēng)對(duì)手)贏得競(jìng)標(biāo),節(jié)點(diǎn)及其最不滿的卷便轉(zhuǎn)變到活動(dòng)狀態(tài)。然后,在步驟540中執(zhí)行對(duì)象的第二拷貝到該其他節(jié)點(diǎn)中的寫(xiě)入。當(dāng)然,如果用于存儲(chǔ)集群的復(fù)制因子具有大約2的值,那么此時(shí)將寫(xiě)入數(shù)字對(duì)象的更多拷貝。接下來(lái),兩個(gè)節(jié)點(diǎn)開(kāi)始執(zhí)行圖3的流程圖, 由此,這些節(jié)點(diǎn)中的每個(gè)可以最終轉(zhuǎn)變回到閑置狀態(tài)。因此,圖4和5示出了休眠的集群如何可以在無(wú)需喚醒集群內(nèi)的每個(gè)節(jié)點(diǎn)的情況下執(zhí)行來(lái)自客戶應(yīng)用的寫(xiě)入和讀取請(qǐng)求。示例假定sle印After為30分鐘并且wakeAfter為8小時(shí)。在周五下午的5:30分,每個(gè)人回家過(guò)周末并且另外忙碌的存儲(chǔ)集群發(fā)現(xiàn)自身沒(méi)有新的工作要做。所有的節(jié)點(diǎn)將繼續(xù)重復(fù)其內(nèi)容,執(zhí)行健康處理檢查并進(jìn)行必要的復(fù)制,直至集群中的所有數(shù)據(jù)流都是健康的并被完全復(fù)制。當(dāng)達(dá)到該狀態(tài)時(shí),所有的復(fù)制活動(dòng)都已經(jīng)停止,盡管節(jié)點(diǎn)可能仍然忙于重復(fù)循環(huán)和檢查、使用CPU循環(huán)以及訪問(wèn)硬盤(pán)。在某一時(shí)間點(diǎn),其中一個(gè)節(jié)點(diǎn)注意到在過(guò)去的 30分鐘其沒(méi)有新的工作可做,并且該節(jié)點(diǎn)將轉(zhuǎn)變到閑置狀態(tài),從而暫停其健康處理并以“閑散”的方式進(jìn)行競(jìng)標(biāo)(即,將競(jìng)標(biāo)調(diào)整為不希望讀取、寫(xiě)入或復(fù)制數(shù)字對(duì)象)。其將繼續(xù)響應(yīng)于來(lái)自其他節(jié)點(diǎn)的節(jié)點(diǎn)間協(xié)議請(qǐng)求(包括涉及拷貝數(shù)量的請(qǐng)求),但是這些請(qǐng)求完全在存儲(chǔ)器內(nèi)結(jié)構(gòu)之外被處理并且不需要磁盤(pán)訪問(wèn)。然而,新的閑置節(jié)點(diǎn)不向其他節(jié)點(diǎn)發(fā)送關(guān)于拷貝數(shù)量的詢問(wèn),這是因?yàn)槠浣】堤幚聿辉僦貜?fù)循環(huán)。節(jié)點(diǎn)的卷一般在節(jié)點(diǎn)變閑置后一定時(shí)間內(nèi)保持活動(dòng),同時(shí)其清理其工作隊(duì)列。最終,卷將注意到其工作隊(duì)列已經(jīng)空了 30分鐘,并且將變?yōu)殚e置,從而使其磁盤(pán)旋轉(zhuǎn)減慢。其他節(jié)點(diǎn)將在30分鐘后開(kāi)始意識(shí)到其沒(méi)有新的工作可做,并且也將變?yōu)殚e置。最終,集群中的所有節(jié)點(diǎn)將變?yōu)殚e置并停止發(fā)送任何節(jié)點(diǎn)間協(xié)議消息。休眠的集群中僅有的活動(dòng)為“街頭公告員(town crier)”消息的不頻繁的發(fā)送和接收,這些消息有助于集群檢測(cè)休眠節(jié)點(diǎn)的故障?,F(xiàn)在假定低頻維護(hù)應(yīng)用需要每小時(shí)將一個(gè)新的數(shù)據(jù)流(數(shù)字對(duì)象)寫(xiě)入到集群中。由于集群中的所有節(jié)點(diǎn)都是閑置的并且以閑散的方式進(jìn)行競(jìng)標(biāo),所以其中一個(gè)節(jié)點(diǎn)將贏得寫(xiě)入競(jìng)標(biāo)并將被迫醒來(lái)以處理請(qǐng)求。注意,主訪問(wèn)節(jié)點(diǎn)(PAN,被希望寫(xiě)入到集群中或從集群進(jìn)行讀取的客戶應(yīng)用首先訪問(wèn)的節(jié)點(diǎn))將不需要醒來(lái),因?yàn)槠洳恍枰L問(wèn)其磁盤(pán)以找到適當(dāng)?shù)腟AN(輔助訪問(wèn)節(jié)點(diǎn),在主訪問(wèn)節(jié)點(diǎn)不能處理的情況下將實(shí)際處理客戶請(qǐng)求的節(jié)點(diǎn))來(lái)重新引導(dǎo)請(qǐng)求。原因在于,節(jié)點(diǎn)能夠在閑置的同時(shí)執(zhí)行PAN活動(dòng)。假定復(fù)制因子= 2 (集群內(nèi)的每個(gè)數(shù)字對(duì)象的期望拷貝數(shù)量),那么SAN還將需要喚醒第二節(jié)點(diǎn)以用作其復(fù)制競(jìng)爭(zhēng)對(duì)手。這兩個(gè)節(jié)點(diǎn)都將在接下來(lái)的30分鐘內(nèi)保持醒著,在這30分鐘后,它們將再次變?yōu)殚e置。如果另一個(gè)寫(xiě)入請(qǐng)求(來(lái)自客戶應(yīng)用)在兩個(gè)醒著的節(jié)點(diǎn)返回到其休眠狀態(tài)之前到達(dá),那么其中一個(gè)將幾乎確定地贏得競(jìng)標(biāo),這是因?yàn)樗械钠渌?jié)點(diǎn)都在休眠。因此,例如每十分鐘寫(xiě)入一次的客戶應(yīng)用將發(fā)現(xiàn)自己每次與相同的兩個(gè)節(jié)點(diǎn)在對(duì)話,而集群的剩余節(jié)點(diǎn)繼續(xù)保存功率。如果應(yīng)用試圖讀取不在這兩個(gè)節(jié)點(diǎn)中的一個(gè)上的數(shù)字對(duì)象,那么集群將仍然找到其副本,喚醒具有該副本的節(jié)點(diǎn),并且讀取數(shù)據(jù)。如果應(yīng)用開(kāi)始更頻繁地操作或者要求更多的處理能力,越來(lái)越多的節(jié)點(diǎn)將醒來(lái)以處理增加的要求。即使在周末沒(méi)有進(jìn)一步的應(yīng)用活動(dòng),每個(gè)節(jié)點(diǎn)也將每8個(gè)小時(shí)醒來(lái)一次并啟動(dòng)健康處理以檢查其數(shù)據(jù)流并執(zhí)行任何需要的校正動(dòng)作。這將允許節(jié)點(diǎn)檢測(cè)可能在其休眠期間變得不能操作的卷。如果在接下來(lái)的30分鐘內(nèi)不需要校正動(dòng)作,那么節(jié)點(diǎn)將返回到閑置狀態(tài)。計(jì)算機(jī)系統(tǒng)實(shí)施例圖6A和6B示出了適于執(zhí)行本發(fā)明的實(shí)施例的計(jì)算機(jī)系統(tǒng)900。圖6A示出了計(jì)算機(jī)系統(tǒng)的一種可能的物理形式。當(dāng)然,計(jì)算機(jī)系統(tǒng)可以具有很多物理形式,包括集成電路,印刷電路板,小型手持設(shè)備(如移動(dòng)電話或PDA),個(gè)人計(jì)算機(jī)或超級(jí)計(jì)算機(jī)。計(jì)算機(jī)系統(tǒng)900包括監(jiān)視器902、顯示器904、機(jī)箱906、磁盤(pán)驅(qū)動(dòng)器908、鍵盤(pán)910以及鼠標(biāo)912。磁盤(pán)914是用來(lái)將數(shù)據(jù)傳輸?shù)接?jì)算機(jī)系統(tǒng)900以及從計(jì)算機(jī)系統(tǒng)900傳輸數(shù)據(jù)的計(jì)算機(jī)可讀介質(zhì)。圖6B是用于計(jì)算機(jī)系統(tǒng)900的框圖的示例。多種子系統(tǒng)附接于系統(tǒng)總線920。一個(gè)或多個(gè)處理器922 (也稱為中央處理單元或CPU)聯(lián)接于包括存儲(chǔ)器擬4在內(nèi)的存儲(chǔ)設(shè)備。存儲(chǔ)器擬4包括隨機(jī)存取存儲(chǔ)器(RAM)和只讀存儲(chǔ)器(ROM)。如本領(lǐng)域所公知的,ROM 用來(lái)單向地向CPU傳輸數(shù)據(jù)和指令,而RAM—般用來(lái)以雙向的方式傳輸數(shù)據(jù)和指令。這兩種類型的存儲(chǔ)器都可以包括將在下面描述的任何適當(dāng)?shù)挠?jì)算機(jī)可讀介質(zhì)。固定磁盤(pán)擬6也雙向地聯(lián)接于CPU922 ;其提供附加的數(shù)據(jù)存儲(chǔ)容量并還可包括將在下面描述的計(jì)算機(jī)可讀介質(zhì)中的任何一種。固定磁盤(pán)擬6可以用來(lái)存儲(chǔ)程序、數(shù)據(jù)等,并且一般是比主存儲(chǔ)器慢的輔助存儲(chǔ)介質(zhì)(如硬盤(pán))。應(yīng)當(dāng)理解,保留在固定磁盤(pán)926內(nèi)的信息在適當(dāng)?shù)那闆r下可以以標(biāo)準(zhǔn)的形式結(jié)合為存儲(chǔ)器擬4中的虛擬存儲(chǔ)器??梢苿?dòng)磁盤(pán)914可以采用將在下面描述的計(jì)算機(jī)可讀介質(zhì)中的任何一種的形式。CPU 922還聯(lián)接于多種輸入/輸出設(shè)備,如顯示器904、鍵盤(pán)910、鼠標(biāo)912和揚(yáng)聲器930。通常,輸入/輸出設(shè)備可以是下列設(shè)備中的任何一種,這些設(shè)備為視頻顯示器,軌跡球,鼠標(biāo),鍵盤(pán),麥克風(fēng),觸敏顯示器,轉(zhuǎn)換器讀卡器,磁帶讀取器或紙帶讀取器,圖形輸入板,觸筆,聲音識(shí)別器或字跡識(shí)別器,生物特征讀取器,或者其他計(jì)算機(jī)??蛇x地,CPU 22可以利用網(wǎng)絡(luò)接口 940聯(lián)接于另一個(gè)計(jì)算機(jī)或電信網(wǎng)絡(luò)。利用這種網(wǎng)絡(luò)接口,能夠想到的是, CPU可以在執(zhí)行上述方法步驟的過(guò)程中接收來(lái)自網(wǎng)絡(luò)的信息,或者可以向網(wǎng)絡(luò)輸出信息。另外,本發(fā)明的方法實(shí)施例可以完全在CPU 922上執(zhí)行,或者可以結(jié)合共享處理的一部分的遠(yuǎn)程CPU在諸如互聯(lián)網(wǎng)的網(wǎng)絡(luò)上執(zhí)行。此外,本發(fā)明的實(shí)施例還涉及具有計(jì)算機(jī)可讀介質(zhì)的計(jì)算機(jī)存儲(chǔ)產(chǎn)品,所述計(jì)算機(jī)可讀介質(zhì)上具有用于執(zhí)行各種計(jì)算機(jī)執(zhí)行操作的計(jì)算機(jī)代碼。所述介質(zhì)和計(jì)算機(jī)代碼可以是為了本發(fā)明的目的而特別設(shè)計(jì)和構(gòu)建的,或者其可以是計(jì)算機(jī)軟件領(lǐng)域的技術(shù)人員所公知和可以得到的類型。計(jì)算機(jī)可讀介質(zhì)的示例包括但不限于磁性介質(zhì),如硬盤(pán)、軟盤(pán)和磁帶;光學(xué)介質(zhì),如CD-ROM和全息攝像設(shè)備;磁-光介質(zhì),如軟光盤(pán);以及硬件設(shè)備,其特別構(gòu)建成存儲(chǔ)和執(zhí)行程序代碼,如專用集成電路(ASIC)、可編程邏輯設(shè)備(PLD)以及ROM和 RAM設(shè)備。計(jì)算機(jī)代碼的示例包括機(jī)器代碼,如由編譯器產(chǎn)生的機(jī)器代碼;和含有較高水平代碼的文件,所述較高水平代碼由計(jì)算機(jī)利用解譯器來(lái)執(zhí)行。 盡管為了理解清楚的目的在一定的細(xì)節(jié)上對(duì)上面的本發(fā)明進(jìn)行了描述,但顯而易見(jiàn)的是,可以在所附權(quán)利要求的范圍內(nèi)實(shí)施某些改變和變化。因此,所描述的實(shí)施例應(yīng)當(dāng)理解為示例性的而非限制性的,并且本發(fā)明不應(yīng)局限于本文給定的細(xì)節(jié),而是應(yīng)當(dāng)由所附權(quán)利要求及其等同設(shè)置的全部范圍來(lái)限定。
權(quán)利要求
1.在相互連接的多個(gè)計(jì)算機(jī)節(jié)點(diǎn)的存儲(chǔ)集群中,每個(gè)計(jì)算機(jī)節(jié)點(diǎn)包括CPU和至少為零的磁盤(pán)驅(qū)動(dòng)器并執(zhí)行其自己的操作系統(tǒng),使所述計(jì)算機(jī)節(jié)點(diǎn)和所述磁盤(pán)驅(qū)動(dòng)器閑置的方法,所述方法包括對(duì)于所述存儲(chǔ)集群中的每個(gè)計(jì)算機(jī)節(jié)點(diǎn),確定在第一預(yù)定量的時(shí)間內(nèi)在所述每個(gè)節(jié)點(diǎn)沒(méi)有出現(xiàn)來(lái)自外部客戶應(yīng)用的客戶請(qǐng)求;對(duì)于所述存儲(chǔ)集群中的每個(gè)計(jì)算機(jī)節(jié)點(diǎn),確定在第二預(yù)定量的時(shí)間內(nèi)在所述每個(gè)節(jié)點(diǎn)沒(méi)有出現(xiàn)來(lái)自所述存儲(chǔ)集群中的其他節(jié)點(diǎn)的寫(xiě)入或讀取請(qǐng)求;對(duì)于所述存儲(chǔ)集群中的每個(gè)計(jì)算機(jī)節(jié)點(diǎn),當(dāng)確定在所述第一預(yù)定量的時(shí)間和所述第二預(yù)定量的時(shí)間內(nèi)既沒(méi)有出現(xiàn)所述客戶請(qǐng)求也沒(méi)有出現(xiàn)寫(xiě)入請(qǐng)求時(shí),獨(dú)立地使所述每個(gè)計(jì)算機(jī)節(jié)點(diǎn)轉(zhuǎn)變到閑置狀態(tài);以及當(dāng)確定每個(gè)磁盤(pán)卷的工作隊(duì)列已經(jīng)空了第三預(yù)定量的時(shí)間時(shí),使閑置的計(jì)算機(jī)節(jié)點(diǎn)的所述每個(gè)磁盤(pán)卷轉(zhuǎn)變到閑置狀態(tài)。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述第一預(yù)定量的時(shí)間、所述第二預(yù)定量的時(shí)間和所述第三預(yù)定量的時(shí)間是相同的值。
3.根據(jù)權(quán)利要求1所述的方法,其中,所述方法還包括 使已經(jīng)轉(zhuǎn)變到閑置狀態(tài)的每個(gè)磁盤(pán)卷停止旋轉(zhuǎn)。
4.根據(jù)權(quán)利要求1所述的方法,其中,所述存儲(chǔ)集群是一次寫(xiě)入、多次讀取(WORM)式固定內(nèi)容存儲(chǔ)集群。
5.根據(jù)權(quán)利要求1所述的方法,其中,所述方法還包括通過(guò)停止在所述每個(gè)計(jì)算機(jī)節(jié)點(diǎn)的磁盤(pán)卷上執(zhí)行的所有文件完整性檢查來(lái)使所述每個(gè)計(jì)算機(jī)節(jié)點(diǎn)閑置;以及使所述每個(gè)計(jì)算機(jī)節(jié)點(diǎn)的所述操作系統(tǒng)降低所述每個(gè)計(jì)算機(jī)節(jié)點(diǎn)的所述CPU的時(shí)鐘速度;
6.根據(jù)權(quán)利要求1所述的方法,還包括通過(guò)引導(dǎo)閑置的計(jì)算機(jī)節(jié)點(diǎn)的每個(gè)磁盤(pán)卷開(kāi)始旋轉(zhuǎn)減慢來(lái)使所述每個(gè)磁盤(pán)卷閑置。
7.根據(jù)權(quán)利要求1所述的方法,還包括通過(guò)計(jì)算競(jìng)標(biāo)值來(lái)使每個(gè)計(jì)算機(jī)節(jié)點(diǎn)閑置,其中所述競(jìng)標(biāo)值減小所述每個(gè)計(jì)算機(jī)節(jié)點(diǎn)在與活動(dòng)的計(jì)算機(jī)節(jié)點(diǎn)的競(jìng)爭(zhēng)中贏得對(duì)于外部讀取或?qū)懭氲母?jìng)標(biāo)的機(jī)會(huì)。
8.一種使具有多個(gè)相互連接的計(jì)算機(jī)節(jié)點(diǎn)的存儲(chǔ)集群內(nèi)的計(jì)算機(jī)節(jié)點(diǎn)閑置的方法,所述方法包括通過(guò)所述計(jì)算機(jī)節(jié)點(diǎn)處理來(lái)自處于所述存儲(chǔ)集群外部的客戶應(yīng)用的客戶請(qǐng)求,所述計(jì)算機(jī)節(jié)點(diǎn)處于活動(dòng)狀態(tài);確定在第一預(yù)定量的時(shí)間內(nèi)在所述計(jì)算機(jī)節(jié)點(diǎn)沒(méi)有出現(xiàn)來(lái)自外部客戶應(yīng)用的客戶請(qǐng)求;確定在第二預(yù)定量的時(shí)間內(nèi)在所述計(jì)算機(jī)節(jié)點(diǎn)沒(méi)有出現(xiàn)來(lái)自所述存儲(chǔ)集群中的其他計(jì)算機(jī)節(jié)點(diǎn)的讀取或?qū)懭胝?qǐng)求;獨(dú)立于所述存儲(chǔ)集群中的所述其他計(jì)算機(jī)節(jié)點(diǎn)使所述計(jì)算機(jī)節(jié)點(diǎn)轉(zhuǎn)變到閑置狀態(tài);以及當(dāng)確定每個(gè)磁盤(pán)卷的工作隊(duì)列已經(jīng)空了第三預(yù)定量的時(shí)間時(shí),使閑置的計(jì)算機(jī)節(jié)點(diǎn)的所述每個(gè)磁盤(pán)卷轉(zhuǎn)變到閑置狀態(tài)。
9.根據(jù)權(quán)利要求8所述的方法,還包括當(dāng)確定在所述第一預(yù)定量的時(shí)間內(nèi)在所述每個(gè)其他計(jì)算機(jī)節(jié)點(diǎn)沒(méi)有出現(xiàn)來(lái)自外部客戶應(yīng)用的客戶請(qǐng)求并且在所述第二預(yù)定量的時(shí)間內(nèi)在所述計(jì)算機(jī)節(jié)點(diǎn)沒(méi)有出現(xiàn)來(lái)自所述存儲(chǔ)集群中的其他計(jì)算機(jī)節(jié)點(diǎn)的讀取或?qū)懭胝?qǐng)求時(shí),執(zhí)行所述轉(zhuǎn)變所述存儲(chǔ)集群中的所述其他計(jì)算機(jī)節(jié)點(diǎn)中的每個(gè)的步驟。
10.一種讀取來(lái)自具有多個(gè)計(jì)算機(jī)節(jié)點(diǎn)的存儲(chǔ)集群的計(jì)算機(jī)文件的方法,所述方法包括在所述存儲(chǔ)集群的第一計(jì)算機(jī)節(jié)點(diǎn)接收來(lái)自外部客戶應(yīng)用的從所述存儲(chǔ)集群檢索所述計(jì)算機(jī)文件的請(qǐng)求,所述存儲(chǔ)集群的所述計(jì)算機(jī)節(jié)點(diǎn)中的每個(gè)都處于閑置狀態(tài);從所述第一計(jì)算機(jī)節(jié)點(diǎn)發(fā)送組播消息給所述存儲(chǔ)集群中的所述計(jì)算機(jī)節(jié)點(diǎn),所述組播消息請(qǐng)求對(duì)讀取所述計(jì)算機(jī)文件的競(jìng)標(biāo);基于對(duì)所述組播消息的響應(yīng)選擇所述多個(gè)計(jì)算機(jī)節(jié)點(diǎn)中的一個(gè); 將所述選擇的計(jì)算機(jī)節(jié)點(diǎn)和所述選擇的計(jì)算機(jī)節(jié)點(diǎn)的包括所述計(jì)算機(jī)文件的磁盤(pán)卷轉(zhuǎn)變到活動(dòng)狀態(tài);保持所述存儲(chǔ)集群的未被選擇的計(jì)算機(jī)節(jié)點(diǎn)處于所述閑置狀態(tài);以及使來(lái)自所述選擇的計(jì)算機(jī)節(jié)點(diǎn)的所述磁盤(pán)卷的所述計(jì)算機(jī)文件返回到所述外部客戶應(yīng)用。
11.根據(jù)權(quán)利要求10所述的方法,其中,所述存儲(chǔ)集群是一次寫(xiě)入、多次讀取(WORM)式固定內(nèi)容存儲(chǔ)集群。
12.根據(jù)權(quán)利要求10所述的方法,其中,所述閑置的計(jì)算機(jī)節(jié)點(diǎn)中的每個(gè)都具有CPU的降低的時(shí)鐘速度。
13.根據(jù)權(quán)利要求10所述的方法,其中,所述閑置的計(jì)算機(jī)節(jié)點(diǎn)的每個(gè)磁盤(pán)卷都處于旋轉(zhuǎn)減慢的過(guò)程中。
14.一種將計(jì)算機(jī)文件寫(xiě)入到具有多個(gè)計(jì)算機(jī)節(jié)點(diǎn)的存儲(chǔ)集群中的方法,所述方法包括在所述存儲(chǔ)集群的第一計(jì)算機(jī)節(jié)點(diǎn)接收來(lái)自外部客戶應(yīng)用的將所述計(jì)算機(jī)文件寫(xiě)入到所述存儲(chǔ)集群中的請(qǐng)求,所述存儲(chǔ)集群的所述計(jì)算機(jī)節(jié)點(diǎn)中的每個(gè)都處于閑置狀態(tài);從所述第一計(jì)算機(jī)節(jié)點(diǎn)發(fā)送組播消息給所述存儲(chǔ)集群中的所述計(jì)算機(jī)節(jié)點(diǎn),所述組播消息請(qǐng)求對(duì)寫(xiě)入所述計(jì)算機(jī)文件的競(jìng)標(biāo);基于對(duì)所述組播消息的響應(yīng)選擇所述多個(gè)計(jì)算機(jī)節(jié)點(diǎn)中的一個(gè); 將所述選擇的計(jì)算機(jī)節(jié)點(diǎn)和所述選擇的計(jì)算機(jī)節(jié)點(diǎn)的磁盤(pán)卷轉(zhuǎn)變到活動(dòng)狀態(tài); 保持所述存儲(chǔ)集群的未被選擇的計(jì)算機(jī)節(jié)點(diǎn)處于所述閑置狀態(tài);以及將來(lái)自所述外部客戶應(yīng)用的所述計(jì)算機(jī)文件寫(xiě)入到所述選擇的計(jì)算機(jī)節(jié)點(diǎn)的所述磁盤(pán)卷中。
15.根據(jù)權(quán)利要求14所述的方法,其中,所述存儲(chǔ)集群是一次寫(xiě)入、多次讀取(WORM)式固定內(nèi)容存儲(chǔ)集群。
16.根據(jù)權(quán)利要求14所述的方法,其中,所述閑置的計(jì)算機(jī)節(jié)點(diǎn)中的每個(gè)都具有CPU的降低的時(shí)鐘速度。
17.根據(jù)權(quán)利要求14所述的方法,其中,所述閑置的計(jì)算機(jī)節(jié)點(diǎn)的每個(gè)磁盤(pán)卷都處于旋轉(zhuǎn)減慢的過(guò)程中。
18.—種將計(jì)算機(jī)文件寫(xiě)入到具有多個(gè)計(jì)算機(jī)節(jié)點(diǎn)的存儲(chǔ)集群中的方法,所述方法包括在所述存儲(chǔ)集群的第一計(jì)算機(jī)節(jié)點(diǎn)接收來(lái)自外部存檔應(yīng)用的將所述計(jì)算機(jī)文件寫(xiě)入到所述存儲(chǔ)集群中的請(qǐng)求;從所述第一計(jì)算機(jī)節(jié)點(diǎn)發(fā)送組播消息給所述存儲(chǔ)集群中的所述計(jì)算機(jī)節(jié)點(diǎn),所述組播消息請(qǐng)求對(duì)寫(xiě)入所述計(jì)算機(jī)文件的競(jìng)標(biāo);所述計(jì)算機(jī)節(jié)點(diǎn)中的每個(gè)計(jì)算用于獲得寫(xiě)入所述計(jì)算機(jī)文件的機(jī)會(huì)的競(jìng)標(biāo)值,來(lái)自具有較大容量的計(jì)算機(jī)節(jié)點(diǎn)的競(jìng)標(biāo)值比來(lái)自具有較小容量的計(jì)算機(jī)節(jié)點(diǎn)的競(jìng)標(biāo)值高; 選擇所述多個(gè)計(jì)算機(jī)節(jié)點(diǎn)中具有最低競(jìng)標(biāo)值的一個(gè);以及將來(lái)自所述外部客戶應(yīng)用的所述計(jì)算機(jī)文件寫(xiě)入到所述選擇的計(jì)算機(jī)節(jié)點(diǎn)的磁盤(pán)卷中。
19.根據(jù)權(quán)利要求18所述的方法,其中,所述存儲(chǔ)集群是一次寫(xiě)入、多次讀取(WORM)式固定內(nèi)容存儲(chǔ)集群。
20.根據(jù)權(quán)利要求18所述的方法,還包括將所述計(jì)算機(jī)文件寫(xiě)入到所述選擇的計(jì)算機(jī)節(jié)點(diǎn)的具有最低容量的磁盤(pán)卷。
21.根據(jù)權(quán)利要求18所述的方法,其中,所述存儲(chǔ)集群的所述計(jì)算機(jī)節(jié)點(diǎn)中的每個(gè)都處于存檔模式,其中當(dāng)所述計(jì)算機(jī)節(jié)點(diǎn)中的每個(gè)都不處于存檔模式時(shí),計(jì)算出的來(lái)自具有較大容量的計(jì)算機(jī)節(jié)點(diǎn)的競(jìng)標(biāo)值小于來(lái)自具有較小容量的計(jì)算機(jī)節(jié)點(diǎn)的競(jìng)標(biāo)值。
22.—種將計(jì)算機(jī)文件存儲(chǔ)在具有多個(gè)計(jì)算機(jī)節(jié)點(diǎn)的存儲(chǔ)集群中的方法,所述方法包括接收來(lái)自所述存儲(chǔ)集群中的第一計(jì)算機(jī)節(jié)點(diǎn)的組播消息,所述組播消息請(qǐng)求對(duì)寫(xiě)入所述計(jì)算機(jī)文件的競(jìng)標(biāo),所述計(jì)算機(jī)文件源自外部存檔應(yīng)用;判斷所述存儲(chǔ)集群中的第二計(jì)算機(jī)節(jié)點(diǎn)是否處于存檔模式;當(dāng)確定所述第二計(jì)算機(jī)節(jié)點(diǎn)處于存檔模式時(shí),計(jì)算用于獲得寫(xiě)入所述計(jì)算機(jī)文件的機(jī)會(huì)的競(jìng)標(biāo)值,其中所述計(jì)算機(jī)節(jié)點(diǎn)的容量越大,所述競(jìng)標(biāo)值則越高; 基于所述計(jì)算的競(jìng)標(biāo)值在所述計(jì)算機(jī)節(jié)點(diǎn)中贏得競(jìng)標(biāo);以及將來(lái)自所述外部客戶應(yīng)用的所述計(jì)算機(jī)文件寫(xiě)入到所述第二計(jì)算機(jī)節(jié)點(diǎn)的磁盤(pán)卷中。
23.根據(jù)權(quán)利要求22所述的方法,其中,所述存儲(chǔ)集群是一次寫(xiě)入、多次讀取(WORM)式固定內(nèi)容存儲(chǔ)集群。
24.根據(jù)權(quán)利要求22所述的方法,還包括將所述計(jì)算機(jī)文件寫(xiě)入到所述選擇的計(jì)算機(jī)節(jié)點(diǎn)的具有最低容量的磁盤(pán)卷。
25.根據(jù)權(quán)利要求22所述的方法,還包括將所述第二計(jì)算機(jī)節(jié)點(diǎn)的磁盤(pán)卷填充到接近容量;以及當(dāng)確定預(yù)定量的時(shí)間已經(jīng)過(guò)去并且沒(méi)有處理過(guò)來(lái)自所述外部存檔應(yīng)用的請(qǐng)求時(shí),使所述第二計(jì)算機(jī)節(jié)點(diǎn)閑置。
26.一種在具有多個(gè)計(jì)算機(jī)節(jié)點(diǎn)的存儲(chǔ)集群中處理外部請(qǐng)求的方法,所述方法包括 在所述存儲(chǔ)集群的閑置計(jì)算機(jī)節(jié)點(diǎn)接收組播消息,所述組播消息請(qǐng)求對(duì)處理所述外部請(qǐng)求的競(jìng)標(biāo),所述外部請(qǐng)求源自外部客戶應(yīng)用; 計(jì)算處理所述外部請(qǐng)求的機(jī)會(huì)的競(jìng)標(biāo)值;判斷所述存儲(chǔ)集群中的所述閑置計(jì)算機(jī)節(jié)點(diǎn)是否處于閑置狀態(tài),其中當(dāng)確定所述閑置計(jì)算機(jī)節(jié)點(diǎn)處于閑置狀態(tài)時(shí),向所述競(jìng)標(biāo)值添加補(bǔ)貼值,從而產(chǎn)生最終競(jìng)標(biāo)值; 提交所述最終競(jìng)標(biāo)值;接收由于所述最終競(jìng)標(biāo)值高于另一競(jìng)標(biāo)值而使所述最終競(jìng)標(biāo)值未被接受處理所述外部請(qǐng)求的通知;以及不由所述閑置計(jì)算機(jī)節(jié)點(diǎn)處理所述外部請(qǐng)求。
27.根據(jù)權(quán)利要求沈所述的方法,其中,所述存儲(chǔ)集群是一次寫(xiě)入、多次讀取(WORM)式固定內(nèi)容存儲(chǔ)集群。
28.根據(jù)權(quán)利要求沈所述的方法,還包括通過(guò)對(duì)所述提交的最終競(jìng)標(biāo)值沒(méi)有接收到響應(yīng)來(lái)接收通知。
29.根據(jù)權(quán)利要求沈所述的方法,還包括保持所述閑置計(jì)算機(jī)節(jié)點(diǎn)處于閑置狀態(tài),其中所述閑置狀態(tài)的特征在于所述閑置計(jì)算機(jī)節(jié)點(diǎn)的CPU的時(shí)鐘速度降低。
30.根據(jù)權(quán)利要求1所述的方法,還包括對(duì)所述節(jié)點(diǎn)中包括硬盤(pán)驅(qū)動(dòng)器的第一節(jié)點(diǎn)計(jì)算競(jìng)標(biāo)值,該競(jìng)標(biāo)值減小所述節(jié)點(diǎn)中的所述第一節(jié)點(diǎn)在與活動(dòng)的計(jì)算機(jī)節(jié)點(diǎn)的競(jìng)爭(zhēng)中贏得對(duì)于外部讀取或?qū)懭氲母?jìng)標(biāo)的機(jī)會(huì);以及對(duì)所述節(jié)點(diǎn)中包括固態(tài)驅(qū)動(dòng)器的第二節(jié)點(diǎn)計(jì)算競(jìng)標(biāo)值,該競(jìng)標(biāo)值增大所述節(jié)點(diǎn)中的所述第二節(jié)點(diǎn)在與活動(dòng)的計(jì)算機(jī)節(jié)點(diǎn)的競(jìng)爭(zhēng)中贏得對(duì)于外部讀取或?qū)懭氲母?jìng)標(biāo)的機(jī)會(huì)。
31.根據(jù)權(quán)利要求8所述的方法,還包括對(duì)于包括磁盤(pán)驅(qū)動(dòng)器的每個(gè)磁盤(pán)卷,調(diào)節(jié)寫(xiě)入或讀取競(jìng)標(biāo)值,以減小包括所述磁盤(pán)驅(qū)動(dòng)器的所述卷在與活動(dòng)的計(jì)算機(jī)節(jié)點(diǎn)的競(jìng)爭(zhēng)中贏得對(duì)于外部寫(xiě)入或讀取的競(jìng)標(biāo)的機(jī)會(huì);以及對(duì)于包括固態(tài)驅(qū)動(dòng)器的每個(gè)磁盤(pán)卷,調(diào)節(jié)寫(xiě)入或讀取競(jìng)標(biāo)值,以增大包括所述固態(tài)驅(qū)動(dòng)器的所述卷在與活動(dòng)的計(jì)算機(jī)節(jié)點(diǎn)的競(jìng)爭(zhēng)中贏得對(duì)于外部寫(xiě)入或讀取的競(jìng)標(biāo)的機(jī)會(huì)。
32.—種將計(jì)算機(jī)文件寫(xiě)入到具有多個(gè)計(jì)算機(jī)節(jié)點(diǎn)的閑置存儲(chǔ)集群的方法,所述存儲(chǔ)集群包括多個(gè)驅(qū)動(dòng)器、至少一個(gè)固態(tài)驅(qū)動(dòng)器以及至少一個(gè)硬盤(pán)驅(qū)動(dòng)器,所述方法包括在所述存儲(chǔ)集群的第一計(jì)算機(jī)節(jié)點(diǎn)接收來(lái)自外部應(yīng)用的將所述計(jì)算機(jī)文件寫(xiě)入到所述存儲(chǔ)集群中的請(qǐng)求,所述閑置存儲(chǔ)集群的所述多個(gè)驅(qū)動(dòng)器全部都處于閑置狀態(tài);從所述第一計(jì)算機(jī)節(jié)點(diǎn)發(fā)送組播消息給所述存儲(chǔ)集群中的所述計(jì)算機(jī)節(jié)點(diǎn),所述組播消息請(qǐng)求對(duì)寫(xiě)入所述計(jì)算機(jī)文件的競(jìng)標(biāo);所述計(jì)算機(jī)節(jié)點(diǎn)中的每個(gè)都計(jì)算寫(xiě)入所述計(jì)算機(jī)文件的機(jī)會(huì)的競(jìng)標(biāo)值,其中來(lái)自包括所述至少一個(gè)固態(tài)驅(qū)動(dòng)器的第一計(jì)算機(jī)節(jié)點(diǎn)的第一競(jìng)標(biāo)值低于來(lái)自包括所述至少一個(gè)硬盤(pán)驅(qū)動(dòng)器的任何其他計(jì)算機(jī)節(jié)點(diǎn)的第二競(jìng)標(biāo)值;選擇具有最低競(jìng)標(biāo)值的所述第一計(jì)算機(jī)節(jié)點(diǎn);以及將所述計(jì)算機(jī)文件從所述外部客戶應(yīng)用寫(xiě)入到所述選擇的第一計(jì)算機(jī)節(jié)點(diǎn)的所述至少一個(gè)固態(tài)驅(qū)動(dòng)器上。
33.根據(jù)權(quán)利要求32所述的方法,其中,所述存儲(chǔ)集群是一次寫(xiě)入、多次讀取(WORM)式固定內(nèi)容存儲(chǔ)集群。
全文摘要
固定內(nèi)容存儲(chǔ)集群中的每個(gè)節(jié)點(diǎn)和卷基于在可配置時(shí)期內(nèi)沒(méi)有收到來(lái)自客戶應(yīng)用和節(jié)點(diǎn)的請(qǐng)求而作出關(guān)于是否減少功耗的獨(dú)立決定。節(jié)點(diǎn)配置參數(shù)sleepAfter和wakeAfter分別確定在使節(jié)點(diǎn)或卷閑置之前需要等待多久以及在重新執(zhí)行完整性檢查之前需要在閑置時(shí)等待多久。競(jìng)標(biāo)值由每個(gè)節(jié)點(diǎn)計(jì)算,該競(jìng)標(biāo)值反映節(jié)點(diǎn)寫(xiě)入文件、讀取文件或者保持文件的拷貝的成本是多少。具有最低競(jìng)標(biāo)值的節(jié)點(diǎn)獲勝,并且閑置的節(jié)點(diǎn)向每個(gè)競(jìng)標(biāo)添加補(bǔ)貼,以幫助確保閑置節(jié)點(diǎn)是保持閑置的。通常,具有較大容量的節(jié)點(diǎn)將提交較低的競(jìng)標(biāo)值以寫(xiě)入文件。在存檔模式下,寫(xiě)入競(jìng)標(biāo)被改變,這意味著具有較小容量的節(jié)點(diǎn)提交較低的競(jìng)標(biāo)值,從而意味著較滿的節(jié)點(diǎn)更快地充滿,并且然后閑置,而空的或幾乎空的節(jié)點(diǎn)可以保持閑置一定時(shí)間,直至贏得寫(xiě)入競(jìng)標(biāo)。
文檔編號(hào)G06F15/16GK102549524SQ201080043017
公開(kāi)日2012年7月4日 申請(qǐng)日期2010年7月19日 優(yōu)先權(quán)日2009年7月20日
發(fā)明者D·約亞克利, J·E·杜頓, L·阿比拉 申請(qǐng)人:卡林戈公司