JP6097880B2 - ビザンチン故障耐性データ複製を行う方法およびシステム - Google Patents

ビザンチン故障耐性データ複製を行う方法およびシステム Download PDF

Info

Publication number
JP6097880B2
JP6097880B2 JP2016504571A JP2016504571A JP6097880B2 JP 6097880 B2 JP6097880 B2 JP 6097880B2 JP 2016504571 A JP2016504571 A JP 2016504571A JP 2016504571 A JP2016504571 A JP 2016504571A JP 6097880 B2 JP6097880 B2 JP 6097880B2
Authority
JP
Japan
Prior art keywords
data
metadata
stored
servers
client
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.)
Expired - Fee Related
Application number
JP2016504571A
Other languages
English (en)
Other versions
JP2016517605A (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.)
NEC Europe Ltd
Original Assignee
NEC Europe Ltd
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 NEC Europe Ltd filed Critical NEC Europe Ltd
Publication of JP2016517605A publication Critical patent/JP2016517605A/ja
Application granted granted Critical
Publication of JP6097880B2 publication Critical patent/JP6097880B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、複数2f+1個のデータサーバおよび1個以上のクライアントによるビザンチン故障耐性データ複製を行う方法に関する。
また、本発明は、複数2f+1個のデータサーバおよび1個以上のクライアントを有するビザンチン故障耐性データ複製を行うシステムであって、好ましくは請求項1ないし11のいずれか1項に記載の方法を実行するシステムに関する。
データ複製(レプリケーション)は、一般に、障害の存在下で可用性およびデータ耐久性を提供する。例えば、複製されたデータストアは、操作が順次実行される複製されていないデータストアの挙動を示す場合に、強い意味の一貫性を有する。しかし、パフォーマンスおよびスケーラビリティが主要な問題となる。
データサーバシステムの複雑さの増大、および、保存されたデータの重要性の増大とともに、ビザンチン故障耐性(ビザンチン・フォールトトレランス)が、クラッシュ故障耐性に対する代替案として確立した。というのは、単純な停電、ソフトウェアのバグ、誤設定から、侵入およびマルウェアまでの幅広い問題を、「任意障害」あるいは「ビザンチン障害」という用語の下に包括することができるからである。
非同期性、同時並行性および障害の存在下で堅牢な複製データストアを実現するため、すなわち、任意障害の下で正確性を保証するため、クォーラム型(quorum-based)複製が使用される。非特許文献1には、f個の任意障害のビザンチン障害耐性のために3f+1個のサーバが使用されなければならないことが示されている。正しい値を読み出すためには、読み出し操作によって問合せを受けるクォーラムQr、すなわち、サーバの集合Qrが、f+1個のサーバにおける書き込み操作によって更新されるクォーラムQwと交わる必要がある。この場合、交わり(共通部分)の中に少なくとも1つの正しいサーバがあることが保証される。というのは、ビザンチン障害の可能性があるのは高々f個だからである。これを言い換えれば次の条件となる。
1)|Qr|+|Qw|−n≧f+1。ただし、nは使用されるサーバの総数である。
さらに、読み出しまたは書き込みの操作中にクラッシュしたサーバを無期限に待機することを避けるため、サーバのクォーラムQrおよびQwは、高々n−f個のサーバからなればよい。高々f個のサーバが故障する可能性があるので、n−f個のサーバは最終的に応答することが保証される。これを言い換えれば次の条件となる。
2)|Qr|=|Qw|≦n−f
2つの条件1)および2)を組み合わせることにより、次のようになる。
2n−2f−n≧f+1 ⇒ n≧3f+1
したがって、従来のシステムは、ビザンチン故障耐性ストレージで3f+1個のサーバを使用する。
例えば、非特許文献2では、ビザンチン・クォーラム型データ複製を用いてf個までのサーバの障害を許容するために、3f+1個のサーバあるいはクラウドが使用されている。
また、非特許文献3および非特許文献4には、他の従来のビザンチン故障耐性システムが示されている。
ビザンチン故障を許容するには、クラッシュ障害のみを許容するのに必要なよりもさらにf個のサーバを必要とするので、ビザンチン・クォーラム型データ複製の課題の1つは、クラッシュ耐性システムに比べて追加のコストがかかることである。例えば、非特許文献5に示されているように、f個のクラッシュを許容するには2f+1個のサーバが使用されるが、これではビザンチン故障を1つも許容することはできない。
Jean-Philippe Martin, Lorenzo Alvisi, Michael Dahlin: Minimal Byzantine Storage, DISC 2002: 311-325 Alysson Neves Bessani, Miguel P. Correia, Bruno Quaresma, Fernando Andre, Paulo Sousa: DepSky: dependable and secure storage in a cloud-of-clouds. EuroSys 2011: 31-46 Miguel Castro, Barbara Liskov: Practical byzantine fault tolerance and proactive recovery. ACM Trans. Comput. Syst. 20(4): 398-461 (2002) Dahlia Malkhi, Michael K. Reiter: Byzantine Quorum Systems. Distributed Computing 11(4): 203-213 (1998) Rui Fan, Nancy A. Lynch: Efficient Replication of Large Data Objects. DISC 2003: 75-91
したがって、本発明の目的は、特にストレージサーバ取得コストおよび保守コストに関して、さらにストレージ容量に関して、より効率的なビザンチン故障耐性データ複製を行う方法およびシステムを提供することである。
具体的には、1つの目的は、3f+1個未満のデータサーバでビザンチン故障耐性データ複製を行う方法を提供することである。
本発明のもう1つの目的は、読み出しパフォーマンスが改善され、ストレージサーバ数に関して線形の読み出しスケーラビリティを有するビザンチン故障耐性データ複製を行う方法およびシステムを提供することである。
本発明のさらにもう1つの目的は、トランザクション型データアクセスが可能なビザンチン故障耐性データ複製を行う方法およびシステムを提供することである。
上記の目的は、請求項1の方法および請求項12のシステムによって達成される。
請求項1には、複数2f+1個のデータサーバおよび1個以上のクライアントによるビザンチン故障耐性データ複製を行う方法が規定される。
請求項1に記載の通り、本方法は、データが、前記2f+1個のデータサーバのうちの少なくともf+1個の相異なるデータサーバに保存され、前記保存されたデータのメタデータが、好ましくは故障耐性のある、メタデータサービスにメタデータ識別子の下に保存され、保存されるメタデータは、前記保存されたデータの一意識別子と、前記保存されたデータのフィンガープリントと、前記データを保存したデータサーバのリストとを含むことを特徴とする。
請求項12には、複数2f+1個のデータサーバおよび1個以上のクライアントを有するビザンチン故障耐性データ複製を行うシステムであって、好ましくは請求項1ないし11のいずれか1項に記載の方法を実行するシステムが規定される。
請求項12に記載の通り、本システムは、それぞれデータを保存するように動作可能な、前記2f+1個のデータサーバのうちの少なくともf+1個の相異なるデータサーバと、前記保存されたデータのメタデータをメタデータ識別子の下に保存するように動作可能な、好ましくは故障耐性のある、メタデータサービスとを備え、保存されるメタデータは、前記保存されたデータの一意識別子と、前記保存されたデータのフィンガープリントと、前記データを保存したデータサーバのリストとを含むことを特徴とする。
「フィンガープリント」という用語は最も広義に理解されるべきであり、例えば識別のための特徴的な適切に定義されたストリングを意味し、特に暗号学的ハッシュを含む。
本発明によって認識されたこととして、メタデータサービスが、2f+1個のデータサーバの集合とともに利用される。そのうちのf個は任意障害を起こす可能性がある。データサーバが実データを保存する一方、メタデータサービスは、関連するメタデータを追跡する。メタデータは、例えばデータコピーの位置やフィンガープリント(例えば完全性検証のためのデータの暗号学的ハッシュ)等を含むが、これらに限定されない。
また、本発明によって認識されたこととして、特に、データオブジェクトがメタデータに比べて大規模であるためにデータ操作のコストが帯域幅およびレイテンシに関して支配的なコストとなる場合には、効率が大幅に向上し、複製コストが低減される。結果として、メタデータサービスが対応して設計されれば、メタデータアクセスはデータアクセスよりも大幅に安価となる。
本発明によって認識されたこととして、スケーラビリティが提供される。
本発明によって認識されたこととして、複製されるデータあるいはメタデータの正確性、ウェイトフリー性(wait-freedom)、および線形化可能性(linearizability)が実現される。
その他の特徴、利点および好ましい実施形態は後続の従属請求項に記載される。
好ましい実施形態によれば、前記f+1個のデータサーバへの前記データの保存が成功した場合にのみ前記メタデータが保存される。これにより、f+1個のデータサーバすべてに対する保存が成功した場合にのみメタデータが保存されるので、信頼性が向上する。その場合、f+1個のデータサーバのリストは、メタデータサービスにとって容易な方法で提供することができる。
さらなる好ましい実施形態によれば、クライアントがデータを読み出す場合、
a)メタデータ識別子による問合せに応じて前記メタデータサービスによって提供されるメタデータに基づいて、前記データの前記一意識別子によって、前記データサーバのリストのデータサーバに問合せを行い、
b)前記一意識別子に従って前記保存されたデータが提供され、
c)前記保存されたデータおよび前記保存されたメタデータのフィンガープリントどうしが一致した場合、前記保存されたデータが前記クライアントに提供される。
これにより、データを読み出す場合、メタデータサービスに問合せを行い、メタデータサービスは、問合せされた値とともに、例えば、データのタグ、保存されたデータの暗号学的ダイジェスト、およびサーバのリストを返す。その後、問合せ側クライアントは、リストのサーバのうちの1つから、タグによって、対応するデータを取得することが可能である。返値がダイジェストと一致する場合、読み出し操作は正しい値を返し、読み出し操作は完了する。したがって、高速、容易で信頼性のある読み出し操作が提供される。
さらなる好ましい実施形態によれば、前記フィンガープリントどうしが不一致の場合、少なくとも1つの一致が達成されるまで、前記データサーバのリストの1個以上の他のデータサーバについてステップa)〜c)が反復される。これにより、リストのf個のデータサーバのビザンチン障害またはクラッシュ障害の場合であっても、クライアントは、1つの正しいデータサーバから保存データの正しい値を取得することができる。したがって、データの読み出しの信頼性がさらに向上する。
さらなる好ましい実施形態によれば、ステップa)〜c)の反復は、1回の反復ごとに前記データサーバのリストのただ1つのデータサーバについて順次実行される。これにより、データを提供するためのただ1つのサーバが問合せを受け、リストの他のサーバは例えば他の書き込み操作に対してブロックされない。他のサーバは、現在問合せを受けているサーバが正しいフィンガープリントを、したがって正しいデータを提供しない場合にのみ、問合せを受ける。
さらなる好ましい実施形態によれば、前記データのバージョン情報が前記メタデータサービスに保存され、問合せ時に前記クライアントに提供される。バージョン情報が保存される場合、トランザクションが可能となる。例えば、基本的な上書きを超える操作をサポートすることができる。例えば、対応する操作をメタデータサービスが提供すれば、条件付き更新や条件付き多重更新等の操作をサポートすることができる。
さらなる好ましい実施形態によれば、前記メタデータサービスがクラウドサービスとして提供される。これにより、容易な方法で、メタデータサービスを提供するコスト、すなわち保守コスト等を削減することができる。また、クラウドデータは通常、故障耐性(フォールトトレランス)があるように提供されるので、信頼性がさらに向上する。
さらなる好ましい実施形態によれば、前記データサーバのうちの少なくとも2個、好ましくは前記f+1個のデータサーバのうちの少なくとも2個が、データを保存するための相異なるファイルストレージサービスを提供する。相異なるファイルストレージサービス(例えば相異なるデータベース)を使用することにより、セキュリティおよび信頼性が向上する。というのは、例えば、ストレージサービスのうちの1つがオフラインである場合や攻撃またはハッキングされている場合であっても、データを読み出すことができるからである。
さらなる好ましい実施形態によれば、複数のデータを同時に保存するため、各データが前記f+1個のデータサーバのそれぞれに保存される。これにより、容易な方法で、多重更新等の高度な操作を提供することができ、フレキシビリティがさらに向上する。
さらなる好ましい実施形態によれば、前記メタデータサービスが故障耐性のためにクォーラム型プロトコルを使用する。これにより、障害に対する堅牢性が実現され、容易な実施が可能となる。
さらなる好ましい実施形態によれば、前記メタデータサービスが前記メタデータに対する操作を線形化する。これにより、例えば読み出しおよび/または書き込みの操作が、メタデータに対する(低レベルの)読み出しおよび書き込みの操作の実行順序で実行されることが可能となる。したがって、メタデータに対する操作の実時間順序を守ることができる。
本発明を好ましい態様で実施するにはいくつもの可能性がある。このためには、一方で請求項1に従属する諸請求項を参照しつつ、他方で図面により例示された本発明の好ましい実施形態についての以下の説明を参照されたい。図面を用いて本発明の好ましい実施形態を説明する際には、本発明の教示による好ましい実施形態一般およびその変形例について説明する。
本発明の第1の実施形態による方法のステップを模式的に示す図である。 本発明の第2の実施形態による方法のステップを模式的に示す図である。 本発明の第3の実施形態による方法のステップを模式的に示す図である。
図1〜図3において、データサーバの集合S={s,s,...,s}およびクライアントの集合C={c,...,c}を含む分散システムを仮定する。データサーバの少数派は、ビザンチン障害を被る可能性がある(|S|≧2f+1、ただしfは障害しきい値)。また、任意個のクライアントがクラッシュにより故障する可能性がある。また、故障のないメタデータサービスが、メタデータの読み出しおよび更新のサポートを提供すると仮定する。また、Hは衝突耐性のある暗号学的ハッシュ関数を示し、メタデータに対する操作はメタデータサービスMDSによって線形化される。
図1は、本発明の第1の実施形態による方法のステップを模式的に示している。
図1には、f=1、すなわち、ビザンチン障害が起こる可能性があるサーバの個数fが1であり、|S|=3、すなわち、データサーバの個数|S|が3の場合を示している。具体的には、図1には、値Vを有するデータオブジェクトkを更新する書き込み操作が示されている。まず、第1のステップ1で、クライアントCが、サーバsおよびsに、値Vとともに対応するタグ(tag)を保存する。データの保存に成功した場合、第2のステップ2で、f+1個のサーバSのそれぞれ、すなわちsおよびsは、クライアントCへ確認応答メッセージを送信する。
次に、クライアントCは、暗号学的ハッシュ関数H(V)を用いて、保存された値Vのダイジェストを計算した後、第3のステップ3で、キーkと、タグ、ダイジェストおよびデータサーバ(すなわちsおよびs)のリストを含む値とをメタデータmdとして与えてメタデータサービスMDSを呼び出す。また、クライアントCは、例えば条件付き更新の場合(図3参照)、値Vに対するバージョン情報を与えてもよい。
f+1個のサーバ(図1ではsおよびs)に値のコピーを書き込むことにより、書き込み操作によって更新された後にf個のサーバ(図1ではサーバsまたはsのいずれか)が故障しても、後続の読み出しで値Vを取得できることが保証される。f個のサーバが故障した場合に、書き込み操作がf+1個までのサーバs,sを更新しようと試行してブロックされることを防ぐために、追加的なf個のデータサーバ(図1ではサーバs)が使用される。最適な場合、クラッシュ耐性のプロトコルを含めて、任意のデータ複製プロトコルに対して、fまたはf+1が下限となる。
第4のステップ4で、メタデータサービスMDSが、クライアントCに、対応する確認応答メッセージを提供する。これは、メタデータサービスMDSにおいてメタデータの保存が成功したことも示す。
図2は、本発明の第2の実施形態による方法のステップを模式的に示している。
図2には、キーkに対する値を読み出す読み出し操作が示されている。第1のステップ5で、クライアントCは、メタデータサービスMDSと通信し、キーkを用いてメタデータサービスMDSに対して問合せを行う。次に、第2のステップ6で、メタデータサービスMDSは、メタデータmdおよび(トランザクションがサポートされる場合には)バージョン情報verをクライアントCに返す。次に、第7のステップ7で、クライアントCは、メタデータmdに含まれるリスト内のサーバs,sのうちの1つから、タグによって、対応するデータを取得する。そして、次のステップ8で、通信先のサーバ(すなわち図2ではサーバs)は、タグに対応する値V′であって、このタグの下にサーバsに保存されている値V′をクライアントCに返送する。次に、クライアントCは、返値V′がダイジェストと一致するかどうか比較する。すなわち、クライアントCは、値V′のフィンガープリントH(V′)を計算し、それを、取得したメタデータmdと比較する。メタデータmdは、値Vの保存されたフィンガープリントH(V)を含んでいる。したがって、返値V′がダイジェストと一致する場合、すなわちH(V)=H(V′)の場合、読み出し操作は、正しい値Vとして値V′を返し、操作は完了する。
そうでない場合、クライアントCは、サーバs,sのいずれかが、一致する値で応答するまで、サーバ(図2ではサーバsおよびs)のリストで反復動作する。例えば、値V′がダイジェストと一致しない場合、クライアントCは、f+1個のサーバs,sのリストのうちの第2のサーバsにタグを用いて問合せを行う。するとサーバsは、値V″により応答する。次に、クライアントCは、再び、メタデータmdに含まれるダイジェストと、返値V″のフィンガープリントH(V)とを比較する。一致した場合、すなわち、H(V)=H(V″)の場合、読み出し操作は完了する。
図3は、本発明の第3の実施形態による方法のステップを模式的に示している。
図3には、多重更新操作のステップが示されている。多重更新操作により、相異なるキーに対して全か無かでアトミック(不可分)に更新操作を実行することが可能となる。
図3において、クライアントCは、複数の値V,...,Vを、対応するタグtag,...,tagとともに、f+1個のサーバs,sのそれぞれに保存する。値V,Vを保存した確認メッセージをサーバs,sから受信した後、クライアントCは、メタデータmdを、それぞれの値についてmd=(tag,H(V),{s,s})と計算する。次のステップ11で、クライアントCは、メタデータサービスMDSと通信し、操作識別子opと、対応するキーk、メタデータmdおよびバージョンデータverを、値V,...,Vのすべてのインデックス1,...,nについて保存する。これらの情報の保存が成功した場合、次のステップ12で、メタデータサービスMDSは、対応する確認応答メッセージをクライアントCに返送する。
例えば、対応する操作opは、条件付き書き込み操作や条件付き削除操作等を含むことが可能である。条件付き書き込みの場合、対応するバージョン情報verがメタデータmdに含められるか、または、保存されるデータに対応するメタデータmdにリンクされてメタデータサービスMDSに保存される。その後、図1に関して、値は書き込み操作においてアトミックに保存される。あるバージョンverがデータの現在のバージョンと一致しない場合、いずれのデータオブジェクト(すなわち値V)にも変更は行われない。そして、例えばエラー情報が返されてもよい。
条件付き更新の場合には、与えられたバージョンがデータの現在のバージョンと一致する場合にのみ、値Vがキーkの下で保存される。そうでない場合には変更は行われない。そして、エラー情報がクライアントCに返されてもよい。条件付き削除操作は、与えられたバージョンがデータの値の現在のバージョンと一致する場合にのみキーkを削除する。そうでない場合には変更は行われない。そして、エラー情報が返されてもよい。削除操作は、削除のための値として値{ヌル}を書き込む書き込み操作によって実施されてもよい。
ビザンチン故障耐性データ複製の方法およびシステムは正確である。以下で正確性を証明するため、本発明による操作はウェイトフリーかつ線形化可能とする。ウェイトフリーとは、正しいクライアントによる操作が、他のクライアントの挙動にかかわらず常に完了することを意味する。本発明によれば、メタデータサービスがウェイトフリー操作をエクスポートし、故障するデータサーバがf個を超えない場合に、ウェイトフリー性が保証される。また、線形化可能性は、アトミック性としても知られており、操作が、呼び出しステップと応答ステップとの間の1時点に瞬時に行われるように見えることを意味する。本発明によれば、メタデータ操作が線形化可能である場合に線形化可能性が実現される。その場合、線形化可能性は、故障したサーバ数fとは独立である。
メタデータサービスMDSに対して呼び出される低レベルの操作がウェイトフリーであると仮定すると、データサーバのうちの1つにアクセスする際に、どの操作もブロックされないことを示す必要がある。故障するのは高々f個のデータサーバであるので、それぞれの更新操作は最終的にf+1個の正しいサーバから応答を受信する。したがって、データサーバからの応答を待機しながら更新操作がブロックされることはない。更新操作を実行するとき、メタデータは、対応するデータをデータサーバに保存した後にのみ書き込まれ、読み出し側がメタデータを取得するときまでに、対応する更新操作は対応するタグの下でf+1個のサーバのすべてにおいて、一致する値を保存している。これらのサーバのうちビザンチン故障になるのは高々f個であるので、これらのf+1個のサーバのうちに、対応するタグの下で一致する値Vを保存し最終的に読み出し側(すなわちクライアント)に応答する正しいサーバが少なくとも1つ存在する。H(V)がダイジェストに一致していることをチェックした後、読み出し操作は完了する。障害を伴う非同期実行が最悪の場合であり、その場合、一致する応答を受信する前に、読み出しはf+1個のデータサーバに問合せを行う必要がある。これに対して、故障のない同期実行が通常の場合であり、その場合、ただ1つのデータサーバが読み出しによって問合せを受ける。
上記のように、メタデータサービスMDSは、メタデータに対するすべての操作を線形化する。具体的には、読み出しおよび書き込みの操作は、メタデータへの対応する低レベルの書き込みおよび読み出しの操作の実行順序に従って線形化される。メタデータ操作の線形化可能性により、低レベル操作の履歴が、メタデータサービスMDSの順序仕様を満たし、メタデータ操作の実時間順序を守る。メタデータサービスの順序仕様はシステム全体の順序仕様と等価であり、メタデータサービスは高レベル操作間の実時間先行関係を維持するので、高レベル操作が線形化可能であると結論することができる。
要約すると、本発明によれば、ビザンチン的にデータからメタデータを分離することにより、データサーバ数を3f+1から2f+1に削減することが可能となる。また、本発明は、2f+1個のデータサーバの集合とともにメタデータサービスを利用することにより、強い意味で一貫性のあるデータ複製を実現する。また、本発明によれば、データサーバに問合せを行う前にメタデータサービスを参照する通常の場合に、ただ1つのデータサーバを問い合わせるだけとすることが可能である。さらに、本発明によれば、等価なメタデータ操作がメタデータサービスによって公開される場合には、データ操作のエクスポートが可能である。
本発明は、特に以下の利点を有する。本発明によれば、ストレージサーバ取得コストおよび保守コスト、さらにストレージ容量が削減される。また、本発明によれば、読み出しパフォーマンスが改善され、ストレージサーバ数に関して線形の読み出しスケーラビリティが実現され、トランザクション型のデータアクセスが可能となる。さらに、本発明によれば、複製コストが3f+1個のサーバから2f+1個だけのデータサーバへと実質的に削減可能であり、上記のような読み出しスケーラビリティが得られる。通常は読み出し操作中にアクセスされるデータサーバは1つだけであるので、保存されるデータオブジェクトがサーバ間で均等に分配される場合には、各サーバが被る負荷は1/|S|となる。その結果、容量は|S|(すなわちデータサーバ数)倍になる。
上記の説明および添付図面の記載に基づいて、当業者は本発明の多くの変形例および他の実施形態に想到し得るであろう。したがって、本発明は、開示した具体的実施形態に限定されるものではなく、変形例および他の実施形態も、添付の特許請求の範囲内に含まれるものと解すべきである。本明細書では特定の用語を用いているが、それらは総称的・説明的意味でのみ用いられており、限定を目的としたものではない。

Claims (12)

  1. 複数2f+1個のデータサーバおよび1個以上のクライアントによるビザンチン故障耐性データ複製を行う方法において、
    前記クライアントのうちの少なくとも1個のクライアントが、データを、前記2f+1個のデータサーバのうちの少なくともf+1個の相異なるデータサーバ保存し
    前記少なくとも1個のクライアントが、前記保存されたデータのメタデータと、メタデータ識別子とを、好ましくは故障耐性のある、メタデータサービス要素に保存し前記メタデータは前記メタデータ識別子に関連づけられ、保存されるメタデータは、前記保存されたデータ一意識別子と、前記保存されたデータフィンガープリントと、前記データを保存したデータサーバのリストとを含むことを特徴とする、ビザンチン故障耐性データ複製を行う方法。
  2. 前記少なくとも1個のクライアントが、前記f+1個のデータサーバへの前記データの保存が成功した場合にのみ前記メタデータを保存することを特徴とする請求項1に記載の方法。
  3. 前記少なくとも1個のクライアントが、
    a)メタデータ識別子による問合せに応じて前記メタデータサービス要素によって提供されるメタデータに基づいて、前記データの前記一意識別子によって、前記データサーバのリストのデータサーバに問合せを行い、
    b)前記一意識別子に従って前記保存されたデータを提供し
    c)前記保存されたデータおよび前記保存されたメタデータのフィンガープリントどうしが一致した場合、前記保存されたデータを前記クライアントに提供する
    ことによって、データを読み出すことを特徴とする請求項1または2に記載の方法。
  4. 前記フィンガープリントどうしが不一致の場合、少なくとも1つの一致が達成されるまで、前記データサーバのリストの1個以上の他のデータサーバについてステップa)〜c)が反復されることを特徴とする請求項3に記載の方法。
  5. ステップa)〜c)の反復は、1回の反復ごとに前記データサーバのリストのただ1つのデータサーバについて順次実行されることを特徴とする請求項4に記載の方法。
  6. 前記データバージョン情報が前記メタデータサービス要素に保存され、問合せ時に前記クライアントに提供されることを特徴とする請求項1ないし5のいずれか1項に記載の方法。
  7. 前記メタデータサービス要素がクラウドサービスとして提供されることを特徴とする請求項1ないし6のいずれか1項に記載の方法。
  8. 前記データサーバのうちの少なくとも2個、好ましくは前記f+1個のデータサーバのうちの少なくとも2個が、データを保存するための相異なるファイルストレージサービスを提供することを特徴とする請求項1ないし7のいずれか1項に記載の方法。
  9. 複数のデータを同時に保存するため、各データが前記f+1個のデータサーバのそれぞれに保存されることを特徴とする請求項1ないし8のいずれか1項に記載の方法。
  10. 前記メタデータサービス要素が故障耐性のためにクォーラム型プロトコルを使用することを特徴とする請求項1ないし9のいずれか1項に記載の方法。
  11. 前記メタデータサービス要素が前記メタデータに対する操作を線形化することを特徴とする請求項1ないし10のいずれか1項に記載の方法。
  12. 複数2f+1個のデータサーバおよび1個以上のクライアントを有するビザンチン故障耐性データ複製を行うシステムであって、好ましくは請求項1ないし11のいずれか1項に記載の方法を実行するシステムにおいて、
    それぞれデータを保存するように動作可能な、前記2f+1個のデータサーバのうちの少なくともf+1個の相異なるデータサーバと、
    前記保存されたデータメタデータと、メタデータ識別子とを、保存するように動作可能な、故障耐性のあるメタデータサービス要素
    を備え、前記メタデータは前記メタデータ識別子に関連づけられ、保存されるメタデータは、前記保存されたデータ一意識別子と、前記保存されたデータフィンガープリントと、前記データを保存したデータサーバのリストとを含むことを特徴とする、ビザンチン故障耐性データ複製を行うシステム。
JP2016504571A 2013-03-20 2014-03-18 ビザンチン故障耐性データ複製を行う方法およびシステム Expired - Fee Related JP6097880B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP13160155.1 2013-03-20
EP13160155 2013-03-20
PCT/EP2014/055436 WO2014147085A2 (en) 2013-03-20 2014-03-18 Method and system for byzantine fault tolerant data replication

Publications (2)

Publication Number Publication Date
JP2016517605A JP2016517605A (ja) 2016-06-16
JP6097880B2 true JP6097880B2 (ja) 2017-03-15

Family

ID=47913148

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016504571A Expired - Fee Related JP6097880B2 (ja) 2013-03-20 2014-03-18 ビザンチン故障耐性データ複製を行う方法およびシステム

Country Status (4)

Country Link
US (1) US9753792B2 (ja)
EP (1) EP2976714B1 (ja)
JP (1) JP6097880B2 (ja)
WO (1) WO2014147085A2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3345360B1 (en) * 2015-09-04 2021-03-03 Nec Corporation Method for storing an object on a plurality of storage nodes
EP3281115B1 (en) 2016-10-04 2019-06-19 Nec Corporation Method and system for byzantine fault-tolerance replicating of data on a plurality of servers
EP3394756B1 (en) 2016-11-25 2024-01-03 NEC Corporation Method and system for byzantine fault - tolerance replicating of data
CN106789095B (zh) 2017-03-30 2020-12-08 腾讯科技(深圳)有限公司 分布式系统及消息处理方法
US10503614B2 (en) * 2017-04-21 2019-12-10 Vmware, Inc. Byzantine agreement using communications having linear complexity
CN107704269A (zh) * 2017-10-16 2018-02-16 中国银行股份有限公司 一种基于区块链生成区块的方法以及系统
US10871912B2 (en) * 2017-12-21 2020-12-22 Apple Inc. Techniques for facilitating processing checkpoints between computing devices
WO2019175624A1 (en) * 2018-03-12 2019-09-19 Pratik Sharma Chained replication service
WO2019072294A2 (en) 2018-12-13 2019-04-18 Alibaba Group Holding Limited PROVIDING CONSENSUS BETWEEN NETWORK NODES IN A DISTRIBUTED SYSTEM
JP6804572B2 (ja) * 2019-01-18 2020-12-23 株式会社日立製作所 分散処理方法及び分散処理システム
CN109766223A (zh) * 2019-01-24 2019-05-17 清华大学 基于重要性分析的Web组合服务主动容错方法及系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535868B1 (en) * 1998-08-27 2003-03-18 Debra A. Galeazzi Method and apparatus for managing metadata in a database management system
US7062490B2 (en) * 2001-03-26 2006-06-13 Microsoft Corporation Serverless distributed file system
US6950833B2 (en) * 2001-06-05 2005-09-27 Silicon Graphics, Inc. Clustered filesystem
AT501510B1 (de) * 2004-07-19 2009-05-15 Univ Wien Tech Dezentrale fehlertolerante taktgenerierung in vlsi chips
US7885970B2 (en) * 2005-01-20 2011-02-08 F5 Networks, Inc. Scalable system for partitioning and accessing metadata over multiple servers
US8230253B2 (en) * 2008-07-21 2012-07-24 International Business Machines Corporation Byzantine fault tolerant dynamic quorum using a trusted platform module
KR101453425B1 (ko) * 2008-12-18 2014-10-23 한국전자통신연구원 메타데이터 서버 및 메타데이터 관리 방법
US20130290295A1 (en) * 2012-04-30 2013-10-31 Craig A. Soules Maintaining fault domains in a distributed database

Also Published As

Publication number Publication date
EP2976714A2 (en) 2016-01-27
US20160283123A1 (en) 2016-09-29
WO2014147085A3 (en) 2014-12-11
US9753792B2 (en) 2017-09-05
EP2976714B1 (en) 2017-05-03
WO2014147085A2 (en) 2014-09-25
JP2016517605A (ja) 2016-06-16

Similar Documents

Publication Publication Date Title
JP6097880B2 (ja) ビザンチン故障耐性データ複製を行う方法およびシステム
US12061623B2 (en) Selective synchronization of content items in a content management system
US10567500B1 (en) Continuous backup of data in a distributed data store
US9965364B2 (en) Fault tolerant listener registration in the presence of node crashes in a data grid
US11308127B2 (en) Log-based distributed transaction management
US9727273B1 (en) Scalable clusterwide de-duplication
CN105393243B (zh) 事务定序
US8301600B1 (en) Failover recovery in a distributed data store
US11080253B1 (en) Dynamic splitting of contentious index data pages
US20130006993A1 (en) Parallel data processing system, parallel data processing method and program
KR20150070134A (ko) 가상 데이터베이스를 생성하기 위한 소스 데이터베이스의 지정 시간 복사의 검색
US20140032496A1 (en) Information storage system and data replication method thereof
US11442894B2 (en) Methods for scalable file backup catalogs and devices thereof
CN109154880B (zh) 在分散存储网络中一致的存储数据
US11074002B2 (en) Object storage system with meta object replication
JP4818396B2 (ja) オーバーレイネットワークシステム及び同システムにおけるオブジェクト登録方法
US11086818B2 (en) Establishing object atomicity in snapshot based disaster recovery environments
KR20240114430A (ko) 변경 데이터 캡쳐를 수행하기 위한 방법 및 장치

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161012

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170112

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: 20170124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170220

R150 Certificate of patent or registration of utility model

Ref document number: 6097880

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

LAPS Cancellation because of no payment of annual fees