點822經(jīng)由因特網(wǎng)830互連。在這一例子 中,如在上文結(jié)合圖7描述的例子(其中管理策略要求第二副本存儲于分離地理位置)中那 樣,按照地理位置組織節(jié)點,從而使得能夠在節(jié)點和/或地理基礎(chǔ)上定義和實施管理策略。 也可以在管理員向在層級的任何級別的任何存儲位置(包括但不限于盤、節(jié)點和地理位置) 分配的屬性方面定義管理策略。
[0052] 圖9是圖示用于訪問對象的過程的一個實施例的流程圖。在所示例子中,例如從 客戶端計算機接收如下請求,該請求針對訪問在請求中命名的內(nèi)容對象(902)。如上文描 述的那樣,根據(jù)名稱確定對象特征,并且例如基于訪問概率、成本信息和管理策略確定預(yù)期 請求的對象可能存儲于其上的一個或者多個節(jié)點的集合(904)。在一些實施例中,為了選 擇將從其嘗試訪問請求的對象的節(jié)點,處理訪問請求的節(jié)點基于訪問統(tǒng)計、成本信息和管 理策略確定節(jié)點如果被請求這樣做則將在何處存儲對象。在一些替代實施例中,訪問概率 信息用來選擇將其上存儲對象的節(jié)點,但是存儲的對象計數(shù)和根據(jù)這些計數(shù)導(dǎo)出的概率信 息用來選擇將從其嘗試訪問請求的對象的節(jié)點。在一些實施例中,在使用訪問(或者存儲對 象)概率和其他信息確定將從其嘗試取回請求的對象的節(jié)點之前,檢查本地索引以確定是 否本地存儲對象,并且如果是這樣,則從本地存儲供應(yīng)對象并且圖9的過程未完成。一旦已 經(jīng)選擇將從其嘗試取回請求的對象的節(jié)點,就從該節(jié)點嘗試取回請求的對象(908)。如果 嘗試成功(910)(即所選節(jié)點具有對象的副本并且提供對對象的訪問),則該過程結(jié)束。如 果不是,則確定是否任何更多候選節(jié)點留待檢查(912)。如果是這樣,則選擇下一候選節(jié)點 (914,906)并且嘗試從該節(jié)點取回對象(908)。如果可用于檢查的最后節(jié)點沒有對象的副本 (912),則返回如下異常(916),該異常指示預(yù)計具有對象的節(jié)點事實上無副本并且圖9的 過程結(jié)束。在一些實施例中,異常(916)造成檢查全局異常索引以查看對象是否已經(jīng)存儲 于在索引中標(biāo)識的位置/節(jié)點中。如果是這樣,則從在索引中指示的節(jié)點取回對象。如果 不能發(fā)現(xiàn)副本,則向請求客戶端反回如下錯誤,該錯誤指示對象未存在于分布式存儲中。
[0053] 在以下例子中: ?J是如結(jié)合圖3的308在[0040]中描述的訪問概率矩陣。
[0054] ?Z是在如上文結(jié)合圖3的309描述的[0041]中計算的每行的p值矢量。
[0055]?提來自上文結(jié)合圖3的305描述的[0039]的訪問簡檔矩陣中的所有單元的標(biāo) 量和除以來自[0039]的訪問數(shù)量。
[0056] 在一些實施例中,訪問計數(shù)矩陣具有每個特征的一行和每個訪問位置的一列。在 五十次訪問之后的用于六個特征和四個位置的例子矩陣是:
利用這一矩陣,發(fā)現(xiàn)的共享狀態(tài)值是:
在這一例子中,第三特征與底層訪問群體的差異具有純粹偶然出現(xiàn)的高概率。所有其 他特征具有高程度顯著性,這意味著它們的差異不可能已經(jīng)純粹隨機出現(xiàn)。
[0057] -旦已經(jīng)針對對象確定特征集合,就有可能接近對應(yīng)訪問概率。系統(tǒng)在從給定節(jié) 點或者位置訪問對象的先驗概率將與該節(jié)點或者位置在全部訪問中的份額對應(yīng)的假設(shè)之 下操作。假設(shè)對象訪問將以某些基本頻率發(fā)生,每個位置在全部訪問中的份額然后與它的 相對始發(fā)訪問頻率對應(yīng)。又通過將每個特征簡單地視為對位置概率的獨立觀測根據(jù)貝葉斯 定理更新這些概率。即使在特征之間的依賴性可能存在,但是如果依賴性在類中均勻分布 或者如果依賴性相互抵消,則這一方法仍然將是最優(yōu)的。
[0058] 針對每個新的分布值集合,將列和的矢量(代表與每個節(jié)點對應(yīng)的特征訪問頻率) 計算為:
將行和的矢量(代表與每個特征對應(yīng)的特征訪問頻率)計算為:
針對每次嘗試發(fā)現(xiàn)或者存儲對象,初始化預(yù)計分布等于全局分布:
針對在給定對象ID中標(biāo)識的每個特征,執(zhí)行貝葉斯規(guī)則的迭代:
為了計算貝葉斯規(guī)則的每次迭代,以下等式用來發(fā)現(xiàn)概率(針對每個對象訪問將遞增 多個特征計數(shù)的事實調(diào)整)。
[0059] 在貝葉斯規(guī)則的每次迭代之后,系統(tǒng)具有先驗分布、后驗分布和與先前評估的特 征關(guān)聯(lián)的P值。除了采用后驗分布作為用于下一次迭代的先驗分布之外,系統(tǒng)可以代之以 接受通過使用P值確定的中間值。一種選擇中間值的方式是將加權(quán)平均值與P值(向先驗 分布給予的權(quán)重)和1-P值(向后驗分布給予的權(quán)重)一起使用。由于系統(tǒng)可以關(guān)于具有很 少收集數(shù)據(jù)的特征或者存在于幾乎每個對象中的特征做出決定,所以希望防止這些特征的 概率過量影響預(yù)測概率分布。通過按照特征的P值對概率改變加權(quán)來防止這一過量影響。 在一些實施例中,針對非布爾特征,諸如通過將置信水平與(1-P值)的乘積用于后驗分布的 權(quán)重并且將1-(后驗權(quán)重)用于先驗分布的權(quán)重來在這些計算中包括置信水平。
[0060] 由于統(tǒng)計按照特征提供訪問頻率和對象群體,所以有可能檢測具有不成比例高的 訪問率的特征。具有這些特征的對象更可能是證實附加復(fù)制合理的熱內(nèi)容。在各種實施例 中,當(dāng)存儲對象時,可以針對在層級中的各種級別處的位置或者其組合的絕對訪問頻率檢 查對象。針對具有比某些閾值量大的絕對訪問頻率的任何位置以及未禁止存儲于該位置的 管理策略,可以精細(xì)將附加副本放置于該位置的嘗試。類似地,如果任何位置在初始對象存 儲之后觀測它對某些對象的訪問頻率超過某些閾值,則附加副本可以存儲于該位置以減少 訪問成本。因此,系統(tǒng)可以關(guān)于對象的額外副本的搶先分布做出決定??梢酝ㄟ^允許取回 對象的任何節(jié)點存儲本地副本持續(xù)有限時間段來獲得相似性質(zhì)。有限時間段確保以后可以 刪除對象而無高速緩存的副本拖延。這一高速緩存邏輯可以使用最近最少使用驅(qū)逐策略或 者在內(nèi)容分發(fā)網(wǎng)絡(luò)或者web高速緩存方案中使用的任何其他方法。使用高速緩存供應(yīng)熱內(nèi) 容造成對文件的反應(yīng)性而不是前攝(proactive)復(fù)制。然而高速緩存傾向于更立即有用的 對象放置。
[0061] 例子。存儲具有特征2、3和5的對象而未針對顯著性調(diào)整,系統(tǒng)首先發(fā)現(xiàn)針對對 象訪問位置的先驗預(yù)計。使用來自上例的A值,系統(tǒng)計算C= #l:。
[0063] 針對第一位置,系統(tǒng)計算:
針對每個位置發(fā)生計算。在更新所有位置之后(保留更多精度)有新的預(yù)計分布
系統(tǒng)針對存在于對象中的其他特征重復(fù)這些步驟以提煉預(yù)計訪問分布。在處理所有三 個特征之后,將最終分布計算為:
所得節(jié)點概率與訪問率(針對這一對象預(yù)測的每個時間段的相對訪問數(shù)量)有效地對 應(yīng)。盡管知道相對訪問率是有用的,但是它未標(biāo)識對象的最經(jīng)濟(jì)高效放置。當(dāng)集成預(yù)測訪 問率與網(wǎng)絡(luò)成本時,以下系統(tǒng)使用于各種實施例中。
[0064] 在一些實施例中,實驗確定并且通過分布式合意偶爾修整成本??紤]資源和輔助 成本(諸如訪問延時)。這些成本度量組合實際預(yù)算外(outofpocket)成本(例如每吉比 特網(wǎng)絡(luò)傳送成本$1)和間接成本(例如用戶等待時間或者帶寬爭用)兩者。甚至對于本地訪 問,仍然有基本成本(諸如使用盤I/O通道的機會成本)。
[0065] 成本矩陣的一種解釋是每行代表潛在存儲位置并且每列代表潛在資源訪問位置。 矩陣的單元然后保持每個訪問單位的成本度量?;境杀狙刂杀揪仃嚨膶蔷€出現(xiàn)并且 根據(jù)與訪問關(guān)聯(lián)的本地機器和LAN開支來確定。這一基本成本隨著WAN傳送成本相關(guān)度減 少而增加。
[0066] 將成本矩陣表示為,其中每個元素是從源位置j訪問在位置i存儲的對象的成 本。將對象特定概率矢量稱為&.,其中每個元素是從位置i方問對象的概率。注意概率矢 量/^一些實施例中無需求和為1;相對概率是重要性質(zhì)。如果對象存儲于位置i,則矩陣 乘積給出的矢量5;.給出每次訪問的預(yù)計平均成本。
[0067] 對于洛杉磯、紐約、倫敦和東京這些位置,例子成本矩陣如下:
使用來自上例的矢量乃
在各種實施例中,在選擇任何位置用于存儲數(shù)據(jù)之前查詢管理策略。管理策略的所有 方面可以是全局的或者代之以按照對象標(biāo)識符變化。如果策略禁止存儲位置,則去除成本 矩陣中的對應(yīng)行和列。在這一情況下也去除位置概率矢量中的對應(yīng)條目。策略可以指定其 他調(diào)整(諸如增加與位置關(guān)聯(lián)的概率或者親和性(affinity))。管理策略也可以指定系統(tǒng)必 須在選擇位置和節(jié)點時滿足的存儲冗余要求。在進(jìn)行所有必需調(diào)整并且確定與預(yù)計訪問簡 檔關(guān)聯(lián)的成本之后,選擇存儲位置(如下文描述的那樣)。從與在管理策略中指定的冗余要 求一致的所選位置選擇節(jié)點集合。如果需要更多存儲位置,則系統(tǒng)將調(diào)整用于下一迭代的 成本矩陣和概率數(shù)量、執(zhí)行新的矩陣乘法并且選擇下一存儲位置。每當(dāng)選擇存儲位置時,管 理策略可以取消其他潛在存儲位置的資格。例如,當(dāng)在兩個地理位置中需要三個副本的對 象已經(jīng)兩次存儲于相同地理位置時,可以取消相同地理位置中的所有其他潛在存儲選擇的 資格,以便防止做出如下存儲位置集合的選擇,這些存儲位置集合的選擇超過冗余策略所 需冗余量。這一位置和節(jié)點選擇過程重復(fù)直至滿足管理策略??梢栽谒泄?jié)點之間復(fù)制或 者在可靠全局?jǐn)?shù)據(jù)結(jié)構(gòu)(諸如跳圖(Skipgraph))中存儲管理策略。
[0068] 在描述在各種實施例中存儲節(jié)點的選擇的以下例子中使用以下術(shù)語: ?尾是節(jié)點的偏置。該偏置為非零并且為正。矢量i?中的所有偏置之和是盡^
[0069] ?盡(〇)是與節(jié)點對應(yīng)的散列函數(shù)關(guān)聯(lián)的對象〇的散列。所有散列均勻分布于 相同范圍0彡盡(〇)彡盡"中。
[0070] ? 是最大可能散列值。
[0071] ? | |別|表示矢量屈勺矢量范數(shù)。
[0072] 在純粹針對最低訪問成本而優(yōu)化的系統(tǒng)中,對象將總是存儲于最低成本的位置。 親和性是對可以向每個可能存儲位置分配的相對有利條件的測量。確切親和性不相干;僅 它們的相對值有意義。在每個存儲位置的成本矢量貨合定時,可以通過將每個成本值替換 為它的倒數(shù)并且然后將每個值除以所有值之和來完成向分類(categorical)概率分布的轉(zhuǎn) 換。這一將親和性轉(zhuǎn)換成概率的方式向最低成本的選擇分配最多數(shù)據(jù)而又仍然選擇一些更 高成本的位置。因而,當(dāng)本地化網(wǎng)絡(luò)故障出現(xiàn)時,多個對象的復(fù)制品將存在于網(wǎng)絡(luò)的更遠(yuǎn)和 不受影響的區(qū)域中。這些復(fù)制品針對網(wǎng)絡(luò)的出故障的部分減少客戶端訪問具有高親和性的 數(shù)據(jù)失敗的影響。
[0073] 在位置選擇已經(jīng)發(fā)生之后,可以通過將每個節(jié)點的親和性除以在子位置(諸如節(jié) 點或者盤)的所有親和性之和來針對該子位置形成分類概率分布。節(jié)點親和性可以與節(jié)點 資源、管理優(yōu)先或者任何其他一致測量成比例。替代地,可以通過將每個節(jié)點親和性乘以它 的位置的親和性并且取所得集