JP2012507072A - 分散ストレージシステムにおけるデータのアトミックな複合変形 - Google Patents

分散ストレージシステムにおけるデータのアトミックな複合変形 Download PDF

Info

Publication number
JP2012507072A
JP2012507072A JP2011533238A JP2011533238A JP2012507072A JP 2012507072 A JP2012507072 A JP 2012507072A JP 2011533238 A JP2011533238 A JP 2011533238A JP 2011533238 A JP2011533238 A JP 2011533238A JP 2012507072 A JP2012507072 A JP 2012507072A
Authority
JP
Japan
Prior art keywords
stream
streams
selected streams
medium
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011533238A
Other languages
English (en)
Other versions
JP5657550B2 (ja
JP2012507072A5 (ja
Inventor
ジェイムズ マッケルビー サミュエル
ジーン カルダー ブラッドリー
ワン ジュ
ウー シンラン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2012507072A publication Critical patent/JP2012507072A/ja
Publication of JP2012507072A5 publication Critical patent/JP2012507072A5/ja
Application granted granted Critical
Publication of JP5657550B2 publication Critical patent/JP5657550B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

ストリームのアトミックな複合変形を提供する。ストリームは、アトミックな複合変形を適用するために選択される。このストリームに関連するメタデータに対してロックが取得される。各ストリームは、その名前から切り離される。複合変形が、選択されたストリームに適用される。変形を実行した後、名前はストリームに連結される。各ストリームに関連するメタデータに対するロックが解除される。

Description

本発明は、分散ストレージシステムにおけるデータのアトミックな複合変形に関する。
サーバファーム、ウェブサービス、および分散型ネットワーク接続ストレージシステム、を含む分散システムは、ますます普及し、膨大なコンピュータリソースおよびストレージリソースを提供することとなった。分散ストレージシステムでは、潜在的に広域なネットワーク全体の複数のノードに亘ってストレージスペースを使用する。
分散ストレージシステム内のノード上に記憶されるデータにアクセスするためのデータアクセスのルーチンは、同時にアクセスすることを要求する複数のクライアントセッションを管理しなければならない。しかし、データの整合性のある表示を維持するためには、変形したアクセスは一度に1つのホストに制限されるべきである。加えて、複合変形を実行するクライアントセッションは、複合変形の適用全体を通してデータの整合性を維持しなければならない。
本発明の実施形態は、本概要ではなく以下の請求項により定義される。本発明の種々の態様の高レベルの概観が、本開示の概観を提供するため、かつ、以下の発明を実施するための形態の節でさらに以下に記載される概念を選択して紹介するために、本明細書に提供される。本概要は、請求の主題の重要な特徴または主要な特徴を確認することを意図しているわけでもなければ、請求の主題の範囲を決定するための助けとして分離して使用されることも意図していない。
本発明の実施形態は、アトミックな複合変形と呼ばれる単一のアトミックな単位として、1つまたは複数のストリームに対する複合変形を実行することに関する。いくつかの実施形態において、複合変形の1つが成功しない場合(例えば、前提条件が満足されない場合)、成功裏に適用された変形は反転され、ストリームはアトミックな複合変形の開始前の元の状態に戻される。
本発明の例示的実施形態を、添付の図面を参照して以下に詳細に記載する。
本発明の実装に用いるのに適切な例示的ネットワーク環境を示す図である。 本発明の実装に用いるのに適切な例示的コンピュータデバイスのブロック図である。 本発明の一実施形態による例示的ストリームのブロック図である。 本発明の一実施形態による例示的メタデータブロックのブロック図である。 本発明の一実施形態による例示的複合変形のブロック図である。 本発明の一実施形態による、単一のアトミックな単位として、1つまたは複数のストリームに対する複合変形を実行する方法を示すフロー図である。 本発明の一実施形態による、第2の変形が1つまたは複数の選択されたストリームにおいて失敗であると判定される場合に、成功した変形を反転させるための方法を示すフロー図である。 本発明の一実施形態による、複合変形の1つが不整合または失敗の原因となるかどうかを判定するステップを含む、単一のアトミックな単位として、1つまたは複数のストリームに対する複合変形を実行するための方法を示すフロー図である。 本発明の一実施形態による、複合変形の例を示す図である。
本発明の主題を、本明細書において法的要件を満足させる特異性と共に記載する。しかしながら、記載自体は、本特許の範囲を限定することを意図しているわけではない。むしろ、本発明者は、請求される主題が他の方法で具現化されうることも意図し、それには、他の現在または未来の技術と併せて、異なるステップ、または本文書に記載されるものと同様のステップの組み合わせが含まれる。さらに、用語「ステップ」および/または「ブロック」は、採用される方法の異なる要素を暗示するために本明細書において使用されるが、これらの用語は、個々のステップの順番が明示的に記載される場合を除き、本明細書に記載される種々のステップ間でのいかなる特定の順番も暗示するものとして解釈してはならない。
本発明の実施形態は、ストレージノードのネットワーク全体に亘って分散されるように記憶されるデータの複合変形を行うことに向けられる。大規模なネットワーク全体に分散される複数のノードから成るネットワークにおいて、データの各ユニットは、潜在的には同時に複数のクライアントセッションにより、アクセスすることができる。さらに、ネットワーク全体の異なるデータに亘って整合性が保持される。データにアクセスする全てのクライアントセッションに亘ってデータの整合性のある表示を維持するために、データの変形を調整する必要がある。データの変形についての調整をしなければ、2つのクライアントセッションが2つのデータを整合性無く変形することが可能になってしまい、予測不可能な結果を招く。さらに、複数の相互に依存する変形をアトミックに適用することをしなければ、変形を行うクライアントセッションの障害によりデータが整合性の無いままにされ、または、第2のクライアントセッションが、中間的な整合性の無い状態を表すデータを読み込むことになる。
これらのタイプの不整合を防ぐために、データの変形を調整することが根本的な操作に要求される。特に、個々の変形を独立させて適用することにより一時的な整合性の無い状態が作り出される場合、複数の相互に依存する変形をアトミックなトランザクションとして1つまたは複数のデータに適用する機能を有することが望ましく、それにより、分散ネットワークにおいて他のクライアントセッションからのデータの表示における不整合を防ぐことができる。さらに、複合変形のうちの1つまたは複数が成功裏に適用できない場合には、複合変形の組全体を取り消すことができることも望ましく、それにより、部分的に成功したトランザクションから得られるデータの表示における不整合を防ぐことができる。加えて、望ましくは、特定の変形が成功裏に適用される前に満足すべき1つまたは複数の予期される前提条件を特定することができ、それにより、分散ロックの使用を必要とせずに、独立した潜在的に矛盾するトランザクションの適用を「楽観的な」方法で、クライアントセッションが調整することができる。
一例として、クライアントセッションXおよびクライアントセッションYの両方が、データAの値を読み込むこと、および、データAの前の値と、それぞれのクライアントセッション(クライアントセッションXのデータCxおよびクライアントセッションYのデータCy)により判定される他の外部のデータとに基づくデータAとデータBのための新しい値を計算すること、が求められるアルゴリズムを実行しているとする。そして、AとBの新しい値は、アトミックな操作として書き込まれる。しかし、データAの値の読み込みと、データAとデータBの新しい値の書き込みとの間にはロックが保持されないため、クライアントセッションXおよびクライアントセッションYの両方が、データAを同時に読み込み、そして、データAとデータBのための新しい値を独立して計算することが可能になる。最初にクライアントセッションXが、次にクライアントセッションYが、アトミックな変形トランザクションを使用してデータAとデータBのためのそれぞれの新しい値を書き込もうとし、双方とも成功するであろう。しかし、クライアントセッションXにより適用される変形の効果は、クライアントセッションYにより適用される変形により事実上取り消され、結果的に外部のデータに対して潜在的な不整合がもたらされる。このことが起こらないようにするために、従来の多くのネットワークベースのファイルシステムでは、データAとデータBの書き込みの間を通して、データAの読み込み全体にクライアントセッションが分散ロックを求めることを要求し、それにより、クライアントセッションXがデータAとデータBの更新を完了するまで、クライアントセッションYがデータAの値の読み込みを行わないようにする。しかし、分散ロックの使用により、著しいオーバヘッドが取り込まれ、その結果、より脆弱な分散システムとなり、例えば、クライアントセッションXがロックの解除に失敗すると、クライアントセッションYは、無期限に進展が妨げられることになる。本発明では、クライアントセッションXおよびクライアントセッションYが、データAとデータBのための新しい値を書き込もうとする時に満足すべき前提条件を特定することを可能にすることにより、明示的に分散したロックを必要とはしない。本例において、クライアントセッションXおよびクライアントセッションYはそれぞれ、データAとデータBが置き換え可能にされる前は、データAの値は、読み込まれてから変更されていないことが真でなければならない、ということを要求する。データAの読み込みと、データAとデータBの書き込みとの間に変形が生じないため、クライアントセッションYは、その更新に成功するであろう。しかし、データAの値が、データAの読み込みと更新との間に変更したため、クライアントセッションXは、いずれのデータの更新も成功しないであろう。クライアントセッションXは、操作を中止すること、または、データAをもう一度読み込むことにより全体のシーケンスを再スタートすることも自由にできる。いずれの場合においても、全てのデータは、内部的にも、外部の状態とも整合性が保たれる。
ネットワークに記憶されている特定のデータは、異なる多くの形式をとることができる。一般的な形式には、ファイル、および類似ファイルのグループがある。本発明のいくつかの実施形態によれば、データはストリームに組織化され、各ストリームは、種々雑多なストリームメタデータのプロパティ(例えば、ストリーム名、アクセス制御ポリシー、満了時間等)から成るデータエンティティであると共に、エクステントに対する順序付けられた一連の参照である。各エクステントは、連続する順序付けられた一連の付加ブロックから成る。各付加ブロックは不変であり、かつ、連続する順序付けられた一連のバイト値から成る。新しいエクステントへの参照は、ストリームの最後に付加してもよいが、一度付加すると、エクステント参照はストリームから消去することができない。複数のストリームが同じエクステントへの参照を含むことができ、あるいは、単一のストリームでさえ、同じエクステントへの複数の参照を含むことができる。新しい付加ブロックは、エクステントが封印されるまで、そのエクステントに付加してもよく、その後、そのエクステントは不変となる。エクステントは、一度封印されると、その封印を解くことはできない。付加ブロックは、エクステントが封印されたかどうかに関わらず、変形しても、エクステントから削除してもならない。従って、ストリームおよびエクステントは大きさが拡大するのみである。
本発明の一実施形態によれば、ストリームは、エクステントのデータを大きなグループの独立した、疎結合エクステントサーバ上に記憶すること、および、各ストリームを記述するメタデータを集中型サーバまたは小規模の密結合サーバグループ上に記憶することにより、ファイルシステムにおいて組織化される。データをエクステントに付加するには、クライアントセッションは正しい独立したエクステントサーバと対話をし、その結果として、エクステントへの付加は、高度に拡張可能であるが、個別のエクステントへの付加の調整を容易にすることはない。対照的に、全ての関係するストリームのメタデータは、集中型サーバ上で保持されるため、ストリームメタデータへの更新を効率的に調整することが可能になる。
一例として、各ストリームに関連するメタデータには、現在のストリーム名、グローバル一意識別子(GUID)、アクセス制御ポリシー、満了時間、およびストリームを編成するエクステントへの参照の順序付けられたリスト、等の情報を含むことができる。この組織の1つの利点は、ネットワークにおいて任意のデータを移動させる必要なく、1つのストリームから別のストリームにエクステント参照をコピーできることである。その代わり、参照リストのみが、集中型サーバ上に記憶されるメタデータ内で変更される。複製操作は、ストリームメタデータに影響を与えるだけであるため、アトミックな複合変形の一部として効率的に含むことができる。本発明の他の実施形態において、メタデータ自体を、ネットワークにおいて複数のノード間に分散させることができる。当業者には当然のことながら、本発明はストリーム以外のデータ形式にも適用することができる。
いくつかの実施形態によれば、本発明は、複数のストリーム前提条件制約および変異的な操作を操作の一覧にバッチし、1つのアトミックな複合変形として実行させる機能を提供する。操作には、ストリームメタデータ前提条件制約、ストリームの作成、ストリームの消去、ストリームのリネーム、他のストリームからの既存のエクステント参照の複製、および、満了時間、読み込み専用フラグ、アクセス制御情報および複写のポリシー、等の種々雑多なストリームプロパティの設定が含まれる。加えて、本発明のいくつかの実施形態は、同じ複合変形における他の変形操作への参照に関して、ストリームをまたがる操作を示す機能を提供する。例えば、複合変形において、複合変形により作成されるストリームに追加の操作を適用してもよい。同様に、複合変形において、複合変形の操作により消去またはリネームされるストリームに追加の操作を適用してもよい。複合変形におけるそれぞれ個々の操作レコードを対象のストリームアイデンティティに関連付けることにより、また、ストリームをまたがる操作において、実行中の複合変形におけるソースストリームのそれぞれのレコード指標によって、ソースストリームを参照することにより、複合変形中にアイデンティティが作成されたストリームまたは名前が変更されたストリームを、複合変形の過程の任意の時に参照することができる。例えば、実行されるべき操作の一覧に5個のレコードがあり、3番目の操作が新しいストリームを作成している場合、他の操作のいずれかが、そのストリームを操作3のストリームとして参照することができる。
一実施形態によれば、本発明は、複合変形における操作として非変形前提条件制約を示す機能を提供する。これらの操作自体では、ストリームの状態に何らの変化ももたらさないが、前提条件が満足されない場合に、複合変形全体を機能させないようにすることができる。これにより、複数のクライアントが、外部のロックまたは他の同期機構を使用する必要なく、ストリーム状態の調整された取扱いを実装することが可能になる。特定されうる前提条件の例には、ストリームの存在、ストリーム名、ストリームアイデンティティ(リネームされても保存されるが消去/再作成により変更される一意的ID)、ストリームバージョン番号、ストリーム満了時間、およびエクステント参照カウントがある。
さらに別の実施形態によれば、本発明は、アトミックな複合変形の一部として、ストリーム内容の一部を新しいストリームに効果的に複製する機能を提供する。ストレージノードのネットワーク全体に分散される連続データブロック(エクステント)への順序付けられた一連の参照として、ストリームをモデル化することができる。ストリームは、単にその内容を読み込むこと、および、同じデータを用いるが、新しいエクステントに新しいストリームを書き込むことによりコピーすることができる。しかし、大量のデータを1つのエクステントから別のエクステントにコピーすることだけが、複数のネットワークノードに関与する高価なネットワーク/ディスク集約的な活動なのではなく、同じエクステントが複数のストリームにより参照されてもよい。単にエクステントを複製することにより、ストリームの非常に大きな部分を異なるストリーム(場合によっては異なる位置の)に効果的に複製することができる。この動作は軽く、かつ、実際のストリームデータの内容をコピーする必要が無い。さらに、このタイプの複製を実行するために扱われる状態の全てを、中央メタデータサーバにより保持することができる。本モデルにより導かれることは、ストリーム内容の潜在的に大きな部分を、1つのストリームから別のストリームに複製することを、長期間保持されるロックを必要とせずに、アトミックな複合変形の一部として実行することができるということである。クライアントは、ストリームの連結、ガーベジコレクション、ログ/ジャーナルのトランケーション、単一インスタンス化、およびエイリアシングを含む多くの目的でこの機能を使用することができる。加えて、多数の関係のない操作を一緒にアトミックな複合変形内にバッチして、特定の量の作業を完了させるのに必要なトランザクションの数を減少させることができる。メタデータ変形は耐久性トランザクションであるため、完了したと見なすことができる前に永続ストレージに重複してコミットされなければならない。耐久性ストレージ(ディスク)のコミット操作の待ち時間/パフォーマンスは、トランザクションシステムのスケーラビリティ/パフォーマンスにおける最大の制限要因であり、また、多くの操作を単一のコミットに組み合わせる機能は利点とすることができる。また、サーバは、任意の変更を適用する前に全ての操作の検証ができるため、そうでなければ不可能であった最適化を実装することができる。
いくつかの実施形態によれば、本発明は、「悉無律型」セマンティクスおよび「同時操作」を表す機能を促進する。悉無律型セマンティクスは、複合変形のいかなる操作も機能しない場合、全体の複合変形が機能しないこと、および、変形に対して選択されるストリームの状態が複合変形の状態より前の状態のままにされることを保証する。これにより、クライアントは、状態の整合性と共に複合変形のアトミック性にも信頼を置くことができる。複合変形システムにおける同時操作では、操作が厳密にシーケンシャルには実行されない場合には難しく、または、非効率的である単一のアトミックな複合変形で、特定の組の変形が生じることになる。一例として、同じ複合変形において、1つの操作でストリーム「A」を「B」にリネームし、もう1つの操作でストリーム「B」を「A」にリネームする(すなわち、2つの操作で2つのストリームをネームスペースにスワップする)ことが可能である。これら2つの操作は、最初の操作がネームスペースの衝突により失敗するためシーケンシャルに実行されない場合は成功しない。スワップをシーケンシャルに実行することは、3つの操作および一時的なストリーム名の導入を必要とする(すなわち、「A」を「C」にリネームし、「B」を「A」にリネームし、「C」を「B」にリネームする)。それは、1つの操作が失敗してその前に他の操作が成功している場合、部分的に完了した複合変形を「巻き戻す」処理をさらに複雑にする(悉無律型セマンティクス)。アトミックな複合変形は、全て同時に適用される順序付けされない1組の操作として扱われ、中途半端に整合した状態をクライアントが示す必要性を取り除き、サーバにアトミックな複合変形の実装を最適化させる。
本発明のさらに別の実施形態によれば、本発明は、アトミックな複合変形を使用して、クライアントがアクセス可能な簡素な分散ロックおよび分散リースを実装する機能を提供する。ストリームメタデータには、満了時間が延長されない限り、特定の期間が過ぎるとストリームが自動的に消去されるようにするために使用することができる満了時間プロパティが含まれる。アトミックな複合変形と併せて満了時間を使用することにより、1組のクライアントが、合意された名前を有する新しいストリームを作成しようとすることによりリースまたはロックを獲得するために競合することができ、成功裏に作成済みのストリーム上で満了時間を延長することによりリースを延長することができる。自作成のリースストリームの存在およびその合意された名前の継続所有を複合変形への付加的前提条件として追加することにより、リース/ロックの所有権を、任意の他のストリームメタデータのアトミックな複合変形に対して前提条件として効果的に追加することができる。クライアントが、リース/ロックを保持しながら機能しない場合、リースまたはロックのファイルは、満了時間が来ると自動的に消去され、別のクライアントがリースを請求できるようになる。リースまたはロックが通常のストリームとして表されるので、ストリームに利用可能なツールおよび機構(例えば、ネームスペースの組織、アクセス制御、ブラウジング/閲覧、等)は、本来、リースおよびロックにも同様に利用可能である。
従って、本発明の一実施形態は、単一のアトミックな単位として、1つまたは複数のストリームに対する複合変形を実行する方法を実行するためのコンピュータ実行可能命令を具現化するコンピュータ可読記憶媒体に向けられる。1つまたは複数のストリームが、選択されたストリームとして変形のために選択される。選択されたストリームに関連する1つまたは複数のメタデータに対してロックが取得される。選択されたストリームに関連する名前が、選択されたストリームから切り離される。複数の変形が、選択されたストリームに対して実行される。選択されたストリームに関連する名前は、選択されたストリームに再び連結される。1つまたは複数の選択されたストリームに関連するメタデータに関連するロックが解除される。
別の実施形態によれば、本発明は、単一のアトミックな単位として、1つまたは複数のストリームに対する複合変形を実行する方法を実行するためのコンピュータ実行可能命令を具現化するコンピュータ可読記憶媒体に向けられる。1つまたは複数のストリームが、選択されたストリームとして変形のために選択される。選択されたストリームに関連するメタデータに対してロックが取得される。選択されたストリームのそれぞれに関連する名前が、選択されたストリームから切り離される。第1の変形が、選択されたストリームに対して実行される。第2の変形は、実行されると不整合を生み出すものと判定される。選択されたストリームに対する第1の変形が反転される。選択されたストリームに関連する名前は、選択されたストリームに再び連結される。選択されたストリームに関連するメタデータに対するロックが解除される。
さらに別の実施形態によれば、本発明は、単一のアトミックな単位として、1つまたは複数のストリームに対する複合変形を実行する方法を実行するためのコンピュータ実行可能命令を記憶するコンピュータ可読媒体に向けられる。1つまたは複数の付加専用ストリームが、選択されたストリームとして変形のために選択される。選択されたストリームに関連するメタデータに対してロックが取得され、ロックを取得するステップには、所定の名前を有するストリームをロックストリームとなるように変形するステップが含まれる。各選択されたストリームに関連する名前は、その関連する選択されたストリームから切り離される。第1の変形が選択されたストリームに適用される。第2の変形は、適用されると不整合を生み出すかどうかが判定される。変形が不整合を生み出すと判定される場合、選択されたストリームに対する第1の変形が反転される。第2の変形が不整合を生み出さない場合、第2の変形が選択されたストリームに適用される。選択されたストリームに関連する名前は、選択されたストリームに再び連結される。選択されたストリームに関連するメタデータに関連するロックが解除される。
本発明の実施形態の概要を記載したが、本発明の実施形態を実装することができる例示的動作環境について、本発明の種々の態様のための一般的コンテキストを提供するために以下に記載する。最初に特に図1を参照すると、典型的なネットワークトポロジ100は、多くの相互接続されるネットワークセグメント101、102、103、104から成り、それぞれのセグメントは、広域ネットワーク115に接続される。ネットワークセグメント101は、データストレージに参加するホスト106および2つのノード105、107を有する。ネットワークセグメント102は、データストレージに参加する2つのノード108、109を有する。ネットワークセグメント103は、データストレージに参加するホスト111および2つのノード110、112を有する。最後に、ネットワークセグメント104は、データストレージに参加する2つのノード113、114を有する。
一例として、ネットワーク上の任意のノードが、ネットワーク全体に記憶されるストリームを記述するメタデータの記憶場所としての役割を果たすことが可能であり、その各ストリーム内にエクステント参照のリストが含まれ、また、ノードの組は各エクステントを保持する。ホスト111およびホスト106上のクライアントセッションは、ノード112およびノード109上に記憶されているエクステントインスタンスを有するストリームに対するアトミックな複合変形を同時に実行したい。ノード110は、メタデータコントローラとして機能しているものとすることができる。この場合、ホスト111および106の両方は、ノード110に所望のストリームのメタデータへの変更を行わせる要求を同時に送り、競争が起こる。前提条件制約を規定することにより、ノード110により成功裏に処理される最初の要求を発したノードならどちらでも、ストリームに関連するメタデータを変形することができる。2番目のノードの要求は失敗し、2番目のノードは、例えば、操作を中止することまたは整合性のある時点から再スタートすることにより、前提条件が満たされないことに対処するよう要求される。これは楽観的な並行モデルにおいて望まれる挙動である。最初および2番目のノードは、複数の異なるトランザクションを伴うより複雑な動作を調整する必要がある場合、その複合変形要求の専用のロック/リースのストリームへの前提条件およびその取扱いを含む、ロックおよびリースを確立することが可能であり、失敗したノードに対して、ロックが解除されるまで待ち、その変形を実行するように要求する。
ここで図2を参照すると、例示的ノードが示され、コンピュータデバイス200として一般的に指定される。コンピュータデバイス200は、適切なコンピュータ環境の一例にすぎず、本発明の使用または機能性の範囲について任意の制限を示唆するわけではない。また、コンピュータデバイス200は、例示されるコンポーネントの任意の1つまたは組み合わせに関する任意の依存性または要件を有するものとして解釈してはならない。
本発明は、携帯情報端末または他のハンドヘルドデバイス等の、コンピュータまたは他のマシンにより実行されるプログラムモジュール等のコンピュータ実行可能命令を含む、コンピュータコードまたはマシン使用可能命令の一般的コンテキストで記載してもよい。一般に、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含むプログラムモジュールは、特定のタスクを実行するコード、または特定の抽象データ型を実装するコードを参照する。本発明は、ハンドヘルドデバイス、家庭用電化製品、汎用コンピュータ、より専門的なコンピュータデバイス等を含む様々なシステム構成において実施してもよい。本発明は、また、通信ネットワークを介してリンクされるリモート処理デバイスによりタスクが実行される分散コンピュータ環境において実施してもよい。
図2を参照すると、コンピュータデバイス200には、ネットワークデバイス202、CPU203、メモリ204、記憶装置205、および入力/出力(I/O)デバイス206を直接または間接的に連結するバス201が含まれる。バス201は、1つまたは複数のバスであってもよい(アドレスバス、データバス、またはその組み合わせなど)。図2の種々のブロックが、明確にする目的で線によって示されるが、実際には、それほど明確に種々のコンポーネントを輪郭で描けるものではなく、例えて言うなら、線はより正確には、グレーまたはファジーである。例えば、多くのプロセッサがメモリを有する。我々は、そのようなことは従来技術の特質であることを認識し、また、図2の図は、本発明の1つまたは複数の実施形態に関連して使用することができる例示的コンピュータデバイスの、単なる図示であることを繰り返す。「ワークステーション」「サーバ」「ラップトップ」「ハンドヘルドデバイス」等のカテゴリ間に区別は無く、全てが図2の範囲内であり、「コンピュータデバイス」または「ノード」に対する参照内であることが意図される。
コンピュータデバイス200には、通常、様々なコンピュータ可読媒体が含まれる。コンピュータ可読媒体は、コンピュータデバイス200がアクセスできる任意の利用可能な媒体でよく、揮発性および不揮発性媒体、着脱可能および着脱不能媒体を含む。限定するわけではないが、一例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含んでもよい。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータ等の情報を記憶するための任意の方法または技術で実装される揮発性および不揮発性媒体、着脱可能および着脱不能媒体の両方が含まれる。コンピュータ記憶媒体には、限定するわけではないが、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD−ROM、DVD(digital versatile disk)もしくは他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、所望の情報を記憶するために使用することができ、コンピュータデバイス200がアクセスできる任意の他の媒体が含まれる。
メモリ204には、揮発性メモリ形式のコンピュータ記憶媒体が含まれる。例示的ハードウェアデバイスには、RAM等の固体メモリが含まれる。記憶装置205には、不揮発性メモリ形式のコンピュータ記憶媒体が含まれる。メモリは、着脱可能でもよいし、着脱不能でもよいし、またはその組み合わせでもよい。例示的ハードウェアデバイスには、固体メモリ、ハードドライブ、光ディスクドライブ等が含まれる。コンピュータデバイス100には、メモリ204、記憶装置205、またはI/Oデバイス206等の種々のエンティティからデータを読み込む1つまたは複数のプロセッサ(CPU)203が含まれる。I/Oデバイス206は、内蔵できるものもある入力コンポーネントおよび出力コンポーネントを含む他のデバイスに、コンピュータデバイス200を論理的に連結することができる。例示的コンポーネントとしては、マイク、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナ、プリンタ、無線デバイス等がある。コンピュータデバイス200には、ネットワークデバイス202が含まれ、他のネットワークデバイスとの通信を容易にする。ネットワークデバイス202は、追加的I/Oデバイスとしての役割を果たす。
当業者には当然のことながら、ノードまたはストレージノードと呼ばれるコンピュータデバイスのネットワーク内に記憶されるデータは、多くの方法でフォーマットすることができる。一例として、一般的には、音楽ファイル、映像ファイル、ワープロ文書等の独立したデータファイルは、分散型手法で記憶される。本発明の一実施形態によれば、データは、ストリームのコレクションとしてモデル化され、これは従来の階層的なネームスペースに組織化してもよい。図3は、データストレージに使用される例示的データ形式としてのストリーム300を示し、本発明のいくつかの実施形態従って、ストリーム300に対してアトミックな複合変形を行うことができる。ストリーム300は、論理的に関連付けられるデータのコレクションである。本発明のいくつかの実施形態によれば、ストリーム300は、付加専用であり、大きさが非常に大きく、ネットワークノードの個々の記憶装置の何倍もの容量を超すものもある。ストリーム300は、ハンドルネーム、すなわち名前によりアクセスされ、ストリーム300等の各ストリームにはリテンション・アクセスポリシーがある。本発明のいくつかの実施形態によれば、各ストリームは、また、関連するグローバル一意識別子(GUID)を持ち、これはストリームの有効期限の間、変更不可である(すなわち、変更可能な名前とは異なり、GUIDは恒久的にその関連するストリームを識別する)。ストリーム300は、例えば、一連のバイトとして扱うことができる。ストリーム300は、順序付けられた一連のエクステント301、302、303から成る。エクステント301、302、303は、ストリーム300に対する割り当ての単位である。エクステント301、302、303は、付加専用でもあり、各エクステント301、302、303は、グローバル一意識別子(GUID)で識別される。エクステント301、302、303は、ネットワーク内の多くのノード間に分散することができる。エクステント301、302、303は、通常、複製され、エクステント301、302、303のレプリカは、ネットワーク内の多くのノード間に分散することができる。エクステント301、302、303は、大きさに制限があり(例えば2GB)、多くの目的のためのパーティションの単位である。エクステント301、302、303の大きさは、ストリームを、障害復旧、負荷バラシング、複写,検索、および/またはデータマイニングのために並行して処理することができるチャンク(一まとまりのデータ群)に分割するために、制限されることがある。エクステントの大きさはまた、ストレージシステムの障害復旧モードにより制限されることがある。
本発明のいくつかの実施形態によれば、ストリーム300は、各エクステント、および/または各エクステントのレプリカの記憶場所(単数または複数)への参照を記憶する。例えば、エクステント301のレプリカがノード304上に記憶され、エクステント302および303のインスタンスが両方ともノード305上に記憶される。エクステントは複製可能であることに留意されたい。それらのシナリオにおいて、エクステントデータには、複数の記憶場所でアクセスしてもよく、そこはレプリカの記憶場所である。エクステントのGUIDは変更されないが、そのレプリカの数と記憶場所は時と共に変更してもよい。明確かつ簡素にする目的で、本例は、エクステントが複製されないシナリオを単に示す。参照を記憶することの1つの利点は、エクステントに関連するデータのいずれもコピーまたは移動させることなく、エクステント参照をストリームに追加できることである。一例として、エクステント301の別のコピーをストリーム300に追加する場合、ノード304上のデータを変更することもコピーすることも必要ではない。その代わり、付加的エクステント参照が、既にストリーム300にあるエクステント参照のリストに追加される。
ストリームはメタデータにより表され、それ自体を、本発明の一実施形態に従って、ネットワーク全体に分散、または集中型サーバに記憶させることができる。ここで図4を参照すると、一例として、メタデータ400はストリームについての情報を含有するデータのコレクションである。本発明のいくつかの実施形態によれば、ストリームに関連するメタデータ400には、現在ストリーム401に関連する名前が含まれる。ストリームの名前は、データにアクセスするクライアントが使用するディレクトリ構造内にストリームをロケートする(位置づける)。ストリームが移動かつ変形されると、名前を変更することができる。本発明のいくつかの実施形態によれば、ホストは名前401でストリームにアクセスする。メタデータ400には、また、GUID402が含まれ、これは、グローバルに一意的であり、また、永久的かつ排他的にストリームに関連付けられる識別子である(すなわち、ストリームに対するGUID402は決して変更されず、2つのストリームが同じGUIDを共有することは無い)。ストリームに関連するメタデータ400は、また、ストリームを編成するエクステント参照403のリストを含有する。各エクステント参照403は、特定のエクステントを識別し、クライアントまたはサーバが、そのエクステントの全てのレプリカをネットワーク内にロケートすることを可能にし、実際のデータへの物理的アクセスを提供する。
アトミックな複合変形は、1つまたは複数のストリームに対する複合変形を実行するステップを含む。一例として、変形には、新しいストリームを作成する工程、ストリームを消去する工程、ストリームをリネームする工程、2つまたはそれ以上のストリームを連結させる工程、既存のストリームのコピーを作成する工程、およびストリームのエクステントのサブセットを第2のストリームにコピーする工程が含まれる。当業者には当然のことながら、アトミックな複合変形を形成するために組み合わせて使用することができる多くの他の可能性のある変形がある。ここで図5に移り、アトミックな複合変形の例について考察する。命令の複合変形の組503は、ストリーム501を「A」から「B」にリネームする工程と、ストリーム502を「B」から「A」にリネームする工程から成る。当業者には当然のことながら、標準データコピー法を使用すると、そのような変形を実行するための一時的記憶領域が必要となり、障害からの復旧を複雑にするが、それは、復旧の論理では、エラーの場合に一時的記憶領域をクリンアップする必要があり、さらにストリーム501およびストリーム502の両方が、障害からの復旧後、グローバルに整合性のある状態に確実に達する必要があるためである。しかし、本発明の一実施形態によれば、アトミックな複合変形は、1つのステップであるかのように実行され、それにより、ストリーム501およびストリーム502両方は障害に直面しても整合性の状態にあり、かつ、クリンアップすべき一時的記憶領域がないという点において、復旧の論理は簡素化される。一例として、ストリーム501およびストリーム502の名前(それぞれ「A」および「B」)が、最初にそのメタデータから削除され、両ストリームは名前無しとなる。これにより、ストリームがストリームのネームスペースから切り離され、複合変形を行うことができる。
変形の組503における第1の変形509が実行される。この場合、ストリーム501は「B」とリネームされるはずである。これを達成するため、ストリーム501の名前が「B」と設定され、ストリーム501は、ストリームのネームスペースに再び取り付けられる。これは、ネームスペースの衝突が無ければ成功するが、何故なら、名前「B」は、ストリーム502がストリームのネームスペースから取り去られた時に利用可能になるからである。変形の組503からの第2の変形512も実行される。この場合、ストリーム502は「A」とリネームされるはずである。これを達成するため、ストリーム502の名前は「A」と設定され、ストリーム502は、ストリームのネームスペースに再び取り付けられる。これは、ネームスペースの衝突が無ければ成功するが、何故なら、名前「A」は、ストリーム501がストリームのネームスペースから取り去られた時に利用可能になるからである。
ここで図6を参照すると、フロー図が与えられ、本発明の一実施形態に従う、1つまたは複数の選択されたストリームに対するアトミックな複合変形を実行するための方法600が示される。ブロック601にて示すように、1つまたは複数のストリームが変形のために選択される。当業者には当然のことながら、変形のためにストリームを選択できる方法は多数ある。一例として、ある方法の適用により、現在の名前またはGUIDによりそれぞれが参照されるストリームのリストが提供され、それらは変形のために選択されるストリームとして含まれるべきものである。名前および/またはGUIDの一覧を使用して、ストリームに関連するエクステント参照リストを含む、各ストリームのメタデータを見つける。本発明のいくつかの実施形態によれば、各ストリームの物理的記憶場所も、メタデータ内の情報に基づきロケートされる。
ブロック602に示すように、変形のために選択された1つまたは複数のストリームのそれぞれに関連するメタデータに対してロックが取得されると共に、複合変形が対象とするストリームのネームスペースが取得される。ブロック603に示すように、一旦ロックが取得されると、選択されたストリームは、消去またはリネームの対象となり、そのそれぞれの名前から切り離される。本発明のいくつかの実施形態によれば、これにより、変形が同時に起こったかのように、変形をストリームにもたらす方法で、複合変形を適用することが容易となる。一例として、ストリームを関連する名前から切り離すステップは、選択されたストリームのそれぞれの名前にストリームGUIDが連結されている元の連結を記憶する、一時的マッピングを作成することにより達成される。
複合変形は、アトミックな複合変形として生じるような方法で行うことができる。図6には2つの変形が示されるが、当業者には当然のことながら、1つまたは複数の選択されたストリーム上で操作して、任意の数の変形を組み合わせて単一のアトミックな複合変形を形成することができる。ブロック604に示すように、第1の変形が1つまたは複数のストリームに対して実行され、また、ブロック605に示すように、第2の変形が実行される。本発明のいくつかの実施形態によれば、これらの変形は、連続的ではなく、同時に生じるように行う。一例として、変形には、新しいストリームを作成する工程、ストリームを消去する工程、ストリームをリネームする工程、ストリームのメタデータを更新する工程、既存のストリームのコピーを作成する工程、複数のストリームを連結させる工程、およびストリームのエクステントのサブセットを第2のストリームにコピーする工程が含まれる。
アトミックな複合変形における全ての変更が完了すると、ブロック606に示すように、ストリームは、名前に再連結される。本発明のいくつかの実施形態によれば、ストリーム名は、対応するストリームに適用される変形のそれぞれにより一時的マッピングに対してなされる変更に基づき、ストリームに連結される。ストリームのGUIDを使用して、これらの変更をトラッキングし、再連結を行う。ブロック607に示すように、1つまたは複数の選択されたストリームのそれぞれに関連するメタデータに対するロック(単数または複数)と共に、複合変形が対象とするストリームのネームスペースが解除される。
ここで図7に移ると、フロー図が与えられ、本発明の一実施形態に従う、複合変形における変形が成功裏に完了できない場合の、1つまたは複数の選択されたストリームに対するアトミックな複合変形を実行するための方法700が示される。アトミックな複合変形を編成する変形を実行する過程において、変形の1つが、一旦実行されて、成功裏に完了できないという可能性がある。一例として、複合変形における2つの変更両方が、結果として、同じ名前を有するストリームを生じさせようとする場合がある(例えば、ストリームの作成またはリネームを介して)。従って、複合変形が成功可能ならば、結果として得られる状態は、変形が実行された順番に依存し、変形が同時になされるかのように変形を実行する方法は無い。そのような場合が発見されると、アトミックな複合変形の一部として実行される限り全ての変形が反転され、ストリームメタデータは、アトミックな複合変形が開始される前の状態にリセットされる。図6の方法600と同様に、ブロック701に示すように、1つまたは複数のストリームが、アトミックな複合変形を適用するために選択され、ブロック702に示すように、選択されたストリームのそれぞれに関連するメタデータに対してロックが取得される。
ブロック703に示すように、各選択されたストリームはその関連する名前から切り離され、ブロック704に示すように、図6のブロック603および604と同様、第1の変形が1つまたは複数の選択されたストリームに適用される。ブロック705に示すように、選択されたストリームへの第2の変形が成功裏に完了しないことが判定される。当業者には当然のことながら、そのような判定を行うことが可能な多くの方法がある。本発明のいくつかの実施形態によれば、一時的な反転可能変異の履歴を使用して、アトミックな複合変形を実行する処理における任意のステップを巻き戻すための機構を追加的に提供する。
アトミックな複合変形の適用において障害が発生すると判定されると、ブロック706に示すように、適用済みの変形が反転される。選択されたストリームに対してなされた任意の変形の反転後、ブロック707に示すように、ストリームはそれぞれの元の名前に再連結され、新しく作成されたストリームが消去される。一旦、変形が反転され、ストリームがその元の名前に再連結され、新しく作成されたストリームが消去されると、ブロック708に示すように、図6におけるブロック607と同様、ロックが解除される。
本発明のいくつかの実施形態による、1つまたは複数の選択されたストリームに対するアトミックな複合変形を実行するための方法を、図8のフロー図に示す。アトミックな複合変形を編成する変形の1つが失敗したことが検出される場合、このアトミックな複合変形は中断され、ストリームはアトミックな複合変形の開始前の状態に戻される。ブロック801に示すように、1つまたは複数のストリームが変形のために選択され、ブロック802に示すように、図6のブロック601および602と同様、選択されたストリームに関連するメタデータに対してロックが取得される。
ブロック803に示すように、消去またはリネームの対象とされる各ストリームが、その関連する名前から切り離され、ブロック804に示すように、図6のブロック603および604と同様、第1の変形が実行される。そして、ブロック805に示すように、第2の変形の適用が成功裏に完了できないかどうかが判定される。この判定は、図7のブロック705の判定と同様の方法で行うことができる。例えば、第2の変形の適用で、第1の変形によりまたは以前のトランザクション内で、別のストリームに既に関連付けられた名前に対して、ストリームが関連付けられる場合、第2の変形は成功裏に完了しない。
第2の変形が成功裏に実行可能であると判定される場合、ブロック806に示すように、第2の変形が実行され、ブロック808に示すように、ストリームはその最後に関連付けられた名前に再連結され、ブロック809に示すように、変形のために選択されたストリームに関連するメタデータに対するロック(単数または複数)、およびストリームのネームスペースが解除される。これらのステップのそれぞれは、図6のステップ605、606、および607と同様に実行してもよい。
しかし、第2の変形が失敗すると判定される場合、ブロック807に示すように、第1の変形は反転され、ブロック808に示すように、ストリームは、その元の関連する名前に再連結され、ブロック809に示すように、任意の新しく作成されたストリームが消去され、変形のために選択されたストリームに関連するメタデータに対するロック(単数または複数)、およびストリームのネームスペースが解除される。これらのステップのそれぞれは、図7のステップ706、707および708と同様に実行してもよい。
一例として、図9に、実行中の複合変形の例を示す。図9の例には、システムの状態を示す「チェックポイント+ログ」という方式の実装が含まれる。そのようなシステムにおいて、システムの状態は、チェックポイントと呼ばれる完全な状態情報を含有するスナップショットと、最後に分かっているチェックポイントからなされる変更を含有する種々のより小さなデルタ(差分)とにより表される。ログは、これらデルタのリストを含有する。システムの現在の状態に到達するために、クライアントは、最後のスナップショット後に起こるログの全てのデルタを、最後のスナップショットに対して適用する。最新のスナップショットより前に発生したスナップショットおよびデルタは古く、もはや必要ないため、ガーベジコレクション処理により、古いスナップショットおよびデルタを定期的に削除することができる。当業者には当然のことながら、アトミックな複合変形のための他の多くのシステム用途がある。
例えば、フォトアルバムを記憶するシステムについて考える。この場合、そのフォトアルバムは、3つのストリームALBUM.CHECKPOINTS901、ALBUM.DELTA902、およびALBUM.DATA903で表されるものとする。ALBUM.CHECKPOINTS901は、全てのフォトの完全なリストと、ある特定の時点におけるアルバム内の注釈とを記憶する。フォトの消去および追加が、ALBUM.DELTA902に記憶される。実際のフォトは、ALBUM.DATA903に記憶される。このフォトアルバムには、何千ものクライアントが同時にアクセスし、それぞれが、新しいフォトを追加し、フォトを編集して置き換え、フォトを消去し、フォトをリネームし、フォトに注釈を付けるなどを行ってもよい。周期的に、ALBUM.DELTA902ファイルが、非常に大きくなり、クライアントが長いロード時間を待つことになる場合がある。また、ALBUM.DATA903におけるエクステントが、任意の最近のチェックポイントまたはデルタからの参照が何も無いこともある(例えば、それらのエクステント内のフォトが既に消去されている)。
何千ものクライアントのそれぞれは、これらストリームのそれぞれを開けてもよい。ガーベジコレクション処理は、不必要な項目をストリームから削除することを、いずれは決定する。例えば、ALBUM.CHECKPOINTS901が2つのエクステント、すなわち、古いチェックポイント904を有する第1のエクステント、および、最新のチェックポイント905を有する第2のエクステントから成ると仮定する。新しいチェックポイントが完全なシステムスナップショットを含有するので、古いチェックポイントは削除可能である。ALBUM.DELTA902もまた、複数のエクステントから成る。この例では、現在のチェックポイント905からの関連するデルタが全て、ALBULM.DELTAの最新のエクステント906内にあると仮定する。ALBUM.DATA903は多くのエクステントを含有し、その中には参照のストリームを持たないエクステント、換言すれば、削除可能なエクステントがばらばらに存在する。例えば、R、S、Y、ZのIDを有するエクステント(912、913、914、915)のみが、ALBUM.DATAのストリーム内に保持される。不要なエクステントをクリンアップするために、ガーベジコレクション処理は、以下の変形を実行することができる。すなわち、古いエクステントをALBUM.CHECKPOINTS901から削除し、古いエクステントをALBUM.DELTA902から削除し、ALBUM.CHECKPOINTS901およびALBUM.DELTA902内に残っているエクステントにおいて参照されないALBUM.DATA903内の任意のエクステントを削除する。ガーベジコレクション処理は、アトミックな複合変形を使用してこれらの変形を達成することが可能である。
ガレージコレクション処理が使用可能なアトミックな複合変形の例には、以下の変形が含まれる。変形1:ALBUM.CHECKPOINTS907と名付けられる新しいストリームを作成し、STREAM_ID ABCD901を有するストリームを消去し、EXTENT_ID B910を新しいストリームに付加する。これにはIDQRSTが割り当てられる。変形2:ALBUM.DELTA908と名付けられる新しいストリームを作成し、STREAM_ID AFDE902を有するストリームを消去し、EXTENT_ID L911を新しいストリームに付加する。これにはSTREAM_ID VCDEが割り当てられる。変形3:ALBUM.DATA909と名付けられる新しいストリームを作成し、STREAM_ID DEFF903を有するストリームを消去し、EXTENT_ID R912、EXTENT_ID S913、EXTENT_ID Y914およびEXTENT_ID Z915を新しいストリームに付加する。これにはID RSTVが割り当てられる。全ての変形が自動的に実行されるため、クライアントには、アルバムの不整合が表示されることは無い。この特定の例において、これらのストリームのそれぞれを別個の複合変形のトランザクションにおいて変形することも論理的には正しい。これらのストリームは、効率性の理由で、単一の複合変形トランザクションにおいて変形される(トランザクションの数を減らすため)。しかし、当業者には当然のことながら、複数のストリームが1つのアトミックなトランザクションにおいて変形されて、これらのストリーム間の整合性が確実にされなければならないというシナリオが存在し、これらのシナリオにおいて複合変形のサポートを使用することができる。
示された種々のコンポーネントだけではなく、図示されないコンポーネントについても、本発明の精神および範囲から逸脱することなく、多くの異なる配置が可能である。本発明の実施形態は、限定するわけではなく、例示を目的として説明した。その範囲から逸脱しない代替の実施形態は、当業者に対して明らかとなろう。当業者は、本発明の範囲から逸脱することなく上述の改善を実現させる代替の手段を開発することができる。
当然のことながら、特定の特徴およびサブコンビネーションは、有用であり、他の特徴およびサブコンビネーションを参照することなく採用することができ、かつ、請求項の範囲内に企図される。種々の図面に挙げた全てのステップが、記載される特定の順番で実行される必要はない。

Claims (20)

  1. 単一のアトミックな単位として、1つまたは複数のストリームに対する複合変形を実行する方法を実行するためのコンピュータ実行可能命令を記憶する1つまたは複数のコンピュータ可読媒体であって、前記方法は、
    1つまたは複数の選択されたストリームとして変形のために1つまたは複数のストリームを選択するステップと(601)、
    前記1つまたは複数の選択されたストリームに関連する1つまたは複数のメタデータに対するロックを取得するステップと(602)、
    前記1つまたは複数の選択されたストリームのそれぞれを、それぞれのストリームに関連する1つまたは複数の名前から切り離すステップ(603)と、
    前記1つまたは複数の選択されたストリームに対する複数の変形を実行するステップ(604、605)と、
    前記1つまたは複数の選択されたストリームのそれぞれを、それぞれのストリームに関連する少なくとも1つの名前に連結するステップ(606)と、
    前記1つまたは複数の選択されたストリームの前記1つまたは複数のメタデータに対する前記ロックを解除するステップ(607)と
    を含むことを特徴とするコンピュータ可読媒体。
  2. 前記1つまたは複数のストリームが付加専用ストリームであることを特徴とする請求項1に記載の媒体。
  3. 前記切り離すステップが、前記1つまたは複数の選択されたストリームのそれぞれの、それぞれのストリームに関連する名前からの元の連結を記憶する一時的マッピングを保持するステップを含むことを特徴とする請求項1に記載の媒体。
  4. 前記一時的マッピングは、前記1つまたは複数のストリームのそれぞれのGUIDに基づくことを特徴とする請求項3に記載の媒体。
  5. 前記複数の変形は、新しいストリームを作成する工程、既存のストリームへ付加する工程、既存のストリームのコピーを作成する工程、ストリームを消去する工程、ストリームをリネームする工程、ストリームのメタデータを更新する工程、および、ストリームのエクステントのサブセットを第2のストリームにコピーする工程、の内の1つまたは複数を含むことを特徴とする請求項1に記載の媒体。
  6. 前記再連結させるステップは、前記1つまたは複数の選択されたストリームの1つまたは複数のGUIDを、前記1つまたは複数の名前に関連付けるステップを含むことを特徴とする請求項1に記載の媒体。
  7. 前記再連結させるステップは、ストリームを識別する1つまたは複数のGUIDと、1つまたは複数の名前との間の一時的マッピングを使用するステップ含むことを特徴とする請求項6に記載の媒体。
  8. 前記複数の変形は、エクステントに対する1つまたは複数のポインタを、1つまたは複数のエクステントのデータを移動することなく変更することにより、前記1つまたは複数の選択されたストリームに影響を与えることを特徴とする請求項1に記載の媒体。
  9. 単一のアトミックな単位として、1つまたは複数のストリームに対する複合変形を実行する方法を実行するためのコンピュータ実行可能命令を記憶する1つまたは複数のコンピュータ可読媒体であって、前記方法は、
    1つまたは複数の選択されたストリームとして変形のために1つまたは複数のストリームを選択するステップと(701)、
    前記1つまたは複数の選択されたストリームに関連する1つまたは複数のメタデータに対するロックを取得するステップと(702)、
    前記1つまたは複数の選択されたストリームのそれぞれを、それぞれのストリームに関連する名前から切り離すステップ(703)と、
    前記1つまたは複数の選択されたストリームに対する複数の変形の内の第1の変形を実行するステップ(704)と、
    前記1つまたは複数の選択されたストリームに対する複数の変形の内の第2の変形が不整合を生み出す、と判定するステップ(705)と、
    前記1つまたは複数の選択されたストリームに対する複数の変形の内の第1の変形を反転させるステップ(706)と、
    前記1つまたは複数の選択されたストリームのそれぞれを、それぞれのストリームに関連する少なくとも1つの名前に連結するステップ(707)と、
    前記1つまたは複数の選択されたストリームの前記1つまたは複数のメタデータに対する前記ロックを解除するステップ(708)と
    を含むことを特徴とするコンピュータ可読媒体。
  10. 前記1つまたは複数のストリームが付加専用ストリームであることを特徴とする請求項9に記載の媒体。
  11. 前記切り離すステップが、前記1つまたは複数の選択されたストリームのそれぞれの、それぞれのストリームに関連する名前からの元の連結を記憶する一時的マッピングを保持するステップを含むことを特徴とする請求項9に記載の媒体。
  12. 前記複数の変形は、前記一時的マッピングにおける1つまたは複数の変更を生じさせることを特徴とする請求項11に記載の媒体。
  13. 前記複数の変形のそれぞれは、前記一時的マッピングの新しいコピーを作成し、各コピーは、前記一時的マッピングの前記新しいコピーに関連する複数の変形の内の1変形の適用後、前記1つまたは複数の選択されたストリームのスナップショットを示すことを特徴とする請求項11に記載の媒体。
  14. 複数の変形の内の前記第1の変形を反転させるステップは、前記選択されたストリームのそれぞれに対する変更を反転させるステップを含むことを特徴とする請求項11に記載の媒体。
  15. 前記再連結させるステップは、前記元の連結を記憶する前記一時的マッピングを使用して、前記1つまたは複数の選択されたストリームのそれぞれを、それぞれのストリームに関連する名前に再連結させることを特徴とする請求項11に記載の媒体。
  16. 前記複数の変形は、新しいストリームを作成する工程、既存のストリームへ付加する工程、既存のストリームのコピーを作成する工程、ストリームを消去する工程、ストリームをリネームする工程、ストリームのメタデータを更新する工程、および、ストリームのエクステントのサブセットを第2のストリームにコピーする工程、の内の1つまたは複数を含むことを特徴とする請求項9に記載の媒体。
  17. 前記複数の変形は、エクステントに対する1つまたは複数のポインタを、1つまたは複数のエクステントのデータを移動することなく変更することにより、前記1つまたは複数の選択されたストリームに影響を与えることを特徴とする請求項9に記載の媒体。
  18. 単一のアトミックな単位として、1つまたは複数のストリームに対する複合変形を実行する方法を実行するためのコンピュータ実行可能命令を記憶する1つまたは複数のコンピュータ可読媒体であって、前記方法は、
    1つまたは複数の選択されたストリームとして変形のために1つまたは複数の付加専用ストリームを選択するステップ(801)と、
    前記1つまたは複数の選択されたストリームに関連する1つまたは複数のメタデータに対するロックを取得するステップ(802)であって、所定の名前を有するストリームをロックストリームとなるように変形するステップを含む、ステップと、
    前記1つまたは複数の選択されたストリームのそれぞれを、それぞれのストリームに関連する1つまたは複数の名前から切り離すステップ(803)と、
    前記1つまたは複数の選択されたストリームに対する複数の変形の内の第1の変形を実行するステップ(804)と、
    前記1つまたは複数の選択されたストリームに対する複数の変形の内の第2の変形が不整合を生み出すかどうか、を判定するステップ(805)と、
    前記複数の変形の内の第2の変形が不整合を生み出す場合、前記1つまたは複数の選択されたストリームに対する複数の変形の内の前記第1の変形を反転させるステップ(807)と、
    前記複数の変形の内の第2の変形が不整合を生み出さない場合、前記1つまたは複数の選択されたストリームに対する複数の変形の内の第2の変形を実行するステップ(806)と、
    前記1つまたは複数の選択されたストリームのそれぞれを、それぞれのストリームに関連する少なくとも1つの名前に連結するステップ(808)と、
    前記1つまたは複数の選択されたストリームの前記1つまたは複数のメタデータに対する前記ロックを解除するステップ(809)と
    を含むことを特徴とするコンピュータ可読媒体。
  19. 前記複数の変形は、エクステントに対する1つまたは複数のポインタを、1つまたは複数のエクステントのデータを移動することなく変更することにより、前記1つまたは複数の選択されたストリームに影響を与えることを特徴とする請求項18に記載の媒体。
  20. 前記複数の変形は、新しいストリームを作成する工程、既存のストリームへ付加する工程、既存のストリームのコピーを作成する工程、ストリームを消去する工程、ストリームをリネームする工程、ストリームのメタデータを更新する工程、および、ストリームのエクステントのサブセットを第2のストリームにコピーする工程、の内の1つまたは複数を含むことを特徴とする請求項18に記載の媒体。

JP2011533238A 2008-10-24 2009-10-15 分散ストレージシステムにおけるデータのアトミックな複合変形 Active JP5657550B2 (ja)

Applications Claiming Priority (3)

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
US12/258,025 2008-10-24
PCT/US2009/060847 WO2010048027A2 (en) 2008-10-24 2009-10-15 Atomic multiple modification of data in a distributed storage system

Publications (3)

Publication Number Publication Date
JP2012507072A true JP2012507072A (ja) 2012-03-22
JP2012507072A5 JP2012507072A5 (ja) 2012-11-29
JP5657550B2 JP5657550B2 (ja) 2015-01-21

Family

ID=42119902

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011533238A Active JP5657550B2 (ja) 2008-10-24 2009-10-15 分散ストレージシステムにおけるデータのアトミックな複合変形

Country Status (11)

Country Link
US (1) US8255373B2 (ja)
EP (1) EP2356560B1 (ja)
JP (1) JP5657550B2 (ja)
KR (1) KR101573965B1 (ja)
CN (1) CN102197365B (ja)
AU (1) AU2009307842B2 (ja)
BR (1) BRPI0919072A2 (ja)
CA (1) CA2736961C (ja)
RU (1) RU2011116176A (ja)
TW (1) TWI395104B (ja)
WO (1) WO2010048027A2 (ja)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016511495A (ja) * 2013-03-15 2016-04-14 アマゾン・テクノロジーズ・インコーポレーテッド ログレコード管理
US9672237B2 (en) 2013-03-15 2017-06-06 Amazon Technologies, Inc. System-wide checkpoint avoidance for distributed database systems
US9699017B1 (en) 2013-09-25 2017-07-04 Amazon Technologies, Inc. Dynamic utilization of bandwidth for a quorum-based distributed storage system
US9760596B2 (en) 2013-05-13 2017-09-12 Amazon Technologies, Inc. Transaction ordering
US9817710B2 (en) 2013-05-28 2017-11-14 Amazon Technologies, Inc. Self-describing data blocks stored with atomic write
US9880933B1 (en) 2013-11-20 2018-01-30 Amazon Technologies, Inc. Distributed in-memory buffer cache system using buffer cache nodes
US10180951B2 (en) 2013-03-15 2019-01-15 Amazon Technologies, Inc. Place snapshots
US10216949B1 (en) 2013-09-20 2019-02-26 Amazon Technologies, Inc. Dynamic quorum membership changes
US10223184B1 (en) 2013-09-25 2019-03-05 Amazon Technologies, Inc. Individual write quorums for a log-structured distributed storage system
US10303564B1 (en) 2013-05-23 2019-05-28 Amazon Technologies, Inc. Reduced transaction I/O for log-structured storage systems
US10437721B2 (en) 2013-09-20 2019-10-08 Amazon Technologies, Inc. Efficient garbage collection for a log-structured data store
US10474547B2 (en) 2013-05-15 2019-11-12 Amazon Technologies, Inc. Managing contingency capacity of pooled resources in multiple availability zones
US10534768B2 (en) 2013-12-02 2020-01-14 Amazon Technologies, Inc. Optimized log storage for asynchronous log updates
US10698881B2 (en) 2013-03-15 2020-06-30 Amazon Technologies, Inc. Database system with database engine and separate distributed storage service
US10747746B2 (en) 2013-04-30 2020-08-18 Amazon Technologies, Inc. Efficient read replicas
JP2020525906A (ja) * 2017-06-27 2020-08-27 セールスフォース ドット コム インコーポレイティッド データベーステナントマイグレーションのシステム及び方法
US11030055B2 (en) 2013-03-15 2021-06-08 Amazon Technologies, Inc. Fast crash recovery for distributed database systems
US11341163B1 (en) 2020-03-30 2022-05-24 Amazon Technologies, Inc. Multi-level replication filtering for a distributed database
US11914571B1 (en) 2017-11-22 2024-02-27 Amazon Technologies, Inc. Optimistic concurrency for a multi-writer database

Families Citing this family (19)

* Cited by examiner, † Cited by third party
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
US10242222B2 (en) 2014-01-14 2019-03-26 Baker Hughes, A Ge Company, Llc Compartment-based data security
US10657113B2 (en) 2014-01-14 2020-05-19 Baker Hughes, A Ge Company, Llc Loose coupling of metadata and actual data
US10002077B2 (en) 2014-01-31 2018-06-19 Hewlett Packard Enterprise Development Lp 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 阿里巴巴集团控股有限公司 分布式锁的分配方法及设备
KR102457400B1 (ko) 2017-11-16 2022-10-21 삼성전자주식회사 가비지 컬렉션 방법, 이를 수행하는 저장 장치 및 이를 포함하는 컴퓨팅 시스템
KR102089291B1 (ko) * 2018-06-19 2020-03-16 주식회사 티맥스데이터 데이터 익스텐트 이동 방법
CN109240848A (zh) * 2018-07-27 2019-01-18 阿里巴巴集团控股有限公司 一种数据对象标识生成方法及装置
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

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002099450A (ja) * 2000-08-24 2002-04-05 Microsoft Corp コンピュータ・システムにおけるオブジェクトの別のストレージ・ロケーションへの部分的移動
JP2004528659A (ja) * 2001-05-31 2004-09-16 オラクル・インターナショナル・コーポレイション ストレージアクセスキー
JP2006244498A (ja) * 2005-02-28 2006-09-14 Microsoft Corp オブジェクトリレーショナルデータ用のデータモデル
JP2006526191A (ja) * 2003-05-17 2006-11-16 マイクロソフト コーポレーション マルチパートファイルに変換を適用する機構
JP2006351040A (ja) * 1998-11-18 2006-12-28 Fujitsu Ltd ノード間共用ファイル制御方法
JP2007293855A (ja) * 2006-04-21 2007-11-08 Ricoh Co Ltd ロギングとデータ交換同期のセキュアかつ効率的な方法
JP2007299288A (ja) * 2006-05-01 2007-11-15 Canon Inc コンテンツ管理方法、装置、及びシステム

Family Cites Families (33)

* Cited by examiner, † Cited by third party
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
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
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
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
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
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
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

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006351040A (ja) * 1998-11-18 2006-12-28 Fujitsu Ltd ノード間共用ファイル制御方法
JP2002099450A (ja) * 2000-08-24 2002-04-05 Microsoft Corp コンピュータ・システムにおけるオブジェクトの別のストレージ・ロケーションへの部分的移動
JP2004528659A (ja) * 2001-05-31 2004-09-16 オラクル・インターナショナル・コーポレイション ストレージアクセスキー
JP2006526191A (ja) * 2003-05-17 2006-11-16 マイクロソフト コーポレーション マルチパートファイルに変換を適用する機構
JP2006244498A (ja) * 2005-02-28 2006-09-14 Microsoft Corp オブジェクトリレーショナルデータ用のデータモデル
JP2007293855A (ja) * 2006-04-21 2007-11-08 Ricoh Co Ltd ロギングとデータ交換同期のセキュアかつ効率的な方法
JP2007299288A (ja) * 2006-05-01 2007-11-15 Canon Inc コンテンツ管理方法、装置、及びシステム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNC200751361030; 山下香欧: 'Omneonアクティブコンテンツサーバー MediaGrid' ビデオalpha 第22巻 第7号, 20060626, pp.123〜128, 写真工業出版社 *
JPN6011028433; 山下香欧: 'Omneonアクティブコンテンツサーバー MediaGrid' ビデオalpha 第22巻 第7号, 20060626, pp.123〜128, 写真工業出版社 *

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11030055B2 (en) 2013-03-15 2021-06-08 Amazon Technologies, Inc. Fast crash recovery for distributed database systems
US11500852B2 (en) 2013-03-15 2022-11-15 Amazon Technologies, Inc. Database system with database engine and separate distributed storage service
US10331655B2 (en) 2013-03-15 2019-06-25 Amazon Technologies, Inc. System-wide checkpoint avoidance for distributed database systems
JP2016511495A (ja) * 2013-03-15 2016-04-14 アマゾン・テクノロジーズ・インコーポレーテッド ログレコード管理
US10698881B2 (en) 2013-03-15 2020-06-30 Amazon Technologies, Inc. Database system with database engine and separate distributed storage service
US9672237B2 (en) 2013-03-15 2017-06-06 Amazon Technologies, Inc. System-wide checkpoint avoidance for distributed database systems
JP2018049652A (ja) * 2013-03-15 2018-03-29 アマゾン・テクノロジーズ・インコーポレーテッド ログレコード管理
US10031813B2 (en) 2013-03-15 2018-07-24 Amazon Technologies, Inc. Log record management
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
US10872076B2 (en) 2013-05-13 2020-12-22 Amazon Technologies, Inc. Transaction ordering
US10474547B2 (en) 2013-05-15 2019-11-12 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
US9817710B2 (en) 2013-05-28 2017-11-14 Amazon Technologies, Inc. Self-describing data blocks stored with atomic write
US10216949B1 (en) 2013-09-20 2019-02-26 Amazon Technologies, Inc. Dynamic quorum membership changes
US11120152B2 (en) 2013-09-20 2021-09-14 Amazon Technologies, Inc. Dynamic quorum membership changes
US10437721B2 (en) 2013-09-20 2019-10-08 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
US10198356B2 (en) 2013-11-20 2019-02-05 Amazon Technologies, Inc. Distributed cache nodes to send redo log records and receive acknowledgments to satisfy a write quorum requirement
US9880933B1 (en) 2013-11-20 2018-01-30 Amazon Technologies, Inc. Distributed in-memory buffer cache system using buffer cache nodes
US10534768B2 (en) 2013-12-02 2020-01-14 Amazon Technologies, Inc. Optimized log storage for asynchronous log updates
JP2020525906A (ja) * 2017-06-27 2020-08-27 セールスフォース ドット コム インコーポレイティッド データベーステナントマイグレーションのシステム及び方法
JP7053682B2 (ja) 2017-06-27 2022-04-12 セールスフォース ドット コム インコーポレイティッド データベーステナントマイグレーションのシステム及び方法
US11797498B2 (en) 2017-06-27 2023-10-24 Salesforce, Inc. Systems and methods of database tenant migration
US11914571B1 (en) 2017-11-22 2024-02-27 Amazon Technologies, Inc. Optimistic concurrency for a multi-writer database
US11341163B1 (en) 2020-03-30 2022-05-24 Amazon Technologies, Inc. Multi-level replication filtering for a distributed database

Also Published As

Publication number Publication date
CN102197365B (zh) 2014-03-05
AU2009307842A1 (en) 2010-04-29
TW201029393A (en) 2010-08-01
US20100114848A1 (en) 2010-05-06
KR20110079655A (ko) 2011-07-07
CN102197365A (zh) 2011-09-21
TWI395104B (zh) 2013-05-01
EP2356560A4 (en) 2012-05-09
EP2356560A2 (en) 2011-08-17
EP2356560B1 (en) 2019-03-20
AU2009307842B2 (en) 2014-05-22
RU2011116176A (ru) 2012-10-27
WO2010048027A2 (en) 2010-04-29
US8255373B2 (en) 2012-08-28
WO2010048027A3 (en) 2010-06-17
CA2736961C (en) 2016-07-12
BRPI0919072A2 (pt) 2015-12-15
KR101573965B1 (ko) 2015-12-02
CA2736961A1 (en) 2010-04-29
JP5657550B2 (ja) 2015-01-21

Similar Documents

Publication Publication Date Title
JP5657550B2 (ja) 分散ストレージシステムにおけるデータのアトミックな複合変形
AU2017239539B2 (en) In place snapshots
KR101926674B1 (ko) 로그 레코드 관리
US10534768B2 (en) Optimized log storage for asynchronous log updates
JP6309103B2 (ja) スナップショットおよびクローンの複製
US10936547B2 (en) Filesystem replication using a minimal filesystem metadata changelog
US8768977B2 (en) Data management using writeable snapshots in multi-versioned distributed B-trees
TWI492077B (zh) 檔案系統的檢查點
US8214377B2 (en) Method, system, and program for managing groups of objects when there are different group types
JP2006505069A (ja) ハードウェアベースのファイルシステムのための装置および方法
JP2022501747A (ja) データバックアップ方法、装置、サーバ及びコンピュータプログラム
US11468017B2 (en) Data storage system and method
US7685186B2 (en) Optimized and robust in-place data transformation
US20140250078A1 (en) Multiphase deduplication
US10452496B2 (en) System and method for managing storage transaction requests
Sears et al. Segment-based recovery: write-ahead logging revisited

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121005

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121005

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130712

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130719

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140507

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141028

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141126

R150 Certificate of patent or registration of utility model

Ref document number: 5657550

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250