JPWO2017042894A1 - 多重化処理システム、多重化処理方法及びプログラム - Google Patents

多重化処理システム、多重化処理方法及びプログラム Download PDF

Info

Publication number
JPWO2017042894A1
JPWO2017042894A1 JP2017538765A JP2017538765A JPWO2017042894A1 JP WO2017042894 A1 JPWO2017042894 A1 JP WO2017042894A1 JP 2017538765 A JP2017538765 A JP 2017538765A JP 2017538765 A JP2017538765 A JP 2017538765A JP WO2017042894 A1 JPWO2017042894 A1 JP WO2017042894A1
Authority
JP
Japan
Prior art keywords
output data
output
data
unit
processing
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
JP2017538765A
Other languages
English (en)
Other versions
JP6556852B2 (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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Digital Solutions 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 Toshiba Corp, Toshiba Digital Solutions Corp filed Critical Toshiba Corp
Publication of JPWO2017042894A1 publication Critical patent/JPWO2017042894A1/ja
Application granted granted Critical
Publication of JP6556852B2 publication Critical patent/JP6556852B2/ja
Active 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • G06F11/184Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality
    • 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/0793Remedial or corrective actions
    • 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/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/0751Error or fault detection not based on redundancy
    • 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/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/182Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits based on mutual exchange of the output between redundant processing components

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)

Abstract

実施形態の多重化処理システムは、複数のサーバ装置を備える多重化処理システムである。それぞれのサーバ装置は、記憶部と、処理部と、決定制御部と、復元部と、再実行制御部と、出力部と、を備える。処理部は、決定性出力データ又は非決定性出力データを、第1出力データとして出力する。決定制御部は、自装置から出力された第1出力データ、または、自装置以外の他のいずれかのサーバ装置から出力された第1出力データのひとつを選択し、第2出力データに決定する。再実行制御部は、第2出力データが決定性出力データであり、かつ、第2出力データと自装置から出力された第1出力データとが一致しない場合、第2出力データと再決定された第1出力データとが一致するか、又は、再実行回数が閾値以上になるまで、処理を自装置に再実行させる。

Description

本発明の実施形態は多重化処理システム、多重化処理方法及びプログラムに関する。
複数のコンピュータ上で同じ処理を重複して実行する多重化処理システムは、コンピュータの信頼性を高める手法として、従来から実用化されている。多重化処理システムでは、複数のコンピュータのうちのいずれかが障害により誤った結果を出力しても、当該誤った結果と、他のコンピュータにより出力された正常な結果と、を比較することにより、誤りの検出又は訂正をすることが可能である。これによりシステム全体としての信頼性が向上する。
多重化処理システムを実現する方式として、整列マルチキャストを用いた方式が知られている。例えば処理対象の入力データを複数のコンピュータに送信するとともに、入力データの処理順序を決定する入力整列マルチキャスト処理が知られている。入力整列マルチキャスト処理が実行されることにより、それぞれのコンピュータが、同一の入力データを同一の順序で処理することができる。
整列マルチキャストを用いた方式の多重化処理システムでは、多重化される処理に決定性がなければならない。ここで、「決定性がある」とは、入力データと処理前の内部データとから、出力データと処理後の内部データとが一意に決まる性質をいう。この性質により、多重化される処理の内容は一貫性が保たれ、出力データ列が複数のコンピュータ間で同一となる。
特許第3655263号公報 特許第2534430号公報
ZooKeeper、[online]、[平成27年5月7日検索]、インターネット<URL:http://zookeeper.apache.org/doc/current/zookeeperInternals.html>
従来の技術では、多重化される処理は決定性がある処理に限られていた。なぜなら、多重化される処理に決定性がない場合、正常な結果が一意でないため、障害が発生していないときでも各コンピュータの出力結果が異なる可能性があるためである。すなわち従来の技術では、多重化される処理に決定性がない場合、多重化処理システムとして一貫性を担保することができなかった。
実施形態の多重化処理システムは、複数のサーバ装置を備える多重化処理システムである。それぞれの前記サーバ装置は、記憶部と、処理部と、決定制御部と、復元部と、再実行制御部と、出力部と、を備える。記憶部は内部データを記憶する。処理部は、入力データと処理前の前記内部データとに基づく処理から一意に決定される決定性出力データ、又は、前記処理から一意に決定されない非決定性出力データを、第1出力データとして出力する。決定制御部は、自装置から出力された前記第1出力データ、または、自装置以外の他のいずれかのサーバ装置から出力された第1出力データのひとつを選択し、第2出力データに決定する。復元部は、前記第2出力データが非決定性出力データである場合、前記記憶部に記憶されている内部データを処理前の状態に復元する。再実行制御部は、前記第2出力データが決定性出力データであり、かつ、前記第2出力データと自装置から出力された前記第1出力データとが一致しない場合、前記第2出力データと再決定された前記第1出力データとが一致するか、又は、再実行回数が閾値以上になるまで、前記処理を自装置に再実行させる。出力部は、前記第2出力データが非決定性出力データである場合、又は、前記第2出力データが決定性出力データであり、かつ、前記第2出力データと再決定された前記第1出力データとが一致した場合、前記第2出力データを出力する。
図1は第1実施形態の多重化処理システムの構成の例を示す図である。 図2は第1実施形態のサーバ装置の構成の例を示す図である。 図3は第1実施形態の入力整列マルチキャストの例を示す図である。 図4は第1実施形態の多重化処理方法の例を示すフローチャートである。 図5は第1実施形態の最終確定処理の例を示すフローチャートである。 図6は第1実施形態の多重化処理方法による処理例1を示す図である。 図7は第1実施形態の多重化処理方法による処理例2を示す図である。 図8は第1実施形態の多重化処理方法による処理例3を示す図である。 図9は第2実施形態のサーバ装置の構成の例を示す図である。 図10は第2実施形態の最終確定処理の例を示すフローチャートである。 図11は第2実施形態のコピー処理の例を示すフローチャートである。 図12は第2実施形態の多重化処理方法による処理例を示す図である。 図13は第1及び第2実施形態のサーバ装置のハードウェア構成の例を示す図である。
以下に添付図面を参照して、多重化処理システム、多重化処理方法及びプログラムの実施形態を詳細に説明する。
(第1実施形態)
図1は第1実施形態の多重化処理システム100の構成の例を示す図である。第1実施形態の多重化処理システム100は、サーバ装置10−1、・・・、サーバ装置10−n(nは4以上の整数)、クライアント装置20−1、・・・、クライアント装置20−m(mは1以上の整数)、及び、ネットワーク30を備える。以下、サーバ装置10−1、・・・、及びサーバ装置10−nを区別しない場合は、単にサーバ装置10という。同様に、クライアント装置20−1、・・・、及びクライアント装置20−mを区別しない場合は、単にクライアント装置20という。
サーバ装置10及びクライアント装置20は、ネットワーク30を介して接続されている。なお各装置間の通信方式は、有線であっても無線であってもよく、また、両方が組み合わされていてもよい。
図2は第1実施形態のサーバ装置10の構成の例を示す図である。第1実施形態のサーバ装置10は、入力部101、入力整列部102、処理部103、記憶部104、復元部105、バッファ106、決定制御部107、再実行制御部110、連携制御部111及び出力部112を備える。また決定制御部107は、出力整列部108及び判定部109を備える。
入力部101は、クライアント装置20からネットワーク30を介して、入力データを受信すると、当該入力データを入力整列部102に入力する。
入力整列部102は、入力部101から入力データを受け付けると、当該入力データを自装置以外の他のサーバ装置10に送信する。また入力整列部102は、自装置以外の他のサーバ装置10により受信された入力データを、自装置以外の他のサーバ装置10から受信する。入力整列部102は、複数の入力データの順序を、入力整列マルチキャストにより決定する。ここで入力整列マルチキャストについて説明する。
図3は第1実施形態の入力整列マルチキャストの例を示す図である。図3の例は、入力データA及び入力データBが、サーバ装置10−1の入力部101−1から入力整列部102−1に入力され、入力データCが、サーバ装置10−3の入力部101−3から入力整列部102−3に入力され、入力データDが、サーバ装置10−4の入力部101−4から入力整列部102−4に入力された場合を示す。
入力整列マルチキャスト処理は、自装置の入力部101に入力された入力データを、自装置以外の他のサーバ装置10に送信するとともに、入力データの処理順序を示す順序番号を決定する処理である。各サーバ装置10の入力整列部102は、入力データと順序番号とを対応付ける。この対応付けは各サーバ装置10で同一となる。図3の例は、入力データの処理順序が、入力データD、入力データA、入力データC、入力データBの順に決定された場合を示す。入力データの処理順序を決定する処理は、例えば特許文献1に記載の方法を適用できる。
図2に戻り、入力整列部102は、入力整列マルチキャストにより決定された入力データを、順番に処理部103に入力する。処理部103は、入力整列部102から入力データを受け付けると、当該入力データを処理することにより得られる第1出力データをバッファ106に入力する(第1出力データ出力処理)。具体的には、処理部103は、決定性出力データ又は非決定性出力データを、第1出力データとしてバッファ106に入力する。
決定性出力データは、入力データと、記憶部104に記憶された処理前の内部データと、に基づく処理から一意に決定される出力データである。非決定性出力データは、入力データと、記憶部104に記憶された処理前の内部データと、に基づく処理から一意に決定されないことを抽象的に表す出力データである。非決定性出力データには種類が無く、決定性出力データとは重複しない。
ここで非決定性出力データを出力する処理の例について説明する。例えば処理の実行中にリソース不足となり、当該処理を継続できないときに、当該処理をキャンセルするエラー処理は、非決定性出力データを出力する処理に該当する。これはリソース不足(例えばメモリ不足)の発生が、同一装置に隣接して実行されている他のプログラムの状態等の外部要因に依存するためである。
具体的には、例えばオペレーティングシステムへのシステムコールによってリソースを確保する場合、決定性が保てない可能性がある。なぜなら、通常のオペレーティングシステムはリソースの確保に関して決定性を有しておらず、他のプログラムの実行状況等に依存して、確保が成功したり失敗したりするからである。つまり、多重化している処理に関して、あるコンピュータではリソース不足が起きるが、他のコンピュータではリソース不足が起きないという可能性がある。または、リソース不足が起きるプログラム実行位置がサーバ装置10の間で異なると、記憶部104の処理後の内部データの一貫性がなくなる可能性もある。
この課題に対して従来技術では、データ処理プログラムが、リソースをその都度オペレーティングシステムから直接確保しないようにすることで決定性を確保していた。例えば決定性のあるリソース管理プログラムが、あらかじめ所定の量のリソースをオペレーティングシステムから確保してプールしておき、データ処理プログラムはリソース管理プログラムを介してリソースを取得することにより、決定性を確保していた。
なおエラー処理は、通常の処理の流れとは異なるものの、適切に対処されるべき処理であるが、決定性出力データを出力するエラー処理もある。例えば入力データの値が所定の範囲にない場合に、入力データの値が所定の範囲にない旨のメッセージを出力するエラー処理は、入力データにのみ基づいて決定されるので、当該エラー処理は決定性出力データを出力する処理とすることができる。
決定性出力データを出力するエラー処理はあくまでも正常な処理であり、全てのコンピュータで一貫して同一のエラー処理が行われる。一方、例えばコンピュータの誤動作(ビザンチン障害)等の障害では、特定のコンピュータだけが誤った出力データを出力する(または全く出力データを出力しない)。
第1実施形態の説明では、多重化処理システム100に含まれるサーバ装置10の数nを、n>3bを満たす数とする。ここでbは、ビザンチン障害を許容するサーバ装置10の数である。
復元部105は、処理部103が入力データに基づいて記憶部104の内部データを処理する前に、記憶部104の当該内部データを保持する。そして復元部105は、後述の第2出力データが非決定性出力データである場合、後述の判定部109から復元要求を受け付ける。復元部105は復元要求を受け付けると、記憶部104の当該内部データを処理前の状態に復元する。また復元部105は、後述の第2出力データが決定性出力データであり、かつ、第1出力データと後述の第2出力データとが一致しない場合、後述の判定部109から復元要求を受け付ける。復元部105は復元要求を受け付けると、記憶部104の当該内部データを処理前の状態に復元する。
バッファ106は、処理部103から受け付けた第1出力データを記憶する。出力整列部108は、自装置のバッファ106に記憶されている第1出力データを、自装置以外の他のサーバ装置10に送信する。また出力整列部108は、自装置以外の他のサーバ装置10から第1出力データを受け付ける。
そして出力整列部108は、出力整列マルチキャスト処理を実行する。出力整列マルチキャスト処理について説明する。出力整列マルチキャスト処理は、各順序番号に関して、b+1以上のサーバ装置10のバッファ106で記憶されている同一の第1出力データを選択し、第2出力データに決定する。このとき、選択された第2出力データが各サーバ装置において一致するように出力整列マルチキャスト処理は動作する。
ビザンチン障害が発生していない正常なサーバ装置10では、決定性のある動作によって一意に決定された決定性出力データか、非決定性出力データのどちらかしか第1出力データになり得ない。n>3bが動作条件であるから、どちらかは必ずb+1以上あり、第2出力データの候補は必ずあることに注意する。
具体的には、動作条件がn>3bであるから、ビザンチン障害となっているサーバ装置10を除いた、正常なサーバ装置10の数は少なくとも2b+1である。すると、第1出力データとして非決定性出力データを出力したサーバ装置10の数をx、第1出力データとして決定性出力データを出力したサーバ装置10の数をyとすると、x+y≧2b+1である。これより、xかyの少なくとも一方はb+1以上である。
ここで、xとyの双方がb+1以上である場合には、どちらも選択可能になるが、その選択が各サーバ装置において一致するように出力整列マルチキャスト処理は動作しなければならない。これの具体的な実現方法としては、入力整列マルチキャストの場合と同様に、例えば特許文献1に記載の方法を適用できる。
出力整列部108は、第2出力データを、順序番号とともに判定部109に入力する。
判定部109は、出力整列部108から第2出力データ及び順序番号を受け付けると、当該順序番号に対応付けられた第1出力データをバッファ106から読み出し、最終確定処理を実行する。
<第2出力データが非決定性出力データである場合>
判定部109は、第2出力データが非決定性出力データである場合、記憶部104の内部データを処理前の状態に復元する復元要求を復元部105に入力するとともに、当該第2出力データを出力部112に入力する。出力部112は、判定部109から第2出力データを受け付けると、当該第2出力データを出力する。
<第2出力データが決定性出力データであり、かつ、第1出力データと第2出力データとが一致しない場合>
判定部109は、第2出力データが決定性出力データであり、かつ、第1出力データと第2出力データとが一致しない場合、処理部103による処理を再実行する再実行制御要求を再実行制御部に入力する。
再実行制御部110は、判定部109から再実行制御要求を受け付けると、復元部105に復元要求を入力し、処理部103に再実行要求を入力する。処理部103は、入力データと、復元部105により復元された処理前の内部データと、に基づく処理を再実行し、自装置の第1出力データを再決定する。再実行制御部110は、第2出力データと再決定された第1出力データとが一致するか、又は、再実行回数が閾値以上になるまで、入力データと処理前の内部データとに基づく処理を、自装置の処理部103に再実行させる。
再実行制御部110は、処理部103が処理を再実行することにより、第1出力データと第2出力データとが一致した場合、処理結果が一致したことを示す処理結果一致通知を判定部109に入力する。判定部109は、再実行制御部110から処理結果一致通知を受け付けると、第2出力データを出力部112から出力することを確定する。そして判定部109は第2出力データを出力部112に入力する。出力部112は、判定部109から第2出力データを受け付けると、当該第2出力データを出力する。
また再実行制御部110は、再実行回数が閾値以上になった場合、自装置以外の他のサーバ装置10との連携を停止させる連携停止要求を連携制御部111に入力する。連携制御部111は、再実行制御部110から連携停止要求を受け付けると、自装置以外の他のサーバ装置10との連携を停止する。すなわち多重化処理システム100は、当該サーバ装置10で障害が発生しているとみなし、当該サーバ装置10を多重化処理に使用しないようにする。
次に第1実施形態の多重化処理方法について説明する。
図4は第1実施形態の多重化処理方法の例を示すフローチャートである。はじめに、入力部101が、クライアント装置20からネットワーク30を介して、入力データを受信する(ステップS1)。次に、入力整列部102が、上述の入力整列マルチキャスト処理を実行することにより、複数の入力データの処理順序を決定する(ステップS2)。次に、処理部103が、上述の第1出力データ出力処理を実行することにより、第1出力データを出力する(ステップS3)。次に、出力整列部108が、上述の整列マルチキャスト処理を実行することにより、順序番号が等しい複数の第1出力データに基づいて第2出力データを決定する(ステップS4)。次に、判定部109が、最終確定処理を実行する(ステップS5)。最終確定処理の詳細については、図5を参照して後述する。次に、出力部112が、ステップS5の最終確定処理により確定された第2出力データを出力する(ステップS6)。
次に上述のステップS5の最終確定処理について説明する。
図5は第1実施形態の最終確定処理の例を示すフローチャートである。はじめに、判定部109が、第2出力データが非決定性出力データであるか否かを判定する(ステップS11)。
第2出力データが非決定性出力データである場合(ステップS11、Yes)、復元部105が、記憶部104の当該内部データを処理前の状態に復元する復元処理を実行する(ステップS12)。次に、判定部109が、第2出力データを出力部112の出力に確定する(ステップS17)。
第2出力データが非決定性出力データでない場合(ステップS11、No)、すなわち第2出力データが決定性出力データである場合、判定部109は、更に、第1出力データと第2出力データが一致するか否かを判定する(ステップS13)。
第1出力データと第2出力データが一致する場合(ステップS13、Yes)、判定部109は、第2出力データを出力部112の出力に確定する(ステップS17)。
第1出力データと第2出力データが一致しない場合(ステップS13、No)、再実行制御部110が、再実行処理を実行する(ステップS14)。具体的には、再実行制御部110は、復元部105に復元要求を入力し、処理部103に再実行要求を入力する。処理部103は、入力データと、復元部105により復元された処理前の内部データと、に基づく処理を再実行することにより、再度、第1出力データを出力する。
次に、判定部109が、再実行回数が閾値以上であるか否かを判定する(ステップS15)。再実行回数が閾値以上の場合(ステップS15、Yes)、連携制御部111が、自装置以外の他のサーバ装置10との連携を停止する連携停止処理を実行する(ステップS16)。再実行回数が閾値未満の場合(ステップS15、No)、処理はステップS13に戻り、判定部109が、再度、第1出力データと第2出力データが一致するか否かを判定する。
なお、上記説明では一部省略されているが、すべての、入力データ、第1出力データ、第2出力データにはそれぞれ順序番号が付与される。入力データの順序番号は、入力整列マルチキャストによって付与される順序番号である。第1出力データの順序番号は、それを出力した処理の当該入力データの順序番号が付与される。出力整列マルチキャストは、自身で管理する整列マルチキャストの順序番号と等しい順序番号が付与された第1出力データを受け付け、当該決定した第2出力データにその順序番号を付与する。
上述の図4及び図5で説明したように、各サーバ装置10は、各順序番号のそれぞれに関して、入力整列マルチキャスト処理(ステップS2)、第1出力データ出力処理(ステップS3)、出力整列マルチキャスト処理(ステップS4)、最終確定処理(ステップS5)という一連の処理を行う。このとき、処理部103の処理は一連の順序番号の順序にしたがって実行されなければならない。
なお同一の順序番号に関して、処理部103の処理の実行は複数のサーバ装置10間で必ずしも同時でなくてもよい。例えば1台のサーバ装置10の処理部103の処理の実行が遅れ、他のサーバ装置10に比べて古い順序番号の処理を行っていてもよい。そのような場合でも、入力整列マルチキャストおよび出力整列マルチキャストがその動作条件を満たしている限り、多重化処理の一貫性は保たれる。また入力整列マルチキャストおよび出力整列マルチキャストの動作の一環として、暗黙のうちにコンピュータ間の同期がある程度はとられる。その程度は入力整列マルチキャストおよび出力整列マルチキャストの実装に依存して決まる。
次に第1実施形態の多重化処理方法による処理例について説明する。
図6は第1実施形態の多重化処理方法による処理例1を示す図である。図6の例は、サーバ装置10の数nが4、ビザンチン障害の発生数bが1(サーバ装置10−4にビザンチン障害が発生)の場合を示す。サーバ装置10−3の入力部101が入力データAを受信すると、サーバ装置10−3の入力整列部102が、当該入力データAをサーバ装置10−1、サーバ装置10−2及びサーバ装置10−4に送信する。なおサーバ装置10−4は、ビザンチン障害が発生しているので動作が不定の状態である。サーバ装置10−1〜サーバ装置10−3の入力整列部102は、入力データAに同一の順序番号を対応付ける。
サーバ装置10−1〜サーバ装置10−3の処理部103は、入力データAと、サーバ装置10−1〜サーバ装置10−3のそれぞれの記憶部104に記憶された処理前の内部データと、に基づく処理を行うことにより、第1出力データを出力する。図6の例は、サーバ装置10−1及びサーバ装置10−2が、非決定性出力データXを、第1出力データXとして出力し、サーバ装置10−3が、決定性出力データDを、第1出力データDとして出力し、ビザンチン障害が発生しているサーバ装置10−4が、不定の出力データ?を、第1出力データ?として出力する場合を示す。それぞれの第1出力データは、各サーバ装置10のバッファ106に記憶される。
サーバ装置10−1〜サーバ装置10−3の出力整列部108は、非決定性出力データXを、第2出力データに決定する。これは非決定性出力データXが、サーバ装置10−1及びサーバ装置10−2のバッファ106に記憶されており、b+1=2であるから、出力整列マルチキャストの選択条件を満たすためである。
サーバ装置10−1〜サーバ装置10−3の判定部109は、上述の図5のフローチャートのステップS11、ステップS12及びステップS17にしたがって、第2出力データXを、出力部112の出力に確定する。
すなわちサーバ装置10−1〜サーバ装置10−3の出力部112が、非決定性出力データXを、第2出力データXとして出力するので、サーバ装置10−1〜サーバ装置10−3の復元部105が、記憶部104の内部データを処理部103により処理される前に復元する。なおサーバ装置10−4は、ビザンチン障害が発生しているので動作は不定である。
結果として、サーバ装置10−1及びサーバ装置10−2が非決定性の動作(例えばオペレーティングシステムへのシステムコールによるリソース確保の失敗等)をし、サーバ装置10−3が決定性の動作(処理の成功)をした場合でも、多重化処理の一貫性が維持される。つまり、サーバ装置10−1〜サーバ装置10−3の記憶部104の内部データは、入力データAを処理しなかった場合と同等の状態に帰着し、そのことを示す非決定性出力データXが、サーバ装置10−1〜サーバ装置10−3から出力される。
なお従来技術の多重化処理では、上述の図6の場合に、サーバ装置10−1及びサーバ装置10−2に障害が発生したとみなされ、多重化処理が継続できなくなっていた。
図7は第1実施形態の多重化処理方法による処理例2を示す図である。図7の例は、サーバ装置10の数nが4、ビザンチン障害の発生数bが1(サーバ装置10−4にビザンチン障害が発生)の場合を示す。サーバ装置10−3の入力部101が入力データAを受信すると、サーバ装置10−3の入力整列部102が、当該入力データAをサーバ装置10−1、サーバ装置10−2及びサーバ装置10−4に送信する。なおサーバ装置10−4は、ビザンチン障害が発生しているので動作が不定の状態であるが、図7の例では、第1出力データDの出力処理までが正常に行われている場合について説明する。
サーバ装置10−1〜サーバ装置10−4の入力整列部102が、入力データAに同一の順序番号を対応付ける。
サーバ装置10−1〜サーバ装置10−4の処理部103は、入力データAと、サーバ装置10−1〜サーバ装置10−4のそれぞれの記憶部104に記憶された処理前の内部データと、に基づく処理を行うことにより、第1出力データを出力する。図7の例は、サーバ装置10−1及びサーバ装置10−2が、非決定性出力データXを、第1出力データXとして出力し、サーバ装置10−3及びサーバ装置10−4が、決定性出力データDを、第1出力データDとして出力する場合を示す。それぞれの第1出力データは、各サーバ装置10のバッファ106に記憶される。
サーバ装置10−1〜サーバ装置10−3の出力整列部108は、決定性出力データDを、第2出力データに決定する。これは決定性出力データDが、サーバ装置10−3及びサーバ装置10−4のバッファ106に記憶されており、b+1=2であるから、出力整列マルチキャストの選択条件を満たすためである。なお図7の例では、非決定性出力データXも出力整列マルチキャストの選択条件b+1=2を満たすが、第1出力データDの出力処理及び送信処理の方が早かったため、出力整列マルチキャストの選択条件b+1=2を先に満たした第1出力データDが選択されている。
なおサーバ装置10−4に、ビザンチン障害が発生している前提ではあるが、サーバ装置10−1〜サーバ装置10−3は、サーバ装置10−4にビザンチン障害が発生していることは知る由もない。そのためサーバ装置10−4の処理部103により出力された第1出力データDも、正常なサーバ装置10−1〜サーバ装置10−3により出力された第1出力データと同様に扱われる。
サーバ装置10−1及びサーバ装置10−2の判定部109は、上述の図5のフローチャートのステップS11、ステップS13、ステップS14、ステップS15及びステップS17にしたがって、第2出力データDを、出力部112の出力に確定する。このフローの例は、例えばサーバ装置10−1及びサーバ装置10−2に一時的なリソース不足が発生し、再実行した際にリソース不足が解消された場合を示す。
サーバ装置10−3の判定部109は、上述の図5のフローチャートのステップS11、ステップS13及びステップS17にしたがって、第2出力データDを、出力部112の出力に確定する。
サーバ装置10−4の判定部109は、サーバ装置10−4でビザンチン障害が発生しているため、出力部112の出力は不定である。
結果として、サーバ装置10−1及びサーバ装置10−2が非決定性の動作(例えばオペレーティングシステムへのシステムコールによるリソース確保の失敗等)をし、サーバ装置10−3及びサーバ装置10−4が決定性の動作(処理の成功)をした場合でも、多重化処理の一貫性が維持される。つまり、サーバ装置10−1〜サーバ装置10−3の記憶部104の内部データは、入力データAを処理した後の状態になる。ここで第2出力データDは決定性がある処理の結果なので、サーバ装置10−1〜サーバ装置10−3の記憶部104の内部データも自然に同一となる。
上述の2つの処理例は、本実施形態の多重化処理システム100の動作を説明するために挙げた。しかしながら非決定性出力データの出力は例外的に発生するものなので、図8を参照して通常の動作について説明する。
図8は第1実施形態の多重化処理方法による処理例3を示す図である。図8の例は、サーバ装置10の数nが4、ビザンチン障害の発生数bが1(サーバ装置10−4にビザンチン障害が発生)の場合を示す。サーバ装置10−3の入力部101が入力データAを受信すると、サーバ装置10−3の入力整列部102が、当該入力データAをサーバ装置10−1、サーバ装置10−2及びサーバ装置10−4に送信する。なおサーバ装置10−4は、ビザンチン障害が発生しているので動作が不定の状態である。
サーバ装置10−1〜サーバ装置10−3の入力整列部102が、入力データAに同一の順序番号を対応付ける。
サーバ装置10−1〜サーバ装置10−3の処理部103は、入力データAと、サーバ装置10−1〜サーバ装置10−3のそれぞれの記憶部104に記憶された処理前の内部データと、に基づく処理を行うことにより、第1出力データを出力する。図8の例は、サーバ装置10−1〜サーバ装置10−3が、決定性出力データDを、第1出力データDとして出力する場合を示す。それぞれの第1出力データは、サーバ装置10−1〜サーバ装置10−3のバッファ106に記憶される。
サーバ装置10−1〜サーバ装置10−3の出力整列部108は、決定性出力データDを、第2出力データに決定する。これは決定性出力データDが、サーバ装置10−1〜サーバ装置10−3のバッファ106に記憶されており、b+1=2<3であるから、出力整列マルチキャストの選択条件を満たすためである。なおサーバ装置10−4の第1出力データ?は、出力整列マルチキャストの選択条件を満たさない。
サーバ装置10−1〜サーバ装置10−3の判定部109は、上述の図5のフローチャートのステップS11、ステップS13及びステップS17にしたがって、第2出力データDを、出力部112の出力に確定する。
結果として、サーバ装置10−1〜サーバ装置10−3で多重化処理の一貫性が維持される。また図8の例のように、非決定性出力データXが1つも出力されない場合は、本来出力されるべき決定性出力データDが必ず出力される。
以上説明したように、第1実施形態の多重化処理システム100では、処理部103が、決定性出力データ、又は、非決定性出力データを、第1出力データとして出力する。また決定制御部107(出力整列部108及び判定部109)が、自装置の処理部103から出力された第1出力データ、または、自装置以外の他のいずれかのサーバ装置10の処理部103から出力された第1出力データのひとつを選択し、第2出力データに決定する。また復元部105が、第2出力データが非決定性出力データである場合、記憶部に記憶された内部データを処理前の状態に復元する。また再実行制御部110が、第2出力データが決定性出力データであり、かつ、第2出力データと自装置から出力された第1出力データとが一致しない場合、第2出力データと自装置から出力された第1出力データとが一致するか、又は、再実行回数が閾値以上になるまで、入力データと処理前の内部データとに基づく処理を、自装置の処理部103に再実行させる。また出力部112が、第2出力データが非決定性出力データである場合、又は、第2出力データが決定性出力データであり、かつ、第2出力データと自装置から出力された第1出力データとが一致した場合、第2出力データを出力する。
第1実施形態の多重化処理システム100によれば、例えば処理部103をリソース不足等のエラーの際に必ずしも決定性を持たないプログラムによって実現しても、多重化処理システム100の多重化処理の一貫性を維持することができる。具体的には、決定性のないエラー処理が発生した場合に、処理部103を実現するプログラムが非決定性出力データを出力するようにする。
また第1実施形態の多重化処理システム100によれば、ある入力データに対して、全てのサーバ装置10でリソース不足となる場合(例えば入力データが大きすぎて必ずリソース不足となる場合)、全ての正常なサーバ装置10の出力は、非決定性出力データとなり、全ての正常なサーバ装置10の記憶部104の内部データは、処理前の状態に復元される。復元された状態は、リソース不足の状態ではないことに注意する。これにより多重化処理システム100は多重化処理を続行できる。なお従来技術の多重化処理では、この場合は全てのサーバ装置10で障害が発生した場合として扱っていたため、多重化処理が続行できなくなっていた。
また第1実施形態の多重化処理システム100によれば、ある入力データに対して、全ての正常なサーバ装置10でリソース不足等の非決定性の動作とならない場合(つまり通常の場合)、本来出力されるべき決定性出力データが出力されるので、多重化処理を続行できる。
また第1実施形態の多重化処理システム100によれば、ある入力データに対して、リソース不足等の非決定性の動作となるサーバ装置10と、決定性の動作となるサーバ装置10が混在する場合も、全てのサーバ装置10で多重化処理を続行できる(図7参照)。
第1実施形態の多重化処理システム100は、いずれの場合においても、多重化処理の一貫性が保たれることが特徴である。なお、b台までのコンピュータがビザンチン障害となったとしても、出力整列マルチキャストの選択条件があるため、正常なサーバ装置10の出力は決定性出力データ又は非決定性出力データのどちらかである。
なお入力整列マルチキャスト又は出力整列マルチキャストの信頼性を維持するための動作条件として、別の条件が課される場合には、上述のn>3bの動作条件に加えて、その条件も動作条件に加える。ただし、第1実施形態の多重化処理システム100は入力整列マルチキャスト処理及び出力整列マルチキャストの実装の仕方によらずに成立する。
(第2実施形態)
次に第2実施形態について説明する。第2実施形態の多重化処理システム100では、例えば、ある入力データの処理において、リソース不足となるサーバ装置10と、リソース不足とならないサーバ装置10が混在する場合に、リソース不足となるサーバ装置10が多重化処理システム100から切り離される可能性があった。具体的には、処理部103による処理の再実行回数が閾値以上の場合、連携制御部111により自装置以外の他のサーバ装置10との連携が停止される。
第2実施形態の多重化処理システム100は、第1実施形態の多重化処理システム100の連携制御部111に代えて、コピー部113を備える。第2実施形態の説明では、第1実施形態の説明と同様の説明については省略する。
図9は第2実施形態のサーバ装置10の構成の例を示す図である。第2実施形態のサーバ装置10は、入力部101、入力整列部102、処理部103、記憶部104、復元部105、バッファ106、決定制御部107、再実行制御部110、出力部112及びコピー部113を備える。また決定制御部107は、出力整列部108及び判定部109を備える。
第2実施形態の多重化処理システム110の動作条件は、サーバ装置10の数をn、信頼性を維持するために許容されるビザンチン障害のサーバ装置10の数をbとするとき、n>5bである。この動作条件は、コピー部113が正常なサーバ装置10の処理後の内部データを特定するために必要となる。
出力整列部108による出力整列マルチキャスト処理は、第1実施形態と選択条件が少し異なる。出力整列マルチキャスト処理は、各順序番号に関して、2b+1以上のサーバ装置10のバッファ106で記憶されている同一の第1出力データを選択し、第2出力データに決定する。このとき、選択された第2出力データが各サーバ装置において一致するように出力整列マルチキャスト処理は動作する。
具体的には、動作条件がn>5bであるから、ビザンチン障害となっているサーバ装置10を除いた、正常なサーバ装置10の数は少なくとも4b+1である。すると、第1出力データとして非決定性出力データを出力したサーバ装置10の数をx、第1出力データとして決定性出力データを出力したサーバ装置10の数をyとすると、x+y≧4b+1である。これより、xかyの少なくとも一方は2b+1以上である。
コピー部113は、処理部103による順序番号Nの入力データの処理の再実行回数が閾値以上の場合、正常なサーバ装置10の処理部103の当該順序番号の入力データの処理により得られた記憶部104の処理後の内部データを、自装置の記憶部104にコピーする。このときコピー部113は、b+1以上のサーバ装置10の記憶部104で記憶されている同一の内部データを、自装置の記憶部104にコピーする。
図10は第2実施形態の最終確定処理の例を示すフローチャートである。ステップS26が、第1実施形態の最終確定処理と異なる。ステップS26のコピー処理は、コピー部113により行われる。
コピー部113のコピー処理について説明する。ビザンチン障害が発生しているサーバ装置10の存在を前提とする場合、ビザンチン障害が発生しているサーバ装置10をすぐに特定することはできない。コピー部113は、処理部103による順序番号Nの入力データの処理の再実行回数が閾値以上の場合、正常なサーバ装置10の記憶部104から、当該順序番号の入力データに関する処理後の内部データを、自装置の記憶部104にコピーしなければならない。しかしながら、その実現方法は自明ではない。以下にステップS26のコピー処理の例とその正当性を示す。この部分が第2実施形態の特徴である。
図11は第2実施形態のコピー処理の例を示すフローチャートである。はじめに、コピー部113は、自装置の処理部103による順序番号Nの入力データの処理の再実行回数が閾値以上の場合、当該順序番号Nの入力データに関する処理後の内部データの送信要求を、全てのサーバ装置10に送信する(ステップS31)。ここで、順序番号Nの入力データに関する処理後の内部データの送信要求を受信したサーバ装置10は、当該サーバ装置10の最終確定処理が終了した後に、当該サーバ装置10の記憶部104に記憶された順序番号Nの入力データに関する処理後の内部データを返信する。
次に、コピー部113は、順序番号Nの入力データに関する処理後の内部データの送信要求を受信したサーバ装置10から、順序番号Nの入力データに関する処理後の内部データを受信する(ステップS32)。次に、コピー部113は、ステップS32で受信された複数の受信データ(順序番号Nの入力データに関する処理後の内部データ)を比較する(ステップS33)。
次に、コピー部113は、同じ受信データがb+1以上あるか否かを判定する(ステップS34)。同じ受信データがb+1以上ない場合(ステップS34、No)、処理は、ステップS32に戻る。同じ受信データがb+1以上ある場合(ステップS34、Yes)、コピー部113は、当該受信データを自装置の記憶部104にコピーする(ステップS35)。
ステップS34及びステップS35の処理の正当性について説明する。b+1以上のサーバ装置10から、同じ内容の受信データが得られたとすれば、そのうち少なくとも1つの受信データは、正常なサーバ装置10から送信されている。正常なサーバ装置10を特定できなくても、この受信データ(順序番号Nの入力データに関する処理後の内部データ)は正しい状態であるといえる。
コピー部113は、第2出力データが決定性出力データである場合に動作する。その第2出力データをDとする。すると、出力整列マルチキャストの第2出力データの選択条件より、この第2出力データDは、2b+1以上のサーバ装置10の処理部103の処理により得られた第1出力データDである。
ビザンチン障害が発生しているサーバ装置10の数はb以下の前提なので、そのうち正常なサーバ装置10の数は、(2b+1)−bにより少なくともb+1である。したがって第1出力データと第2出力データとが一致している正常なサーバ装置10の数はb+1以上ある。
第1出力データと第2出力データとが一致している正常なサーバ装置10の決定制御部107(判定部109)では、直ちに、当該第2出力データを出力部112の出力に確定することができる。したがって正常なサーバ装置10は、順序番号Nの入力データに関する処理後の内部データの送信要求に応答することができる。その結果、要求元のサーバ装置10は、少なくともb+1以上の正常なサーバ装置10から、順序番号Nの入力データに関する同じ内容の処理後の内部データを必ず取得できる。したがって、上述の図11に示すコピー処理のアルゴリズムは必ず完了する。
図12は第2実施形態の多重化処理方法による処理例を示す図である。図12の例は、サーバ装置10の数nが6、ビザンチン障害の発生数bが1(サーバ装置10−6にビザンチン障害が発生)の場合を示す。サーバ装置10−2の入力部101が入力データAを受信すると、サーバ装置10−2の入力整列部102が、当該入力データAを自装置以外の他のサーバ装置10に送信する。なおサーバ装置10−6は、ビザンチン障害が発生しているので動作が不定の状態であるが、図12の例では入力データAの処理については正常に動作しているものとして扱う。サーバ装置10−1〜サーバ装置10−6の入力整列部102は、入力データAに同一の順序番号を対応付ける。
サーバ装置10−1〜サーバ装置10−6の処理部103は、入力データAと、サーバ装置10−1〜サーバ装置10−6のそれぞれの記憶部104に記憶された処理前の内部データと、に基づく処理を行うことにより、第1出力データを出力する。図12の例は、サーバ装置10−1〜サーバ装置10−3が、非決定性出力データXを、第1出力データXとして出力し、サーバ装置10−4〜サーバ装置10−6が、決定性出力データDを、第1出力データDとして出力する場合を示す。それぞれの第1出力データは、各サーバ装置10のバッファ106に記憶される。
サーバ装置10−1〜サーバ装置10−6の出力整列部108は、決定性出力データDを、第2出力データに決定する。これは決定性出力データDが、サーバ装置10−4〜サーバ装置10−6のバッファ106に記憶されており、2b+1=3であるから、出力整列マルチキャストの選択条件を満たすためである。
図12の例は、サーバ装置10−1及びサーバ装置10−2は、再実行回数が閾値以上になる前に、第2出力データDが得られた場合を示す。またサーバ装置10−3は、再実行回数が閾値以上になった場合を示す。すなわちサーバ装置10−3では、コピー部113のコピー処理が動作し、b+1=2以上のサーバ装置10で同じ内容の処理後の内部データが、サーバ装置10−3の記憶部104にコピーされる。図12の例は、全てのサーバ装置10の出力部112から決定性出力データDが出力される場合を示す。
最後に、第1及び第2実施形態のサーバ装置10のハードウェア構成の例について説明する。図13は、第1及び第2実施形態のサーバ装置10のハードウェア構成の例を示す図である。なおクライアント装置20のハードウェア構成の例もサーバ装置10と同様である。
第1及び第2実施形態のサーバ装置10は、制御装置301、主記憶装置302、補助記憶装置303、表示装置304、入力装置305及び通信装置306を備える。制御装置301、主記憶装置302、補助記憶装置303、表示装置304、入力装置305及び通信装置306は、バス310を介して接続されている。
制御装置301は補助記憶装置303から主記憶装置302に読み出されたプログラムを実行する。主記憶装置302はROM及びRAM等のメモリである。補助記憶装置303はメモリカード及びSSD(Solid State Drive)等である。
表示装置304は情報を表示する。表示装置304は、例えば液晶ディスプレイである。入力装置305は、情報の入力を受け付ける。入力装置305は、例えばキーボード等である。なお表示装置304及び入力装置305は、表示機能と入力機能とを有する液晶タッチパネル等でもよい。通信装置306は他の装置と通信する。
サーバ装置10で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、メモリカード、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記憶媒体に記憶されてコンピュータ・プログラム・プロダクトとして提供される。
またサーバ装置10で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。またサーバ装置10が実行するプログラムを、ダウンロードさせずにインターネット等のネットワーク経由で提供するように構成してもよい。
またサーバ装置10のプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
サーバ装置10で実行されるプログラムは、上述の実施形態のサーバ装置10の構成(機能ブロック)のうち、プログラムにより実現可能な機能ブロックを含むモジュール構成となっている。プログラムにより実現可能な機能ブロックは、例えば入力部101、入力整列部102、処理部103、復元部105、バッファ106、決定制御部107(出力整列部108及び判定部109)、再実行制御部110、連携制御部111及び出力部112である。
プログラムにより実現される機能ブロックは、制御装置301が補助記憶装置303等の記憶媒体からプログラムを読み出して実行することにより、プログラムにより実現される機能ブロックが主記憶装置302にロードされる。すなわちプログラムにより実現される機能ブロックは、主記憶装置302上に生成される。
なお実施形態のサーバ装置10の機能ブロックを、プログラムと、IC(Integrated Circuit)等のハードウェアと、を組み合わせることにより実現してもよい。
以上説明したように、第2実施形態の多重化処理システム100では、再実行回数が閾値以上になったサーバ装置10を、多重化処理システム100から切り離すことなく、多重化処理に利用できる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。

Claims (8)

  1. 複数のサーバ装置を備える多重化処理システムであって、
    それぞれの前記サーバ装置は、
    内部データを記憶する記憶部と、
    入力データと処理前の前記内部データとに基づく処理から一意に決定される決定性出力データ、又は、前記処理から一意に決定されない非決定性出力データを、第1出力データとして出力する処理部と、
    自装置から出力された前記第1出力データ、または、自装置以外の他のいずれかのサーバ装置から出力された前記第1出力データのひとつを選択し、第2出力データに決定する決定制御部と、
    前記第2出力データが非決定性出力データである場合、前記記憶部に記憶されている内部データを処理前の状態に復元する復元部と、
    前記第2出力データが決定性出力データであり、かつ、前記第2出力データと自装置から出力された前記第1出力データとが一致しない場合、前記第2出力データと再決定された前記第1出力データとが一致するか、又は、再実行回数が閾値以上になるまで、前記処理を自装置に再実行させる再実行制御部と、
    前記第2出力データが非決定性出力データである場合、又は、前記第2出力データが決定性出力データであり、かつ、前記第2出力データと再決定された前記第1出力データとが一致した場合、前記第2出力データを出力する出力部と、
    を備える多重化処理システム。
  2. 前記再実行回数が前記閾値以上の場合、前記自装置以外の他のサーバ装置との連携を止める連携制御部、
    を更に備える請求項1に記載の多重化処理システム。
  3. 前記再実行回数が前記閾値以上の場合、前記自装置以外の他のサーバ装置の前記処理により得られた処理後の内部データを自装置の前記記憶部にコピーするコピー部、を更に備え、
    前記出力部は、前記処理後の内部データが自装置の前記記憶部に記憶された場合、前記第2出力データを出力する、
    請求項1に記載の多重化処理システム。
  4. 前記複数のサーバ装置の数はn>3b(bは1以上の整数)を満たす整数nであり、
    前記決定制御部は、誤動作を行う可能性のある障害を許容する前記サーバ装置の数をbとして、b+1以上の前記サーバ装置の処理部で出力された前記第1出力データを、前記第2出力データに決定する、
    請求項2に記載の多重化処理システム。
  5. 前記複数のサーバ装置の数はn>5b(bは1以上の整数)を満たす整数nであり、
    前記決定制御部は、誤動作を行う可能性のある障害を許容する前記サーバ装置の数をbとして、2b+1以上の前記サーバ装置の処理部で出力された前記第1出力データを、前記第2出力データに決定する、
    請求項3に記載の多重化処理システム。
  6. 前記複数のサーバ装置の数はn>5b(bは1以上の整数)を満たす整数nであり、
    前記コピー部は、誤動作を行う可能性のある障害を許容する前記サーバ装置の数をbとして、b+1以上の前記サーバ装置の記憶部で一致する前記処理後の内部データを、自装置の前記記憶部に記憶する、
    請求項3に記載の多重化処理システム。
  7. 内部データを記憶する記憶部を有する複数のサーバ装置を備える多重化処理システムの多重化処理方法であって、
    入力データと処理前の前記内部データとに基づく処理から一意に決定される決定性出力データ、又は、前記処理から一意に決定されない非決定性出力データを、第1出力データとして出力するステップと、
    自装置から出力された前記第1出力データ、または、自装置以外の他のいずれかのサーバ装置から出力された前記第1出力データのひとつを選択し、第2出力データに決定するステップと、
    前記第2出力データが非決定性出力データである場合、前記記憶部に記憶されている内部データを処理前の状態に復元するステップと、
    前記第2出力データが決定性出力データであり、かつ、前記第2出力データと自装置から出力された前記第1出力データとが一致しない場合、前記第2出力データと再決定された前記第1出力データとが一致するか、又は、再実行回数が閾値以上になるまで、前記処理を自装置に再実行させるステップと、
    前記第2出力データが非決定性出力データである場合、又は、前記第2出力データが決定性出力データであり、かつ、前記第2出力データと再決定された前記第1出力データとが一致した場合、前記第2出力データを出力するステップと、
    を含む多重化処理方法。
  8. 内部データを記憶する記憶部を有するサーバ装置を、
    入力データと処理前の前記内部データとに基づく処理から一意に決定される決定性出力データ、又は、前記処理から一意に決定されない非決定性出力データを、第1出力データとして出力する処理部と、
    自装置から出力された前記第1出力データ、または、自装置以外の他のいずれかのサーバ装置から出力された前記第1出力データのひとつを選択し、第2出力データに決定する決定制御部と、
    前記第2出力データが非決定性出力データである場合、前記記憶部に記憶されている内部データを処理前の状態に復元する復元部と、
    前記第2出力データが決定性出力データであり、かつ、前記第2出力データと自装置から出力された前記第1出力データとが一致しない場合、前記第2出力データと再決定された前記第1出力データとが一致するか、又は、再実行回数が閾値以上になるまで、前記処理を自装置に再実行させる再実行制御部と、
    前記第2出力データが非決定性出力データである場合、又は、前記第2出力データが決定性出力データであり、かつ、前記第2出力データと再決定された前記第1出力データとが一致した場合、前記第2出力データを出力する出力部、
    として機能させるためのプログラム。
JP2017538765A 2015-09-08 2015-09-08 多重化処理システム、多重化処理方法及びプログラム Active JP6556852B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/075514 WO2017042894A1 (ja) 2015-09-08 2015-09-08 多重化処理システム、多重化処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2017042894A1 true JPWO2017042894A1 (ja) 2018-02-15
JP6556852B2 JP6556852B2 (ja) 2019-08-07

Family

ID=58240722

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017538765A Active JP6556852B2 (ja) 2015-09-08 2015-09-08 多重化処理システム、多重化処理方法及びプログラム

Country Status (4)

Country Link
US (1) US10489239B2 (ja)
JP (1) JP6556852B2 (ja)
CN (1) CN107949831B (ja)
WO (1) WO2017042894A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019109311A1 (zh) * 2017-12-07 2019-06-13 北京小米移动软件有限公司 信道协调方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06324900A (ja) * 1993-05-10 1994-11-25 Mitsubishi Electric Corp 計算機
JP2001526809A (ja) * 1997-05-07 2001-12-18 ゼネラル・ダイナミックス・インフォメーション・システムズ・インコーポレーテッド コンピュータ・システム用非割り込み電力制御
JP2007316787A (ja) * 2006-05-24 2007-12-06 Nippon Telegr & Teleph Corp <Ntt> 応答集約装置,応答集約方法,その方法を実装したプログラム及びそのプログラムを記録した記録媒体
WO2014207893A1 (ja) * 2013-06-28 2014-12-31 株式会社日立製作所 演算回路及び計算機

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2534430B2 (ja) 1992-04-15 1996-09-18 インターナショナル・ビジネス・マシーンズ・コーポレイション フォ―ルト・トレランスのあるコンピュ―タ・システム出力の合致を達成するための方法
JP2000148655A (ja) * 1998-11-13 2000-05-30 Hitachi Ltd 情報処理システムの制御方法
JP3831154B2 (ja) * 1999-08-13 2006-10-11 株式会社東芝 プログラム多重化拡大方法
US7272632B2 (en) * 2001-06-15 2007-09-18 Kabushiki Kaisha Toshiba Distributed system and multiplexing control method for the system
JP3655263B2 (ja) 2001-06-15 2005-06-02 株式会社東芝 分散システムおよび同システムの多重化制御方法
WO2003083614A2 (en) * 2002-03-25 2003-10-09 Eternal Systems, Inc. Transparent consistent active replication of multithreaded application programs
WO2007023975A1 (ja) * 2005-08-22 2007-03-01 Ssd Company Limited マルチプロセッサ、ダイレクトメモリアクセスコントローラ、及びシリアルデータ送受信装置
US20090080356A1 (en) * 2007-09-24 2009-03-26 Qualcomm Incorporated Managing acknowledgment transmissions from multicast group members of a multicast group within a wireless communications network
US8189789B2 (en) * 2008-11-03 2012-05-29 Telcordia Technologies, Inc. Intrusion-tolerant group management for mobile ad-hoc networks
US8189584B2 (en) * 2009-07-27 2012-05-29 Media Patents, S. L. Multicast traffic management in a network interface
CN102238602B (zh) * 2011-07-04 2013-09-25 南京邮电大学 一种无线传感器网络故障节点检测方法
KR101558047B1 (ko) * 2013-09-09 2015-10-06 삼성에스디에스 주식회사 클러스터 시스템 및 클러스터 시스템에서 서비스 가용성을 제공하기 위한 방법
WO2015140942A1 (ja) * 2014-03-18 2015-09-24 株式会社東芝 情報処理システム、サーバ装置、情報処理方法およびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06324900A (ja) * 1993-05-10 1994-11-25 Mitsubishi Electric Corp 計算機
JP2001526809A (ja) * 1997-05-07 2001-12-18 ゼネラル・ダイナミックス・インフォメーション・システムズ・インコーポレーテッド コンピュータ・システム用非割り込み電力制御
JP2007316787A (ja) * 2006-05-24 2007-12-06 Nippon Telegr & Teleph Corp <Ntt> 応答集約装置,応答集約方法,その方法を実装したプログラム及びそのプログラムを記録した記録媒体
WO2014207893A1 (ja) * 2013-06-28 2014-12-31 株式会社日立製作所 演算回路及び計算機

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
大原 衛 他: "「部分再試行による多数決冗長方式」", 電子情報通信学会技術研究報告, vol. 第103巻 第668号, JPN6018021255, 13 February 2004 (2004-02-13), JP, pages 第73頁-第78頁 *
大原 衛 他: "「非同期分散TMRシステムの構成法に関する一考察」", 電子情報通信学会技術研究報告, vol. 第103巻 第134号, JPN6018021253, 13 June 2003 (2003-06-13), JP, pages 第9頁-第14頁 *

Also Published As

Publication number Publication date
CN107949831A (zh) 2018-04-20
WO2017042894A1 (ja) 2017-03-16
US10489239B2 (en) 2019-11-26
US20180189131A1 (en) 2018-07-05
CN107949831B (zh) 2021-03-16
JP6556852B2 (ja) 2019-08-07

Similar Documents

Publication Publication Date Title
CN111327703B (zh) 一种基于区块链的共识方法及装置
EP2998863B1 (en) Converting a serial transaction schedule to a parallel transaction schedule
US9778998B2 (en) Data restoration method and system
US9569517B1 (en) Fault tolerant distributed key-value storage
CN109308227B (zh) 故障检测控制方法及相关设备
CN110349029B (zh) 一种基于区块链的交易一致性的处理方法、设备以及系统
US20070214355A1 (en) Leaderless Byzantine consensus
CN111124755A (zh) 集群节点的故障恢复方法、装置、电子设备及存储介质
WO2017042890A1 (ja) データベースシステム、サーバ装置、プログラムおよび情報処理方法
CN107102908B (zh) 数据校验方法、数据容错方法及装置
CN107612950A (zh) 一种提供服务的方法、装置、系统、电子设备
CN108737153B (zh) 区块链灾备系统、方法、服务器和计算机可读存储介质
CN108846085B (zh) 一种id生成方法、装置、电子设备及系统
WO2022033586A1 (zh) 一种消息发送方法及装置
JP6556852B2 (ja) 多重化処理システム、多重化処理方法及びプログラム
US10169441B2 (en) Synchronous data replication in a content management system
CN108123967A (zh) 一种集群系统的数据同步方法和系统
CN112437155B (zh) 服务数据的处理方法、装置以及服务端设备
CN109219105B (zh) 路由切换方法以及路由切换系统
US10514850B2 (en) Information processing system, server device, Information processing method, and computer program product
CN107203915B (zh) 数据存储方法及装置
US10382536B2 (en) Device management apparatus
CN110489208B (zh) 虚拟机配置参数核查方法、系统、计算机设备和存储介质
WO2016180174A1 (zh) 语音文件同步的方法和装置
CN112181686A (zh) 一种数据处理方法、装置、系统、电子设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180612

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180809

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190312

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190507

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190710

R150 Certificate of patent or registration of utility model

Ref document number: 6556852

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150