TW201029393A - Atomic multiple modification of data in a distributed storage system - Google Patents
Atomic multiple modification of data in a distributed storage system Download PDFInfo
- Publication number
- TW201029393A TW201029393A TW098134955A TW98134955A TW201029393A TW 201029393 A TW201029393 A TW 201029393A TW 098134955 A TW098134955 A TW 098134955A TW 98134955 A TW98134955 A TW 98134955A TW 201029393 A TW201029393 A TW 201029393A
- Authority
- TW
- Taiwan
- Prior art keywords
- stream
- streams
- modifications
- medium
- data
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
Description
201029393 、六、發明說明: 【發明所屬之技術領域】 本發明係關於分散式儲存系統内資料的基元多重修 改0 【先前技術】 分散式系統,包含伺服器基地、網路服務以及分散式 Φ 網路儲存系統已經越來越常見,其提供鉅量的計算與儲 存資源。分散式儲存系統運用橫跨遍及潛在廣域網路的 多個節點之儲存空間’用於存取分散式儲存系統内節點 上所儲存資料的資料存取例式必須管理需要同時存取的 多個用戶端’不過,為了維持資料一致性外觀,修改存 取必須限制成一次只能有一部主機可進行。此外,執行 多重修改的用戶端作業必須保持遍及多重修改的應用當 ® 中資料之一致性。 【發明内容】 本發明的具體實施例由底下的申請專利範圍所定義, 而非本發明内容。基於上述理由’此處提供本發明許多 態樣的詳細概觀,提供本發明所揭示事項的概觀,並且 對在底下實施方式段落會更進一步描述的觀念選擇做介 紹。本發明内容並無意於識別所主張申請標的之關鍵特 3 201029393 ‘徵或基本特徵,也無意於用來單獨幫助決定所主張申請 之標的之範疇》 本發明的具體實施例係關於將對於一或多個串流執行 多重修改當成單一基元單元,其被稱為一個基元多重修 改》在某些具體實施例内,若有多重修改的其中之一不 成功(例如若未符合先決條件),則表示該修改套用成功 的情形被逆轉,在基元多重修改開始之前將串流復原至 φ 其原始狀態。 【實施方式】 此處特地以特徵描述本發明的標的以符合法定需求。 不過,此敘述本身並無意於限制本專利的範疇。而是, 發明者考慮到所主張申請標的也可用其他方式具艘實 施、包含不同步驟或結合類似於本文件内所描述之步驟 φ 的步驟組合、與其他目前或未來技術結合❶再者,雖然 此處可能會使用術語「步驟」以及/或「方塊」等暗示運 用不同的方法元件,不過除非有明確描述個別步驟的順 序’否則不應該將這些術語解譯為暗示此處揭示的許多 步驟之間的任何特定順序。 本發明的具體實施例針對以分散方式儲存在健存節點 網路之間的資料進行多重修改》在由分散在大型網路内 多個節點所構成的網路中,可能同時有複數個用戶端作 4 201029393 . 業(client sessions)存取每一資料單元。更進一步,要維 持通過網路的不同資料片段之一致性。為了讓通過存取 資料的所有用戶端作業之資料維持一致的外觀,資料的 修改就必須經過協調。若資料修改上並未協調,則可能 發生兩個用戶端以不一致的方式修改兩段資料,導致無 法預期的結果。更進一步,在沒有多重相依修改的基元 應用當中,可能發生修改用戶端作業失敗,造成資料不 〇 一致狀態,或讓第二用戶端作業讀取到代表中間不一致 狀態的資料。 若要避免這種不一致,需要進行基本操作來協調資料 的修改。尤其是,當個別修改的獨立應用建立一暫時不 一致狀態時,要有能力套用多重相依修改至一或多個資 料片段做為基元異動,藉此避免讓分散式網路内其他用 戶端作業資料看起來不一致。更進一步,若一或多個多 春 重修改無法成功套用時,也要可取消整個多重修改集 合,藉此避免因為部分成功異動所導致資料看起來不一 致。此外,吾人想要指定在成功套用一特定修改之前, 必須符合的一或多個預期之先決條件,藉此允許用戶端 作業以「最佳化」方式協調獨立、潛在衝突異動的應用, 而不需要使用分散式鎖定。 依照範例,用戶端作業X和用戶端作業γ都執行一種 演算法,需要Χ、Υ讀取資料Α的值,並且根據之前的 5 201029393
資料A的值以及由個別用戶端作業所決定的其他外部資 料(用戶端作業X的資料Cx以及用戶端作業丫的資料心) 計算資料A和資料B的新值。然後可將a*b的新值寫 入成為基元運算。不過,因為讀取資料A的值與寫入資 料A和資^的新值之間未維持鎖定,~以用戶端作業 X與用戶端作業Υ可能同時讀取"Α,各自計算資料 Α和資料Β的新值先是用戶端然後是用戶端作 業Y將嘗試使用基it修改異動來寫人資料A和資料_ 各自的新值’而兩者都將順利完成。不過,由用戶端作 業X所套㈣修改效果會遭到請戶端作業Y所套用的 修改所覆蓋’導致相對於外部f料的潛在性不—致。為 了避免發生此狀況’許多傳統網路式標案系統要求用戶 端作業宣告跨越資料a讀取到和資❹寫入的分 散式鎖藉此避免直刺戶端作以已經完成更新資 料A和資料B之前,用戶端作取資料a的值。不 過使用分散式鎖定會以重理請,並且導致更脆 弱的分散式系統;例如若用戶端作業又無法釋放鎖定, 則會無限期停止用戶端作業γ進一步處理。本發明藉由 讓用戶端作業X和用戶端作業γ當其f試寫人資料Α與 資料B的新值時’指定必須符合的先決條件來避免明 確的分散式敎的需要。在此範例中,用戶端作業又和 用戶端作業Y都要求在取代資“和資料0之前,資料 6 201029393 A之值必須從被讀取後就未改變。因為在讀取資料a與 寫入資料A和資料B之間並無修改發生,所以用戶端作 業Y將成功更新。不過,因為資料A的值在讀取資料A 與嘗試更新之間已經變更’所以用戶端作業χ將無法成 功更新資料。用戶端作業自由放棄操作,或再次藉 由讀取資料Α重新啟動整個程序。在任何情況下,所有 資料在内部以及外部狀態下都保持一致。 ❿ 已 經儲存在網路内的特定資料可為許多不同形式常 見形式包含檔案以及類似檔案的群組。根據本發明的某 些具趙實施例’將資料組織成串流,其中每—串流都為 由雜項串流元資料特性(例如串流名稱、存取控制政策、 有效期限等)以及參照範圍的排序序列所構成之一資料 實體。每一範圍都由附加方塊的連貫排序序列所構成。 每一附加區塊都不變,並且由位元組值的連貫排序序列 • 所構成。新範圍參照可附加至串流末端,但是一旦附加 之後,就無法從串流當中刪除範圍參照。可讓超過一個 串流含有對於相同範圍的參照,或甚至讓單一串流内含 有對於相同範圍的多個參照。新附加方塊可附加至範 圍,直到範圍封閉,之後範圍變成不可變。一旦範圍已 封閉,就無法解封。不管範圍是否封閉,附加區塊可不 會修改或從範圍當中移除。因此,串流與範圍的尺寸只 會變大。 7 201029393 根據本發明的一個具體實施例,利用將範圍資料儲存 在大型獨立、鬆散耦合的範圍伺服器群組内’以及將描 述每一串流的元資料儲存在集中式伺服器或小型、緊密 柄合的伺服器群組内,將串流組織在一播案系統内。若 要將資料附加至一個範圍,用戶端作業與正確的獨立範 圍伺服器互動,因此附加至範圍具備高度可縮放性,但 疋對於附加至各別範圍的協調沒有幫助。對照之下,所 ® 有相關串流的元資料都保留在集中式伺服器,如此可有 效協調對於串流元資料的更新。 經由範例,與每一串流相關的元資料應包含像是目前 串流名稱、總體唯一識別符(globally unique identifier, GUID)、存取控制政策、有效期限以及參照至組成串流 的範圍之排序清單之資訊。此組織的一項優點為範圍參 照、可從-個串流複製到另一個,不需要移動網路内任何 參資料。取而代之,只改變储存在集中式伺服器上元資料 内的參照清單。因為複製操作只影響到串流元資料因 此可有效包含作為基元多重修改的一部分。在本發明的 其他具體實施例内,元資料本身可散佈在網路内多重節 點之間。熟習此項技術者將了解,本發明可套用於串流 以外的資料格式。 根據某些具體實施例,本發明提供來批次處理多重串 流先決條件限制以及轉換操作成為操作清單,並且使其 201029393
作為-個基元多重修改來執行的能力。操作包含㈣ 元資料先決條件限制、串流建立、串流刪除、串流重新 命名從其他串流當中複製現有範圍參照以及像是有效 期限、唯讀旗標、存取控制資訊以及複製政策這些雜項 串流特性的設^。此外,本發明的某些具體實施例提供 以參照方式將跨串流操作表示成相同多重修改内的其他 修改操作的能力。例如:在多重修改當中,可在由多重 修改所建立的串流當中套用其他操作。類似地,在多重 修改當中,可在由多重修改操作所刪除或重新命名的串 流當中套用其他操作。利用將多重修改内記錄的每一個 別操作與目標串流識別產生㈣,並且制所執行多重 修改内索引的各別紀錄參照在跨串流操作内的來源串 流’在多重修改過程中任何時間上都可參照多重修改期 間已建立識別或已變更名稱的串流。例> :若在要執行 的操作清單内冑5 f紀錄,則&第三操作正建立新串 流,任何其他操作都可參照當成操作3内串流的該串流。 根據一個具體實施例,本發明提供將非修改先決條件 限制表示成多重修改内操作之能力。這些操作本身不會 導致串流狀態的㈣改變;不過,^不符合先決條件時 會導致整個多重修改失敗。這讓多個用户端不需要使用 外部鎖定或其他同步機制而能實施串流狀態的協調操 縱。可指定的先決條件範例包含:串流存在、串流名稱、 9 201029393 串流識別(透過重新命名保留下來的唯一 ID,不過可透過 刪除/重新建立來變更)、串流版本編號、串流有效期限 以及範圍參照計數。 根據進一步具體實施例,本發明提供有效複製部分串 流内容成為新串流當成基元多重修改一部分之能力。串 流可依照參照排序序列塑造成分散在儲存節點網路内的 連讀資料區塊(範圍)。簡單讀取串流内容並以相同資料 ❹ 寫入新串流内’如此就可複製串流’只不過係在新範圍 内。不過,不僅是將大量資料從一個範圍複製到另一個 會牵涉到多個網路節點的昂貴網路/磁碟密集活動,而且 超過一個串流可能參照相同範圍。只要複製範圍就可有 效將非常大的串流區段複製到一不同串流内(可能在一 不同位置内);此動作無足輕重並且不需要複製實際串流 資料内容。更進一步,可由中央元資料伺服器維護經過 © 操縱來執行這種複製的所有狀態。此模型的結論就是’ 將潛在大部分串流内容從一個串流複製到另一個,可當 成基7G多重修改的一部分來執行,而不需要長時間保持 鎖定。用戶端可將此能力用於許多目的,包含串流串接、 垃圾收集、紀錄/曰誌截斷、單一實體以及頻疊。此外, 可將大量不相關的操作批次處理到一基元多重修改當 中’以減少完成特定工作量所需的異動數量。因為元資 料修改屬於耐久性異動,所以在認為完成之前必須重複 201029393 '、,續儲存。耐久性儲存(磁碟)的潛伏/效能確保操作 B異動系統可擴充性/效能當中一主要的限制因素,並 且優點在於具備可將許多操作合併成單一承諾的能力。 另外,因為飼服器可在套用任何變更之前試驗所有操 作,則可進行其他方式無法實施的最佳化。 根據某些具體實施例,本發明促進表示「全或無」語 意以及「同時操作」之能力。全或無語意保證多重修改 ®内若有任何操作失敗,則整個多重修改失敗,並且選擇 用於4改的串流狀態維持在開始多重修改之前的狀態。 這允許用戶端可信賴該狀態的一致性,以及該多重修改 的基元數。多重修改系統的同時操作讓在單一基元多重 修改當中發生特定修改集合,不過若是操作要嚴格依序 執盯時就會變的困難或無效率。經由範例在相同多重 修改當中可用-次操作將串流「A」重新命名為「b」, ❹並且在另—次操作當中將串流「B」重新命名為「A」(即 是用兩次操作交換命名空間中的兩串流這兩次操作若 依序執行的話就會失敗,因為第一次操作由於命名空間 衝突而失敗。依序執行交換需要三次操作,以及導入暫 時串流名稱(即是將「A」重新命名為「c」、將「B」重 新命名為「A」、將「C」重新命名為「B」)。若一項操 作在其他操作成功之後失敗,則將部分完成的多重修改 「解開」(全或無語意)的處理也會複雜化。基元多重修 201029393 改屬於一種同時套用的無排序操作集合、免除用戶端表 示中間-致性狀態之需要,並且讓飼服器將基元多重修 改實施最佳化。 ❿ 根據本發明進-步的具體實施例,本發明提供使用基 元多重修改實施簡單用戶端可存取分散式鎖定與分散式 租約之能力。串流元資料包含有效期限特性,除非有效 期限經過延長,否則此特性會在一指定時間間隔之後, 用來自動删除串流。藉由將有效期限與基元多重修改連 用,用戶端集合可利用嘗試建立具有一致名稱的新串流 來競爭租約或較,並且可利用延長已經成功建立的串 流上之有效期限來延長租約。利用新增自建式租約串流 的存在,以及其持續佔有—致的名稱做為多重修改的額 外先決條件’租_定的所有權可有效新增成為任何其 他串流元資料基元多重修改的先決條件。若用戶端無法 維持租約/鎖定’則租約或鎖定檔案在到期時會被自動刪 除’讓其他用戶端主張該租約。因為該租約或鎖定代表 流的工具與機制(例如命名空間组 ^存取控制、_/檢視等)基本上也可用於租約與鎖 種=本發明的具趙實施例係針對具體化用於執行-=的電觸可執行指令之電滕可讀取館存媒想,其中 對於或多個串流執行多重修 12 201029393 元。選取一或多個串流來修改成為選取的串流。而在與 該等選取的串流相關的一或多個元資料上獲取一鎖定。 與該等選取的串流相關的名稱會自該選取的串流去耦 合’然後在該等選取的串流上執行複數個修改,與該等 選取的串流相關的名稱會重新與該等選取的串流耦合。 之後釋放與該一或多個選取的串流相關的該元資料有關 之鎖定。 ® 根據其他具體實施例,本發明係針對具體化用於執行 一種方法的電腦可執行指令之電腦可讀取儲存媒體,其 中該方法對於一或多個串流執行多重修改作為單一基元 單元。選取一或多個串流來修改成為選取的串流。在與 該等選取的串流相關的元資料上獲取一鎖定。與每一選 取的串流相關的名稱會自該等選取的串流去耦合,然後 在該選取的串流上執行第一次修改,判定若執行第二次 ® 修改會產生不—致。對於該等選取串流的第-次修改已 逆轉’然後與該等選取串流相關的名稱會重新與該等選 取的串流柄合。之後釋放與該等選取串流相關的元資料 上之該鎖定。 根據更進步具體實施例’本發明係針對儲存用於執 订一種方法的電腦可執行指令之電腦可讀取媒體,其中 該方法對於-或多個串流執行多重修改作為單—基元單 元選取或多個只附加(aPPend-only)的串流來修改成 13 201029393 ‘·《選取的串流。在與該等選取串流相關的元資料上獲取 一鎖定,在此獲取該鎖定包括使用作為鎖定串流的一預 疋名稱來修改一與每一選取串流相關的名稱會與 其相關的選取串流去耦合,在該選取的串流上套用第一 次修改。判定若套用第二次修改是否會產生不一致。若 修改會產生不一致,則逆轉對於該選取串流的第一次修 改。若第二次修改不會產生不一致,則將第二次修改套 ® 用至該等選取串流。然後與該選取串流相關的名稱會重 新與該等選取的串流耦合。之後釋放與該等選取串流相 關的該元資料有關之鎖定。 前述已說明本發明具體實施例的概觀,底下說明可實 施本發明具體實施例的一示例性作業環境,以便提供本 發明許多態樣的一般内容。一開始請特別參閲第丨圓, 典型網路拓撲100由許多互連的網路區段1〇1、1〇2、 ® 1〇3、104所組成,其中每一區段都連接至大型網路115» 網路區段1〇1具有主機1〇6以及參與資料儲存的兩節點 105、1〇7。網路區段102具有參與資料儲存的兩節點 108、109。網路區段1〇3具有主機hi以及參與資料儲 存的兩節點110、112。最後,網路區段1〇4具有參與資 料儲存的兩節點113、114。 經由範例’網路上的任何節點都可作為描述網路上所 儲存串流的元資料位置,包含每一串流内範圍參照的清 201029393
單以及保有每一範圍的節點集合。主機lu和主機 上的用戶端作業可同時想要對節點112和節點1〇9上所 儲存具備範圍實體的串流執行基元多重修改。節點ιι〇 可作為元資料控制器。在此情況下,主機lu和1〇6會 同時傳送要求給節點110來變更所要的串流之元資料, 並且產生競爭。利用規定適當先決條件限制發出第一 要求讓節點110成功處理的節點將被允許去修改與該串 流相關的元資料。第二節點的要求將失敗,例如藉由要 求第二節點放棄操作或從一致點重新啟動來處理先決條 件失敗情況。此為樂觀並行模型内的所需行為。若第一 與第二節點需要協調牵涉到多重各別異動的更複雜活 動’則可在其多重修改要求内建立内含先決條件的鎖定 與租約’並且操縱專屬的鎖定/租約串流要求一遺失節 點等待直到釋放該鎖定來執行其修改。 此時請參閱第2圖,其中顯示一示例性節點並且一般 被指定為計算裝置200。計算裝置2〇〇只為合適之計算 環境的個範例,並且不對本發明的使用範鳴或功能性 建議任何限制。也不可將計算襄置細解譯成具有任何 與圖示的任—組件或組件組合有關之相依性或要件。 本發明可在電腦程式喝或機械可用的指令的一般範圍 來描述,包含可由電腦或其 味丹他機器(像是個人資料助理或 其他手持式裝置)執行的電腦可抽—a ^ 4觸可執打指令,像是程式模 15 201029393 組。一般而言,程式模組包含例式、程式、物件、組件、 資料結構等等,參照執行特定工作或實施特定抽象資料 類型之程式碼。本發明可在許多種系統組態内實行,包 含手持式裝置、消費型電子設備、一般用途電腦、特製 計算裝置等。本發明也可在分散式計算環境中實行,其 _工作由透過通訊網路連接的遠端處理裝置所執行。 請參閱第2圖,計算裝置200包含匯流排201,其直 ® 接或間接與下列裝置耦合:網路裝置202、CPU 203、記 憶體204、儲存裝置2〇5以及輸入/輸出(inpUt/output,I/O) 裝置206。匯流排201代表可能是一或多個匯流排(像是 位址匯流排、資料匯流排或這些的組合)。雖然第2圖的 許多方塊為了清晰起見都用線條表示,事實上,用線條 描繪許多組件並不是很清楚,比喻來說,線條會更精確 地為灰色並且模糊。例如,許多處理器具有記憶體。吾 ® 人知道此技術之性質如此,並且重複說明第2圖的圖式 僅說明可與本發明一或多個具體實施例連用的示例性計 算裝置"在像是「工作站」、「伺服器」、「膝上塑電腦」、 「手持式裝置」等等這些類別之間並不做區別,這全都 被考量在第2圖的範疇内’並且意指為「計算裝置」或 「節點」。 汁算裝置200典型上包含許多電腦可讀取媒體,電腦 可讀取的媒艎可以為任何可獲#的媒體(可由計算裝置 16 201029393 200存取)’並且包含揮發以及非揮發性媒體可移除與 不可移除媒體。經由範例並且不受限於此範例電腦可 讀取的媒體可包括電腦儲存媒體以及通訊媒體。電腦儲 存媒體包含在任何方法或技術内實施的揮發與非揮發 性、可移除與不可移除媒體,用於儲存像是電腦可讀取 指令、資料結構、程式模組或其他f料的資訊。電腦儲 存媒體包含但不受限於RAM、R〇M、EEpR〇M、快閃記 © 憶體或其他記憶體技術、CD_R〇M、數位多功能光碟 (digital versatile disk,DVD)或其他光學碟片儲存、磁 ®、磁帶、磁碟片儲存或其他磁性儲存裝置或其他任 何可用於料所要資訊並且可由計算裝置2⑼存取的媒 體。 ' 記憶體204包含揮發性記憶體形式的電腦儲存媒體。 不例後硬體裝置包含固態記憶體,像是RAM。儲存裝置 © 205包含非揮發性記憶體形式的電腦儲存媒體。該記憶 體可為可移除式、不可移除式或這兩者的組合。示例性 硬體裝置包含固態記憶體、硬碟、光碟機等等。計算裝 置2〇0包含一或多個從許多實鱧,像是記憶體204、儲 存裝置205或1/〇裝置2〇6讀取資料的處理器(cpu) 203 I/O裝置2〇6讓計算裝置2⑼邏輯耦合至其他包含 有些可能是内建之輸人組件與輸出組件之裝置。例示的 組件包含麥克風、搖桿、遊戲控制器、衛星碟、掃描器、 17 201029393 印表機、無線裝置等等◊計算裝置200包含便於與其他 網路裝置通訊的網路裝置202,網路裝置2〇2作為一額 外的I/O裝置。 熟習此項技術者將了解,儲存在計算裝置(稱為節點或 儲存節點)的網路内之資料可用許多方式格式化。經由範 例,常見於獨立資料檔,像是音樂檔、視訊槽、文字處 理文件以及以分散式方式儲存的同類檔案。根據本發明 © 的一具體實施例,將資料塑造成串流的集合,其可組織 成為-傳統階層式命名空間。第3圖描述串流綱作為 -示例性資料格式,用於資料儲存並且其上可根據本發 明的某些具邇實施例進行基元多重修改。串流遍為邏 輯上相關的資料之集合。根據本發明的某些具體實施 例’串流3G0屬於只附加型並且尺寸可能非常大,可能 超出網路節點單獨儲存容量好幾倍。串流3〇〇可由握把 β (handie)或名稱所存取,並且每—串流,例如串流则, 具備維持與存取政策。根據本發明的某些具體實施例, 每一串流也具有相關的總體唯一識別符(gl〇baUy unique identifier,GUID),這在串流壽命期間無法改變(即與 名稱不同,該名稱可被修改,GUID永久識別與其相關的 串流)。例如,串流300可看待成一系列位元組。串流3〇〇 由系列有排序的範圍301、302、303所構成,範圍301、 〇2 303為串流300的配置單元。範圍3〇1、3〇2、3〇3 18 201029393 也屬於只附加型’並且每一範圍301、3 02、303都使用 一總艘唯一識別符(GUID)來識別。範圍301、302、303 可分散在網路内許多節點之間。範圍3〇1、3〇2、3〇3可 被共同複製,並且範圍301、3〇2、3〇3的複製可分散在 網路内許多節點之間。範圍3〇1、3〇2、3〇3具有尺寸限 制(例如2 GB) ’並且是有許多用途的一分割單元。範圍 3 01、302、303的尺寸有時受到限制,以便將串流區分 ® 成可平行處理的厚片段,用於故障恢復、負載平衡、複 製、搜尋以及/或資料探勘。範圍的尺寸也受到儲存系統 故障恢復模式的限制。 根據本發明的某些具體實施例,串流3〇〇儲存對於每
增至串流300 ❹ 至串流,而不用複製或移動與該範圍相關 ,呈由範例’若要將範目301的其他複製新 並不需要改變或複製節點(伺服器)304上 19 201029393 的資料。反而,一額外範圍參照新增至已經在串流3〇〇 内的範圍參照清單。 串流由元資料表示,根據本發明的具體實施例,元資 料其本身可分散遍及網路或儲存在集中式㈣器上。此 時月參閱第4圖’經由圖不’元資料4〇。為含有關於串 流之資訊的㈣集合。根據本發明某些具體實施例,與 串流相關的元資料400包冬θ I & Λ ^ ❹ 匕3目則與串流401相關的名 稱。串流名稱定位目錄結構内由用戶端存取資料所使用 的串流,名稱可隨串流移動與修改而變。根據本發明的 某些具體實施例’主機依照名稱4G1存取串流。元資料 彻也包含GUID4G2,此為總趙唯—、永久並且專屬相 關於串流的識別符(即是-串流的GUID 402永遠不變, 並且/又有兩個串流分享相同# GUID)。與串流相關的元 參 -貝料400也含有組成串流的範圍參照的清單。每一 範圍參照403都識別-特定範圍,並允許用戶端或飼服 器定位出網路内範圍的所有複製,提供實際資料之實體 存取。 基元多重修改牵涉到對一或多個串流執行多重修改。 經由範例,修改包含建立新串流、刪除串流、重新命名 串流、串接兩或多個串流、建立一現有串流的複本以及 將一串流範園的子集複製到第二串流。熟習此項技術者 將了解’有許多其他可能的修改可組合用來組成基元多 20 201029393 重修改。此時缚知 磧翻閱第5圖,考慮基元多重修改的一範 例。指令5〇3沾之4〜 的多重修改集合由將串流5〇1從r Aj重新 命名為「Β, 且將串流502從「Β」重新命名為「a」 成晃、習此項技術者就會了解,使用標準資料複製 方法需要%時儲存區來執行這種修改,並且讓故障恢 復更複雜目為如果發生錯誤,復原邏輯需要清除暫存 區並更需要確定串流501和串流502在從故障恢復之 後到違總體-致狀態。不過,根據本發明的一個具體實 施例基7〇多重修改當成一個步驟來執行藉此簡化復 原邏輯因為串流5〇1和串流5〇2在面對故障時都呈現 致狀態ϋ且無暫存區要清除。經由範例,首先從串 流训和串流502的元資料當中移除其名稱(分別為% 和「Bj),如此兩串流都變成無名稱。這種將串流與串 流命名空間的W合允許多重修改發生。 ❷ 修改集合503内的笛 u J4t L. 内的第一次修改509已執行。在此情況 下,串流5〇i將被重新命名為「B」。要達成此情況,串 流训的名稱設定為「B」,並且串流5〇1重新附加至串 流命名空間。其可在無命名空間衝突之下達成,因為當 串流502與串流命名空間分離時,名稱%變成可用。 來自修改集合503的第二次修改512也已執行。在此情 況下,串流502將被重新命名 串流502的名稱設定為「a」, 為「A」。要達成此情況, 並且串流502重新附加至 21 201029393 串流命名空間。其可在無命名空間衝突之下達成,因為 當串流5〇1與串流命名空間分離時,名稱「A」變成可用。
此時請參閱第6圖’其緣示了提供根據本發明具體實 施例用於在—或多選取的串流上執行基元多重修改的方 法600之流程圖。選取一或多個串流來修改如方塊6〇1 上所示。熟習此項技術者將了解,有許多方式可選取串 流用於修改。經由範例’一應用程式可提供一串流清單, 每-都由其目前名稱或GUID所參照,要包含成為選取 用於修改的串ϋ稱及/或Gum的清單用於找出每一 _流的7C資料’包含與串流相關的範圍參照清單。根據 本發明的某些具體實施例,也根據元資料内的資訊來定 位每一串流的實體位置。 一或多個串流的元資料 在相關於選取每個用於修改的 上,以及多重修改涵蓋的串流命名空間上獲取一鎖定, 如方塊602上所示…旦已獲取—鎖定,主要用於刪除 或重新命名的選取串流會與其各別名稱去耦合如方塊 60S上所示。根據本發明的某些具體實施例,這幫助多 重修改的應用,該等修改影響串流的方式猶如修改同時 發生、經由㈣’則建立暫時映射儲存串流GmD的 原始輕合來命名每一選取串流, 名稱去柄合。 如此可將串流與其相關 ’雖然 多重修改可用作為基元多重修改的方式來製作 22 201029393 第6圖内顯示兩修改,熟習此項技術者將了解任何數 量的修改都可結合形成單一基元多重修改,而在一或多 個選取的串流上操作。第一次修改在一或多個串流上執 行,如方塊604上所示,並且執行第二次修改,如方塊 605上所示。根據本發明的某些具體實施例這些修改 同時發生,相對於依序發生。經由範例,修改包含建立 新串流、刪除串流、重新命名串流、更新串流的元資料、 ❹ 建立現有串流的複本、串接兩或多個串流以及將串流範 圍的子集複製到第二串流。 一旦基元多重修改内所有修改都已完成,則串流與名 稱重新連結,如方塊606上所示。根據本發明的某些具 體實施例,基於由套用至對應串流的每一修改對暫時映 射進行之變更’將串流名稱编合至串流β串流的Guid 用於追蹤這些變更,並且影響重新搞合。元資料上之一 〇 鎖定或複數個鎖定與一或多個串流的每一個都相關,以 及多重修改涵蓋的串流命名空間已釋放,如方塊607上 所示。 此時請翻閱第7圖’其繪示了提供根據本發明具體實 施例用於在一或多個選取串流上執行基元多重修改的方 法700之流程圖,其中該多重修改内的修改無法成功完 成。在執行期間有可能使修改組成基元多重修改,該修 改的其中之一在執行後無法成功完成。經由範例,多重 23 201029393 修改内的兩修改都嘗試造成具有相同名稱的串流(例如 透過串流建立或重新命名)。因此,若讓多重修改成功, 則結果狀態取決於修改執行的排序’並且無法執行該等 修改猶如他們同時發生《一旦發現這種情況,則逆轉到 目前為止執行過屬於基元多重修改一部分的所有修改, 並且將串流元資料重設成基元多重修改開始之前的狀 感。類似於第6圖的方法600,選擇一或多個串流用於 〇 基元多重修改的應用,如方塊701上所示,並且在與每 一選取串流相關的元資料上獲取一鎖定,如方塊7〇2上 所示。 每一選取的串流都與其相關名稱去耦合,如方塊7〇3 上所示,並且第一次修改套用到一或多個選取的串流, 如方塊704上所示’這類似於第6圖的方塊603和604。 然後做出對於選取串流的第二次修改未成功完成之判 ® 定’如方塊705上所示。熟習此項技術者可了解,有許 多方式可做出這種判定。根據本發明的某些具體實施 例’暫時往復突變(reversible mutation)歷史用來額外提 供機制,以解開執行基元多重修改處理内之任何步驟。 一旦已經判定基元多重修改應用内將發生失敗,則逆 轉已經套用的修改’如方塊706上所示。在逆轉對於選 取串流所做任何修改之後,串流重新與其各別原始名稱 輕合’並且刪除新建立的串流,如方塊707上所示。一 24 201029393 旦已經逆轉修改、串流重新與其原始名稱耦合,並且刪 除新建立的串流,則釋放鎖定,如方塊708上所示,這 類似於第6圖内的方塊607。 根據本發明的某些具體實施例,底下第8圖的流程圖 中說明用於在一或多選取串流上執行基元多重修改之方 法。若價測到組成基元多重修改的修改中之一者將失 敗,則中斷該基元多重修改並且讓串流回到開始基元多 G 重修改之前的狀態。選擇一或多個串流用於修改,如方 塊801上所示’並且在與選取串流相關的元資料上獲取 一鎖定’如方塊802上所示,這類似於第6圖的方塊601 和 602。 目標在於刪除或重新命名的每一串流都舆其相關名稱 去耦合,如方塊803上所示,並且執行第一次修改,如 方塊804上所示’這類似於第6圖的方塊603和604。 ® 然後判定第二次修改的應用是否無法成功完成,如方塊 805上所示。此判定之作出可以類似於第7圖的方塊705 之判定的方式。例如,若套用第二次修改將相關於一串 流,該串流名稱已經由第一次修改相關於其他串流,或 在之前的異動内,判定第二次修改將不會成功完成。 若判定第二次修改可被成功執行,則執行第二次修 改’如方塊806上所示’串流會重新耦合至其最終相關 名稱,如方塊808上所示,並且釋放與選取用於修改和 25 201029393 串流命名㈣的串流相關之元資料上的—鎖定與複數個 鎖定’如方塊8G9上所示 這些步驟的每—個可分別以 類似於第6圖的步驟605、6〇6和607來執行。 不過,若判定第二次修改會失敗,則逆轉第—次修改, 如方塊807上所示,串流重新耦合至其原始相關名稱, 如方塊808上所示,刪除任何新建立的串流並且釋放 與選取用於修改和_流命名空間的串流相關之元資料上 ® 的一鎖定與複數個鎖定,如方塊809上所示。這些步驟 的每一個可分別以類似於第7圖的步驟7〇6、7〇7和7〇8 來執行》 如圖所示’第9圖展示已執行的多重修改範例。第9 圖的範例包含在系統内說明狀態的「檢查點+紀錄」系統 的實施。在這種系統内’系統狀態由含有完整狀態資訊 的快照’稱為檢查點,以及許多含有從最後已知檢查點 ® 所做之變更的更小差量所表示。紀錄含有這些差量的清 單°若要到達系統的目前狀態’用戶端應該對於最後快 照套用記錄内在最後快照之後所發生的所有差量。發生 在最近快照之前的快照與差量都已過時並且不再需要, 因此垃圾收集處理可定期清除過期的快照與差量。熟習 此項技術者將了解,對於基元多重修改而言還有許多其 他系統應用。 例如:考量儲存相薄的系統’其中用三個串流代表相 26 201029393 薄:ALBUM.CHECKPOINTS 901、ALBUM.DELTA 902 以及 ALBUM.DATA 903。ALBUM.CHECKPOINTS 901 儲 存所有相片的完整清單,以及相薄内特定時間點上的註 釋。相片的刪除與新增都儲存在ALBUM.DELTA 902内。 實際相片則儲存在ALBUM.DATA 903内。此相薄可同時 由數千個用戶端存取,每一用戶端都可新增相片、編輯 與取代相片、刪除相片、重新命名相片、註釋相片等等, ❹ ALBUM.DELTA 902檔會定期地變得非常大並導致用戶 端歷經非常長的載入時間。另外,ALBUM.DATA 903内 的範圍不再有來自任何最近檢查點或差量的任何參照 (例如在那些範圍内的相片已經被刪除)。
數千個用戶端的每一個都可——開啟這些串流,垃圾 收集處理最終可決定從串流當中移除不需要的項目,例 如:假設ALBUM.CHECKPOINTS 901由兩範圍構成,第 Φ 一個具有舊檢查點904並且第二個具有最新檢查點 905。因為新檢查點含有完整系統快照,因此可移除舊檢 查點。ALBUM.DELTA 902也由多個範圍構成,此範例 中,假設來自目前檢查點905的相關差量全都在 ALBULM.DELTA 的最後範圍 906 内。ALBUM.DATA 903 含有許多範圍並且散布其中的是無參照串流的範園,換 言之,就是可移除的範圍。例如:只有ID是R、S、Y、 Z (912、913、914、91 5)的範圍要保留在 ALBUM.DATA 27 201029393 串流内。若要清除不需要的範圍,垃圾收集處理可執行 下列修改:從ALBUM.CHECKPOINTS 901當中移除舊範 圍、從ALBUM.DELTA 902當中移除舊範圍,以及移除 ALBUM.DATA 903 内 ALBUM.CHECKPOINTS 901 和 ALBUM.DELTA 902當中剩餘範圍内無參照的任何範 圍。垃圾收集處理可使用基元多重修改以達成這些修改。 垃圾收集處理可使用的基元多重修改範例含有下列修 φ 改,修改1 :建立名為ALBUM.CHECKPOINTS 907的新 串流、刪除具備STREAM_ID 901的串流以及將
EXTENT_ID 5 910附加至新串流,其指派為ID 修改2 :建立名為ALBUM.DELTA 908的新串流、刪除具 備 STREAM_ID 902 的串流以及將 EXTENT—ID I 911附加至新串流,其指派為STREAM_ID FCZXE。修改 3 :建立名為ALBUM.DATA 909的新串流、刪除具備 ❷ STREAM_ID DEFF 903 的串流以及將 EXTENT_ID 及 912、EXTENT ID S 913、EXTENT ID Y 914 和 EXTENT_ID Z 915附加至新串流,其指派為ID i?«STF。 因為所有修改都以基元方式執行,所以用戶端所見都是 一致的相薄。在此特定範例中,在個別多重修改異動内 修改每一串流,在邏輯上也是正確的。為了效率,這些 串流在單一多重修改異動内被修改(以減少異動量)《但 是熟習此項技術者將了解,在許多情境内還是有多個串 28 201029393 =須:一個基元多重修改内修改,以確保這些串流之 間的-致性,並且這些情境,可使用多重修改支援。 的 離本發明精神與料之下,可能有許多已說明 明具體實Γ顯示組件的許多不同配置。6說明的本發 睁解不^例在於圖示而並非設限,熟習此項技術者將 參 料之下冑㈣㈣代具趙實施例。在不背離本發明 置。 ,精通的技師可發展出實施前述改良的替代裝 昭=瞭解,特定特徵與子集都有其用處,可在不參 的範蜂内徵與子集之下運用並且被考量在申請專利範圍 二:順::r_所有步驟並一 【圖式簡單說明】 #下將參閲附圖詳細說明本發明的具體實施例, 1圖說明適合用來實施本發明的示例性網路環境 第圖式 其中: 之 第2圖說明適合用來實施本發明的 方塊阖 示例性計算裝置 之 第 塊圖; 3圖為根據本發明之具體實施例的示例性串流之方 料方 第4圖為根據本發明之具體實施例的示例性元資 29 201029393 塊之方塊圏; :圖圖為根據本發明之具體實施例的示例性多重修改 重::至圖說明顯示根據本發明之具體實施例用於執行多 i至―或多個串流作為單一基元單元的方法之流程 圖, 第7圖說明顯示根據本發明之具體實施例用於若判定 ® 在一或多個選取串流内第二次修改將失敗時,逆轉成功 修改的方法之流程圖; 第8圖說明顯示根據本發明具體實施例用於執行多重 修改至一或多個串流作為單一基元單元’包含判定該多 重修改的其中之一是否導致不一致或失敗的方法之流程 圖;以及 第9圖說明根據本發明具體實施例的多重修改之範 例。 【主要元件符號說明】 100網路拓撲 105節點 1 〇 1網路區段 106主機 102網路區段 107節點 103網路區段 108節點 104網路區段 109節點 30 201029393
11 0節點 501串流 111主機 502串流 112節點 503指令/修改集合 11 3節點 509第一次修改 11 4節點 5 12第二次修改 11 5大型網路 601-607步驟流程 200計算裝置 701-708步驟流程 201匯流排 202網路裝置 801-809步驟流程 901 ALBUM.CHECKPOINTS 203 CPU 902 ALBUM.DELTA 204記憶體 903 ALBUM.DATA 205儲存裝置 904舊檢查點 206輸入/輸出裝置 905最新/目前檢查點 300串流 906最後範圍 301範圍 907 ALBUM.CHECKPOINTS φ 302範圍 908 ALBUM.DELTA 303範圍 909 ALBUM.DATA 304節點(伺服器) 910 EXTENT_ID B 305節點(伺服器) 911 EXTENT_ID L 400元資料 912 EXTENT_ID R 401串流/名稱 913 EXTENT_ID S 402 GUID 914 EXTENT_ID Y 403範圍參照 915 EXTENT_ID Z 31
Claims (1)
- 201029393 七 ❹ Ο 申請專利範圍: 一種儲存用於勃 、執仃一方法的電腦可執行指令之電腦 可讀取媒體,其巾姑上 、中該方法對於一或多個串流執行多重 修改作為一軍_ 基7ο單元,該方法包含以下步驟: 選取一或客Λο " 個串流來修改成為一或多個選取的 串流; 、" 辣多個選取串流相關的一或多個元資 料上獲取一鎖定; "Λ —或多個選取串流與相關於每一串流 的一或多個名稱去耦合; ^ ^ 或多個選取串流執行複數個修改; 將' βΛ —或多個選取串流與相關於每一串流 的至少一名稱麵合;以及 釋放該一或多個選取串流的該一或多個元資料 上的該鎖定。 申請專利範圍第1項所述之媒體,其中該一或多個 串流都為只附加串流。 申請專利範圍第1項所述之媒體,其中該去耦合步 驟包含下列步驟: 從與每一串流相關的該名稱中維持一暫時映 32 201029393 射’該映射中儲存每一該一或多個選取串流的一原始 耦合。 4.如申請專利範圍第3項所述之媒艎,其中該暫時映射 係基於每一該一或多個串流的一 GUID。 5·如申請專利範圍第丨項所述之媒體,其中該複數個修 ❹ 改步驟包含一或多個下列步驟: 建立一新串流、附加至一現有串流、建立一現有 串流的複本、刪除一串流、重新命名一串流、更新一 串流的該元資料以及將一串流的該範圍之一子集複 製到一第二串流。 6. 如申請專利範圍第1項所述之媒體,其中該重新耗合 φ 步驟包含下列步驟: 將該一或多個選取串流的一或多個GUID與該 一或多個名稱產生相關。 7. 如申請專利範圍第6項所述之媒體’其中該重新耗合 步驟包含下列步驟: 使用一或多GUID之間一暫時映射識別串流與 一或多個名稱。 33 201029393 8.如申清專利範園第1項所述之媒體,其中該複數個修 改利用改變—或多個指標器至範圍而不移動該-或 夕個範圍的該資料,來影響該一或多個選取串流。 .種儲存用於執行—方法的電腦可執行指令之電腦 °讀取媒體其中該方法對於-或多個串流執行多重 修改作為' 一單一.- gg ^ 丞疋單7〇,該方法包含以下步驟: 選取一或多個串流來修改成為—或多個選取的 串流; 在與該一或多個選取串流相冑的—或多個元資 料上獲取一鎖定; 將每一該一或多個選取串流與相關於每一串流 的一名稱去耦合; 對該一或多個選取串流執行-第-複數個修改; 判定對該-或多個選取串流的―第:複數個修 改會產生一不一致; 逆轉對該-或多個選取串流的該第一複數個修 改; 將每一該一或多個選取串流與相關於每一串流 的至少一名稱耦合;以及 釋放該一或多個選取串流的該一或多個元資料 34 201029393 上的該鎖定》 1〇.如申請專利範園第9項所述之媒體,其中該一或多個 串流都為只附加串流。 U.如申請專利範圍第9項所述之媒體,其中該去輕合步 驟包含下列步驟: ® 從與每一串流相關的該名稱中維持一暫時映 射’該映射中儲存每-該一或多個選取串流的一原始 耗合。 12·如申請專利範圍第u項所述之媒體,其中該複數個 修改影響該暫時映射内一或多個變更。 ® u.如申請專利範圍第Η項所述之媒體,其中每—該複 數個修改建立該暫時映射的一新複本,在與該暫時映 射的該新複本相關之該複數個修改中一修改應用之 後,每一複本指示該一或多個選取串流的一快照❶ 14.如申請專利範圍第丨丨項所述之媒體其中該逆轉該 第一複數個修改之步驟包含下列步驟: 35 201029393 逆轉對每一該選取串流的變更。 如申清專利範圍第11項所述之媒體,其t該重新輕 合使用儲存該原始耦合的該暫時映射,以將每一該一 或多個選取串流重新耦合至相關於每一串流的該名 稱。 鵪 16. 如申請專利範圍第9項所述之媒體,其中該複數個修 改步驟包含一或多個下列步驟:建立一新串流、附加 現有串/·»0_、建立一現有串流的複本、刪除一串 气重新命名串流、更新一串流的該元資料以及將 串流的該範圍之一子集複製到一第二串流。 17. 鍮 如申請專利範圍第9項所述之媒體,其中該複數個修 改利用改變一或多個指標器至範圍而不移動該一或 多個範圍的該資料’來影響該一或多個選取串流。 U. 一種儲存用於執行—方法的電腦可執行指令之電腦 可讀取媒體,其中該方法對於一或多個串流執行多重 修改作為丨-基元單元’該方法包含以下步驟: 選取一或多個只附加串流來修改成為#或多個 選取的串流; 36 201029393 在與該一或多個選取串流相關的一或多個元資 料上獲取一鎖定,其中獲取該鎖定包含使用一要成為 一鎖定串流的預定名稱來修改一串流; 將每一該一或多個選取串流與相關於每一串流 的一或多個名稱去耦合; 對該一或多個選取串流執行一第一複數個修改; 判定對該一或多個選取串流的一第二複數個修 改是否會產生一不一致; 若該第二複數個修改會產生一不一致,逆轉對於 該一或多個選取串流的該第一複數個修改; 若該第二複數個修改不會產生一不—致,則對該 一或多個選取串流執行一第二複數個修改; Λ 將每一該一或多個選取串流與相關於每一串流 的至少一名稱耦合;以及 釋放該-或多個選取串流的該—或多個 上的該鎖定。 19. 如申請專利錢第18項所述之媒體,其中該複數個 修改利用改變一或多個指標器至範圍而不移動該一 或多個範圍的該資料,來影響該一或多個選取串”流―。 20. 如申請專利範圍第18項所述之媒體,其中該複數個 37 201029393 修改步驟包含~ # 或多個下列步驟:建立一新串访 加至一現有串流、建立一現有串流的複本、刪除 流、重新命名一串流、更新一串流的該元資料以 一串流的該範圍之一子集複製到一第二串液。 L、附 一串 及將38
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/258,025 US8255373B2 (en) | 2008-10-24 | 2008-10-24 | Atomic multiple modification of data in a distributed storage system |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201029393A true TW201029393A (en) | 2010-08-01 |
TWI395104B TWI395104B (zh) | 2013-05-01 |
Family
ID=42119902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098134955A TWI395104B (zh) | 2008-10-24 | 2009-10-15 | 在分散式儲存系統中資料之基元多重修改 |
Country Status (11)
Country | Link |
---|---|
US (1) | US8255373B2 (zh) |
EP (1) | EP2356560B1 (zh) |
JP (1) | JP5657550B2 (zh) |
KR (1) | KR101573965B1 (zh) |
CN (1) | CN102197365B (zh) |
AU (1) | AU2009307842B2 (zh) |
BR (1) | BRPI0919072A2 (zh) |
CA (1) | CA2736961C (zh) |
RU (1) | RU2011116176A (zh) |
TW (1) | TWI395104B (zh) |
WO (1) | WO2010048027A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI710894B (zh) * | 2018-07-27 | 2020-11-21 | 開曼群島商創新先進技術有限公司 | 資料物件標識生成方法及裝置 |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2477883C2 (ru) * | 2007-08-20 | 2013-03-20 | Нокиа Корпорейшн | Сегментированные метаданные и индексы для потоковых мультимедийных данных |
US9015136B2 (en) * | 2010-01-22 | 2015-04-21 | Microsoft Technology Licensing, Llc | Storing temporary state data in separate containers |
US8473953B2 (en) | 2010-07-21 | 2013-06-25 | International Business Machines Corporation | Batching transactions to apply to a database |
US9697216B2 (en) * | 2011-07-20 | 2017-07-04 | Simplivity Corporation | Method and apparatus for differentiated data placement |
US9672237B2 (en) | 2013-03-15 | 2017-06-06 | Amazon Technologies, Inc. | System-wide checkpoint avoidance for distributed database systems |
US9514007B2 (en) | 2013-03-15 | 2016-12-06 | Amazon Technologies, Inc. | Database system with database engine and separate distributed storage service |
US9501501B2 (en) * | 2013-03-15 | 2016-11-22 | Amazon Technologies, Inc. | Log record management |
US11030055B2 (en) | 2013-03-15 | 2021-06-08 | Amazon Technologies, Inc. | Fast crash recovery for distributed database systems |
US10180951B2 (en) | 2013-03-15 | 2019-01-15 | Amazon Technologies, Inc. | Place snapshots |
US10747746B2 (en) | 2013-04-30 | 2020-08-18 | Amazon Technologies, Inc. | Efficient read replicas |
US9760596B2 (en) | 2013-05-13 | 2017-09-12 | Amazon Technologies, Inc. | Transaction ordering |
US9208032B1 (en) | 2013-05-15 | 2015-12-08 | Amazon Technologies, Inc. | Managing contingency capacity of pooled resources in multiple availability zones |
US10303564B1 (en) | 2013-05-23 | 2019-05-28 | Amazon Technologies, Inc. | Reduced transaction I/O for log-structured storage systems |
US9047189B1 (en) | 2013-05-28 | 2015-06-02 | Amazon Technologies, Inc. | Self-describing data blocks of a minimum atomic write size for a data store |
US10216949B1 (en) | 2013-09-20 | 2019-02-26 | Amazon Technologies, Inc. | Dynamic quorum membership changes |
US9460008B1 (en) | 2013-09-20 | 2016-10-04 | Amazon Technologies, Inc. | Efficient garbage collection for a log-structured data store |
US9699017B1 (en) | 2013-09-25 | 2017-07-04 | Amazon Technologies, Inc. | Dynamic utilization of bandwidth for a quorum-based distributed storage system |
US10223184B1 (en) | 2013-09-25 | 2019-03-05 | Amazon Technologies, Inc. | Individual write quorums for a log-structured distributed storage system |
US9880933B1 (en) | 2013-11-20 | 2018-01-30 | Amazon Technologies, Inc. | Distributed in-memory buffer cache system using buffer cache nodes |
US9223843B1 (en) | 2013-12-02 | 2015-12-29 | Amazon Technologies, Inc. | Optimized log storage for asynchronous log updates |
US10657113B2 (en) | 2014-01-14 | 2020-05-19 | Baker Hughes, A Ge Company, Llc | Loose coupling of metadata and actual data |
US10242222B2 (en) | 2014-01-14 | 2019-03-26 | Baker Hughes, A Ge Company, Llc | Compartment-based data security |
WO2015116190A1 (en) * | 2014-01-31 | 2015-08-06 | Hewlett-Packard Development Company, L.P. | Persistent memory controller based atomicity assurance |
US9519510B2 (en) * | 2014-03-31 | 2016-12-13 | Amazon Technologies, Inc. | Atomic writes for multiple-extent operations |
CN106339176B (zh) * | 2015-07-08 | 2020-04-10 | 阿里巴巴集团控股有限公司 | 中间文件处理方法、客户端、服务器和系统 |
US10789223B2 (en) | 2016-03-24 | 2020-09-29 | Microsoft Technology Licensing, Llc | Hybrid garbage collection in a distributed storage system |
DE102017210076B4 (de) * | 2017-06-14 | 2023-08-24 | Elektrobit Automotive Gmbh | Verfahren und System zur Multikern-Kommunikation mit Sicherheitseigenschaften |
CN109101341B (zh) * | 2017-06-21 | 2022-02-22 | 阿里巴巴集团控股有限公司 | 分布式锁的分配方法及设备 |
US10872066B2 (en) | 2017-06-27 | 2020-12-22 | Salesforce.Com, Inc. | Systems and methods of database tenant migration |
KR102457400B1 (ko) | 2017-11-16 | 2022-10-21 | 삼성전자주식회사 | 가비지 컬렉션 방법, 이를 수행하는 저장 장치 및 이를 포함하는 컴퓨팅 시스템 |
US11914571B1 (en) | 2017-11-22 | 2024-02-27 | Amazon Technologies, Inc. | Optimistic concurrency for a multi-writer database |
KR102089291B1 (ko) * | 2018-06-19 | 2020-03-16 | 주식회사 티맥스데이터 | 데이터 익스텐트 이동 방법 |
US10834194B2 (en) | 2019-02-13 | 2020-11-10 | International Business Machnes Corporation | Batching updates in a dispersed storage network |
US11237829B2 (en) * | 2019-02-13 | 2022-02-01 | International Business Machines Corporation | Performing composable transactions in a dispersed storage network |
US11334561B2 (en) | 2019-07-24 | 2022-05-17 | Vmware, Inc. | Flexible byzantine fault tolerant protocol using message delay upper bound for client commit decision |
US11341122B2 (en) | 2019-07-24 | 2022-05-24 | Vmware, Inc. | Byzantine fault tolerance that supports heterogeneous clients |
US11341163B1 (en) | 2020-03-30 | 2022-05-24 | Amazon Technologies, Inc. | Multi-level replication filtering for a distributed database |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5313629A (en) * | 1989-10-23 | 1994-05-17 | International Business Machines Corporation | Unit of work for preserving data integrity of a data-base by creating in memory a copy of all objects which are to be processed together |
US5946685A (en) * | 1997-06-27 | 1999-08-31 | Sun Microsystems, Inc. | Global mount mechanism used in maintaining a global name space utilizing a distributed locking mechanism |
US5933834A (en) * | 1997-10-16 | 1999-08-03 | International Business Machines Incorporated | System and method for re-striping a set of objects onto an exploded array of storage units in a computer system |
US6240413B1 (en) * | 1997-12-22 | 2001-05-29 | Sun Microsystems, Inc. | Fine-grained consistency mechanism for optimistic concurrency control using lock groups |
US6173293B1 (en) * | 1998-03-13 | 2001-01-09 | Digital Equipment Corporation | Scalable distributed file system |
US6697846B1 (en) | 1998-03-20 | 2004-02-24 | Dataplow, Inc. | Shared file system |
JP4286857B2 (ja) | 1998-11-18 | 2009-07-01 | 富士通株式会社 | ノード間共用ファイル制御方法 |
US6523078B1 (en) * | 1999-11-23 | 2003-02-18 | Steeleye Technology, Inc. | Distributed locking system and method for a clustered system having a distributed system for storing cluster configuration information |
US6981005B1 (en) * | 2000-08-24 | 2005-12-27 | Microsoft Corporation | Partial migration of an object to another storage location in a computer system |
US7165096B2 (en) * | 2000-12-22 | 2007-01-16 | Data Plow, Inc. | Storage area network file system |
US7788335B2 (en) * | 2001-01-11 | 2010-08-31 | F5 Networks, Inc. | Aggregated opportunistic lock and aggregated implicit lock management for locking aggregated files in a switched file system |
US7062490B2 (en) * | 2001-03-26 | 2006-06-13 | Microsoft Corporation | Serverless distributed file system |
US6715050B2 (en) * | 2001-05-31 | 2004-03-30 | Oracle International Corporation | Storage access keys |
US20030041097A1 (en) | 2001-07-11 | 2003-02-27 | Alexander Tormasov | Distributed transactional network storage system |
US6687701B2 (en) * | 2001-09-25 | 2004-02-03 | Hewlett-Packard Development Company, L.P. | Namespace management in a distributed file system |
US7299463B2 (en) * | 2001-09-28 | 2007-11-20 | Intel Corporation | Method for atomically updating a plurality of files |
US7406473B1 (en) * | 2002-01-30 | 2008-07-29 | Red Hat, Inc. | Distributed file system using disk servers, lock servers and file servers |
KR100453228B1 (ko) | 2002-03-21 | 2004-10-15 | 한국전자통신연구원 | 공유 디스크 파일 시스템의 저널링 및 회복 방법 |
US7222119B1 (en) * | 2003-02-14 | 2007-05-22 | Google Inc. | Namespace locking scheme |
CA2422161C (en) * | 2003-03-14 | 2009-10-06 | Ibm Canada Limited - Ibm Canada Limitee | Decoupled object identification for object switching in database systems |
CA2470720C (en) | 2003-05-17 | 2011-10-18 | Microsoft Corporation | Mechanism for applying transforms to multi-part files |
US7243089B2 (en) * | 2003-11-25 | 2007-07-10 | International Business Machines Corporation | System, method, and service for federating and optionally migrating a local file system into a distributed file system while preserving local access to existing data |
US7349926B2 (en) * | 2004-03-30 | 2008-03-25 | International Business Machines Corporation | Atomic renaming and moving of data files while permitting lock-free look-ups |
US7685128B2 (en) * | 2004-06-10 | 2010-03-23 | International Business Machines Corporation | Remote access agent for caching in a SAN file system |
US20050289143A1 (en) | 2004-06-23 | 2005-12-29 | Exanet Ltd. | Method for managing lock resources in a distributed storage system |
US7584220B2 (en) * | 2004-10-01 | 2009-09-01 | Microsoft Corporation | System and method for determining target failback and target priority for a distributed file system |
US7650336B1 (en) * | 2004-12-02 | 2010-01-19 | Adobe Systems Incorporated | File system atomic lock |
US20060195460A1 (en) * | 2005-02-28 | 2006-08-31 | Microsoft Corporation | Data model for object-relational data |
US7680835B2 (en) * | 2005-02-28 | 2010-03-16 | Microsoft Corporation | Online storage with metadata-based retrieval |
US7870353B2 (en) * | 2005-08-15 | 2011-01-11 | International Business Machines Corporation | Copying storage units and related metadata to storage |
US20070106771A1 (en) * | 2005-11-10 | 2007-05-10 | International Business Machines Corporation | Reconciliation of independently updated distributed data |
US7650514B2 (en) * | 2005-12-30 | 2010-01-19 | Microsoft Corporation | Scalable leases |
US7392335B2 (en) | 2006-02-10 | 2008-06-24 | Oracle International Corporation | Anticipatory changes to resources managed by locks |
US7809685B2 (en) * | 2006-04-21 | 2010-10-05 | Ricoh Co., Ltd. | Secure and efficient methods for logging and synchronizing data exchanges |
JP4890931B2 (ja) * | 2006-05-01 | 2012-03-07 | キヤノン株式会社 | コンテンツ管理方法、装置、及びシステム |
US8255420B2 (en) * | 2006-05-23 | 2012-08-28 | Noryan Holding Corporation | Distributed storage |
US8019790B2 (en) * | 2006-07-11 | 2011-09-13 | Dell Products, Lp | System and method of dynamically changing file representations |
US7822728B1 (en) * | 2006-11-08 | 2010-10-26 | Emc Corporation | Metadata pipelining and optimization in a file server |
US7620659B2 (en) * | 2007-02-09 | 2009-11-17 | Microsoft Corporation | Efficient knowledge representation in data synchronization systems |
US7836226B2 (en) * | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
-
2008
- 2008-10-24 US US12/258,025 patent/US8255373B2/en active Active
-
2009
- 2009-10-15 JP JP2011533238A patent/JP5657550B2/ja active Active
- 2009-10-15 EP EP09822458.7A patent/EP2356560B1/en active Active
- 2009-10-15 BR BRPI0919072A patent/BRPI0919072A2/pt active Search and Examination
- 2009-10-15 TW TW098134955A patent/TWI395104B/zh not_active IP Right Cessation
- 2009-10-15 WO PCT/US2009/060847 patent/WO2010048027A2/en active Application Filing
- 2009-10-15 KR KR1020117008649A patent/KR101573965B1/ko active IP Right Grant
- 2009-10-15 CA CA2736961A patent/CA2736961C/en not_active Expired - Fee Related
- 2009-10-15 CN CN200980142635.2A patent/CN102197365B/zh active Active
- 2009-10-15 AU AU2009307842A patent/AU2009307842B2/en not_active Ceased
- 2009-10-15 RU RU2011116176/08A patent/RU2011116176A/ru not_active Application Discontinuation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI710894B (zh) * | 2018-07-27 | 2020-11-21 | 開曼群島商創新先進技術有限公司 | 資料物件標識生成方法及裝置 |
Also Published As
Publication number | Publication date |
---|---|
KR20110079655A (ko) | 2011-07-07 |
WO2010048027A2 (en) | 2010-04-29 |
CN102197365A (zh) | 2011-09-21 |
CA2736961C (en) | 2016-07-12 |
EP2356560A2 (en) | 2011-08-17 |
RU2011116176A (ru) | 2012-10-27 |
BRPI0919072A2 (pt) | 2015-12-15 |
JP5657550B2 (ja) | 2015-01-21 |
US20100114848A1 (en) | 2010-05-06 |
EP2356560A4 (en) | 2012-05-09 |
AU2009307842A1 (en) | 2010-04-29 |
US8255373B2 (en) | 2012-08-28 |
JP2012507072A (ja) | 2012-03-22 |
CA2736961A1 (en) | 2010-04-29 |
KR101573965B1 (ko) | 2015-12-02 |
EP2356560B1 (en) | 2019-03-20 |
WO2010048027A3 (en) | 2010-06-17 |
CN102197365B (zh) | 2014-03-05 |
AU2009307842B2 (en) | 2014-05-22 |
TWI395104B (zh) | 2013-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201029393A (en) | Atomic multiple modification of data in a distributed storage system | |
JP6309103B2 (ja) | スナップショットおよびクローンの複製 | |
US11086545B1 (en) | Optimizing a storage system snapshot restore by efficiently finding duplicate data | |
JP5411250B2 (ja) | 冗長データ記憶システムへの指示に従ってのデータ配置 | |
TWI492077B (zh) | 檔案系統的檢查點 | |
JP5433074B2 (ja) | ストレージクラスタを指定可能な複製されたコンテンツのための非同期的分散オブジェクトアップロード | |
US10623485B2 (en) | Method of, and apparatus for, file system replication | |
JP5479490B2 (ja) | 複製ストレージクラスタのための非同期式分散ガーベッジコレクション | |
US8429198B1 (en) | Method of creating hierarchical indices for a distributed object system | |
JP5516575B2 (ja) | データ挿入システム | |
US20120284317A1 (en) | Scalable Distributed Metadata File System using Key-Value Stores | |
TW200303468A (en) | Deferred copy-on-write of a snapshot | |
US20160321295A1 (en) | Scalable Distributed Metadata File-System using Key-Value Stores | |
JPWO2018154698A1 (ja) | ファイルストレージ、オブジェクトストレージ、およびストレージシステム | |
JP5650982B2 (ja) | ファイルの重複を排除する装置及び方法 | |
US10452304B2 (en) | Efficient repository migration and storage | |
JP6196389B2 (ja) | 分散型ディザスタリカバリファイル同期サーバシステム | |
US7685186B2 (en) | Optimized and robust in-place data transformation | |
JP2011522337A (ja) | サーバクラスタに配信されるコンピュータシステムのソフトウェアモジュールの同期化方法、同期化システムおよびデータストレージへの適用 | |
JPH0844609A (ja) | データバックアップ方法 | |
JP2008097087A (ja) | 階層構造オブジェクトのコピー方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |