JP6181216B2 - 通信制御装置、通信制御方法、プログラムおよび通信システム - Google Patents

通信制御装置、通信制御方法、プログラムおよび通信システム Download PDF

Info

Publication number
JP6181216B2
JP6181216B2 JP2016011026A JP2016011026A JP6181216B2 JP 6181216 B2 JP6181216 B2 JP 6181216B2 JP 2016011026 A JP2016011026 A JP 2016011026A JP 2016011026 A JP2016011026 A JP 2016011026A JP 6181216 B2 JP6181216 B2 JP 6181216B2
Authority
JP
Japan
Prior art keywords
data
data operation
unit
communication control
state information
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.)
Active
Application number
JP2016011026A
Other languages
English (en)
Other versions
JP2017130159A (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
Original Assignee
Toshiba 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 filed Critical Toshiba Corp
Priority to JP2016011026A priority Critical patent/JP6181216B2/ja
Priority to US15/408,481 priority patent/US10216590B2/en
Publication of JP2017130159A publication Critical patent/JP2017130159A/ja
Application granted granted Critical
Publication of JP6181216B2 publication Critical patent/JP6181216B2/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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1865Transactional file systems
    • 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/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • G06F16/212Schema design and management with details for data modelling support
    • 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/22Indexing; Data structures therefor; Storage structures
    • 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
    • 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/2379Updates performed during online database operations; commit processing
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/202Error 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 processing functionality is redundant
    • G06F11/2041Error 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 processing functionality is redundant with more than one idle spare processing component
    • 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/202Error 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 processing functionality is redundant
    • G06F11/2048Error 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 processing functionality is redundant where the redundant components share neither address space nor persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)

Description

本発明の実施形態は、通信制御装置、通信制御方法、プログラムおよび通信システムに関する。
分散データベース管理システムの可用性を高める技術として、例えば透過的なフェイルオーバー処理が知られている。透過的なフェイルオーバー処理では、アプリケーションからの要求の処理途中に分散サーバまたは分散サーバとの接続経路に異常が発生したとしても、アプリケーションの接続先が他の分散サーバに自動的に切り替えられる。
フェイルオーバー処理の実現方法は、対象とする分散データベースのデータモデルや操作内容によって異なる。例えばトランザクション制御を行わない分散キーバリューストアでは、適宜選択した分散サーバから正常応答が得られるまで登録要求を繰り返し発行することでフェイルオーバー処理が実現できる。トランザクション制御を行う分散データベースでは、3相コミットのような分散プロトコルに基づく透過的フェイルオーバー処理が知られている。
特表2009−505223号公報
しかしながら、例えば、両者の構造を持ち合わせる大量のデータを一つのアプリケーションで扱う場合、開発コストまたは応答性能を犠牲にする必要があった。例えば二つの異なるタイプの分散データベースを利用する方法、または、データ構造を大幅に見直し巨大なバリューとして一貫性を必要とするデータセットを一まとめに扱うことで分散キーバリューストアのみを利用する方法では、構成が複雑になり開発コストが増加する。トランザクション制御を行う分散データベースのみを利用する方法では、応答性能が犠牲となる。
実施形態の通信制御装置は、決定部と、要求部と、記憶制御部と、回復部と、を備える。決定部は、要求されたデータ操作と、データ操作により操作されるデータを記憶するテーブルのスキーマとに基づいて、データ操作の状態を示す状態情報を記憶する第1の操作方法、および、状態情報を記憶しない第2の操作方法のいずれかを、データ操作の方法として決定する。要求部は、データ操作をサーバ装置に要求する。記憶制御部は、第1の操作方法が決定された場合、データ操作の実行時に状態情報を記憶部に記憶する。回復部は、データ操作の実行時に障害が発生した場合、決定部により決定された操作方法に応じた回復方法により、発生した障害を回復する。
図1は、本実施形態にかかる通信システムの構成例を示すブロック図である。 図2は、本実施形態の通信制御装置および分散サーバの機能構成例を示すブロック図である。 図3は、本実施形態におけるデータ操作処理の一例を示すフローチャートである。 図4は、本実施形態のスキーマ特定処理の一例を示すフローチャートである。 図5は、本実施形態のステートレス操作判定処理の一例を示すフローチャートである。 図6は、本実施形態の障害回復処理の一例を示すフローチャートである。 図7は、本実施形態のスキーマ検証処理の一例を示すフローチャートである。 図8は、本実施形態にかかる装置のハードウェア構成例を示す説明図である。
以下に添付図面を参照して、この発明にかかる通信制御装置の好適な実施形態を詳細に説明する。
上記のように、フェイルオーバー処理の実現方法は、対象とする分散データベースのデータモデルなどによって異なる。トランザクション制御を行わない分散キーバリューストアのフェイルオーバー処理についてさらに説明する。キーとバリューの組からなるレコードをクライアントより登録する場合を想定する。
この場合、トランザクションの開始や終了といった、個々のレコード操作の系列を識別するための情報は、分散サーバには記録されない。そのため、登録要求に対する成功応答を待っている間に要求先の分散サーバとの接続が解消されると、再び同一の分散サーバに接続して問い合わせたとしても、登録操作自体が完了したのかどうかをクライアントから調べることはできない。一方、データベース内のキーはユニークにレコードを特定できる性質を持つ。従ってクライアントにおける透過的なフェイルオーバー処理は、レコードの登録操作の反映状況にかかわらず、適切な分散サーバを随時選択し、分散サーバからの正常応答が得られるまでレコードの登録要求を繰り返し発行するだけで実現できる。
次にトランザクション制御を行う分散データベースのフェイルオーバー処理について説明する。トランザクション制御を行う分散データベースでは、3相コミットのような分散プロトコルに基づき透過的フェイルオーバー処理を行うことで、レコードをユニークに特定できないようなデータに対する操作についても、一貫性が保証される。しかし、分散キーバリューストアとは異なり、一貫性を保証するために複雑な処理を行う必要がある。例えば、3相コミットに基づく分散システムでトランザクションを確定させるためには、関係する分散サーバの一部に障害が発生してもレコードの反映状況に差異が出ないよう、他の分散サーバでの登録を待機する準備状態などに遷移してからトランザクションの確定が進められる。これらの状態遷移のためには、レコード登録のための通信以外にも何回か通信を行う必要がある。従って、ユニーク性の判定処理が通信の応答待ち時間と比べて無視できると仮定した場合、分散キーバリューストアでも管理可能なデータを登録しようとすると、トランザクション制御のために通信回数が増える分だけ応答時間が長くなる。特に、個々のデータ操作要求のたびにトランザクションを確定させるコミット設定が有効となっている場合は、応答時間の差異が顕著になる。
従って、高い応答性能を要求されるデータベースアプリケーションを構築する場合、扱うデータ構造や想定されるデータ操作の種別に応じて最適なデータベースを選択する必要が生じる。例えば、センサーデータのように値同士の一貫性が比較的重視されないデータのみを大量に扱う場合、スケール性能の期待できる分散キーバリューストアが適している。また、センサーの一覧や属性情報など値同士の一貫性が重要となるデータを扱う場合、トランザクション制御を行う分散データベースが適している。
また上記のように、両者の構造を持ち合わせる大量のデータを一つのアプリケーションで扱う場合、データベース構造等が複雑になり開発コストが増大する、または、応答性能が低下する問題を解消できることが望ましい。
本実施形態は、操作対象のテーブルのスキーマ(構造)などに基づき、適用すべきデータ操作の方法(操作方法)を切り替える。そして、例えば障害の回復のためにデータ操作の状態を管理する必要がある操作方法を適用することが決定された場合は、データ操作の状態を示す情報(状態情報)を記憶する制御などが、データ操作時に実行される。
操作対象のテーブルのスキーマは、例えば分散データベースのクライアントに記憶される。スキーマは、対象レコードのユニーク性などレコード間およびテーブル間の制約情報を含む。例えばクライアントは、スキーマごとに定まる制約情報に基づき、可用性と一貫性とを維持する上で必要最低限となる、より通信回数の少ない操作方法を選択する。
クライアントと分散データベースを管理するサーバ(分散サーバ)は、必要に応じて、操作系列を記憶する機能を有する。操作系列とは、関連する1以上のデータ操作を示す情報である。例えば1つのトランザクションに含まれる1以上のデータ操作を識別する情報が操作系列の一例である。また操作系列は、上記のデータ操作の状態を示す状態情報の一例である。
クライアントは、障害を検知すると、選択された操作方法に応じた障害回復方法により、障害からの回復処理を実行する。回復処理の具体例について以下に説明する。
主キーを持つテーブルにおいて、SQLの「INSERT OR REPLACE」文を要求し、または、キーバリューストアのPUT命令に相当するレコード置き換えを要求し、変更内容を確定させる単独のトランザクションを実行する例を考える。このような例では、接続経路または接続先の分散サーバに障害が発生した場合、再度接続を確立した上で、改めて同じ要求を送信すればよい。このようなスキーマのテーブルに対する操作においては、何度繰り返し実行してもテーブルの内容が同一になることが期待できるためである。分散サーバ上では、トランザクションの実行状態を記憶しておく必要がなく、事前および事後のトランザクション制御命令を送信する必要もない。従って、実行状態の制御を伴わないステートレス操作のみによってデータ操作を実現できる。
次に、主キーを持たないテーブルに対する「INSERT」文からなる単独のトランザクションを実行する例を考える。このような例では、障害が発生した場合、再接続後に単に同じ要求を再試行すると、二重登録の発生など意図しない結果が得られる可能性がある。これは、スキーマ定義上、テーブルの内容だけでは、目的のレコードを改めて登録する必要性があるかどうかを判別できないためである。判別を可能とするためには、登録操作の系列を識別できるようにする必要がある。例えば、クライアントと分散サーバとの間で、操作系列の識別情報を事前に共有するための通信や操作系列を管理するための操作を行う。これにより、クライアントは登録操作の系列を識別できるようになる。すなわち、実行状態の制御を伴うステートフル操作によってデータ操作が実現可能となる。ただし、主キーを持つテーブルに対する操作と比べて、実行状態の管理や識別情報に関する事前の通信といった処理が加わる分だけ応答性能に影響が生じうる。
主キーを持つか否かなどの特性を判別し、最適な操作方法に切り替えるためには、スキーマを入手して記憶し、操作命令を解析する機能が必要となる。本実施形態では、操作命令を解析した結果とスキーマとの組み合わせに基づいてステートレス性の有無を判別し、適切な操作方法を選択する。これにより、実行状態の管理コストおよび通信回数を削減することが可能となる。
図1は、本実施形態にかかる通信システムの構成例を示すブロック図である。図1に示すように、本実施形態の通信システムは、端末400a、400b、400c、400dと、アプリケーションサーバ300a、300bと、通信制御装置100a、100b、100cと、分散サーバ200a、200b、200cと、を含む。
端末400a、400bは、ネットワーク510aを介してアプリケーションサーバ300aに接続される。端末400c、400dは、ネットワーク510bを介してアプリケーションサーバ300bに接続される。通信制御装置100a、100b、100cは、ネットワーク520を介して分散サーバ200a、200b、200cに接続される。
ネットワーク510a、510bは、例えばWAN(Wide Area Network)である。ネットワーク520は、例えばLAN(Local Area Network)である。ネットワーク構成はこれらに限られるものではなく、従来から用いられているあらゆるネットワーク構成を適用できる。例えば、ネットワーク510a、510bは1つのネットワークに統合されていてもよいし、3以上のネットワークに分割されていてもよい。
端末400a、400b、400c、400dは、同様の構成を備えるため、区別する必要がない場合は単に端末400という場合がある。同様に、アプリケーションサーバ300a、300bは単にアプリケーションサーバ300、通信制御装置100a、100b、100cは単に通信制御装置100、分散サーバ200a、200b、200cは単に分散サーバ200という場合がある。各装置(端末400、アプリケーションサーバ300、通信制御装置100、分散サーバ200)は図示した個数に限られず、任意の個数でよい。
端末400は、ユーザが利用するパーソナルコンピュータなどの装置である。アプリケーションサーバ300は、端末400を介して利用されるアプリケーションなどを提供するサーバ装置である。
通信制御装置100は、アプリケーションサーバ300と分散サーバ200との間の通信を制御する。例えば通信制御装置100は、アプリケーションサーバ300で動作するアプリケーションなどからの要求に応じて、分散サーバ200に記憶されているデータを操作する処理を制御する。通信制御装置100は、アプリケーションサーバ300に組み込まれたクライアントモジュール(JDBC(Java(登録商標) Database Connectivity)ドライバ、ODBC(Open Database Connectivity)ドライバ、データベースドライバなどのプログラム)として構成してもよいし、アプリケーションサーバ300とは独立の機器またはこの機器で動作するプログラムとして構成してもよい。
分散サーバ200は、データを分散して記憶するサーバ装置である。複数の分散サーバ200により分散データベース管理システムが構成される。例えば同一のデータが、複数の分散サーバ200で多重に記憶される。分散サーバ200が管理するデータベースは、主キーを持つテーブルと、主キーを持たないテーブルとを共に含みうる。主キーの有無などのスキーマの判定は、テーブルごとに実行される。
ユーザが端末400よりアプリケーションサーバ300で稼働するアプリケーションを使用すると、必要に応じてデータベースに対して参照または変更の操作要求が発生する。操作要求は、通信制御装置100を通じて伝達され、いずれかの分散サーバ200に格納されたデータに対して操作が行われる。
図2は、本実施形態の通信制御装置100および分散サーバ200の機能構成例を示すブロック図である。図2に示すように、通信制御装置100は、決定部101、検知・回復部102、要求部103、記憶制御部104、および、記憶部110を備える。
記憶部110は、通信制御装置100で実行される各種処理で用いられるデータを記憶する。例えば記憶部110は、データ操作の状態を示す状態情報(操作系列)を記憶する。操作系列は、上記のように通信制御装置100の記憶部110と、分散サーバ200の記憶部210(後述)とで共通に記憶される。
図2の例では、操作系列は、操作系列を識別する情報(「系列a」、「系列b」)と、実行済みの最終の操作を識別する情報(「操作a1」、「操作b2」)とを含む。操作系列のデータ構造はこれに限られるものではなく、操作系列ごとに、現在のデータ操作の状態を特定できる情報であればどのようなデータ構造であってもよい。
記憶制御部104は、記憶部110に対するデータの書き込み、および、記憶部110からのデータの読み出しを制御する。例えば記憶制御部104は、ステートフル操作を行う操作方法が決定された場合、データ操作時に操作系列を記憶部110に記憶する処理を制御する。
決定部101は、要求されたデータ操作と、このデータ操作により操作されるデータを記憶するテーブルのスキーマとに基づいて、データ操作の方法を決定する。例えば決定部101は、データ操作の状態を示す状態情報(操作系列など)を記憶する操作方法(第1の操作方法)、および、状態情報を記憶しない操作方法(第2の操作方法)のいずれかを決定する。状態情報を記憶する操作方法は、例えば、実行状態の制御を伴うステートフル操作に相当する。状態情報を記憶しない操作方法は、例えば、実行状態の制御を伴わないステートレス操作に相当する。従って、決定部101は、要求されたデータ操作が、ステートレス性を有するか否かを判別する、と解釈することもできる。
決定部101は、まず、アプリケーションサーバ300、分散サーバ200、および、決定部101の内部のキャッシュ、などから得られる情報を参照し、操作対象のテーブルに対応するスキーマを求める。そして決定部101は、求めたスキーマ、および、アプリケーションサーバ300から要求されたデータ操作を参照し、ステートレス性の有無を判別する。
決定部101は、データ操作のトランザクションの種類、操作対象のテーブルの主キーの有無、および、データ操作の種類などに応じて異なる操作方法を決定する。例えば決定部101は、データ操作が単独のトランザクションである場合にステートレス操作と判定する。単独のトランザクションとは、例えば、1以上のレコードに対する操作であって、アトミック性(原子性)を有する操作である。アトミック性とは、操作がすべて実行されるか、または、すべて実行されないことを保証する性質である。
データ操作が単独のトランザクションでない場合、決定部101は、操作対象のテーブルが主キーを持つかを判定してもよい。例えば、操作対象のテーブルが主キーを持つ場合に、ステートレス操作と判定してもよい。上記のように、主キーを持つテーブルの場合は、同一の操作を繰り返し実行してもテーブルの内容が同一になるためである。
操作対象のテーブルが主キーを持たない場合、決定部101は、さらにデータ操作の種類を判定してもよい。例えば、データ操作が新規レコードの挿入操作であるか否かを判定し、新規レコードの挿入操作でない場合に、ステートレス操作と判定してもよい。
新規レコードの挿入操作以外の操作は、例えば、既存レコードに対しての参照、更新、または削除操作である。これらの操作は、処理回数によらずに処理結果が同一となる操作(べき等性を有する操作)である。従って、例えば障害発生時に同じデータ操作を繰り返してもデータの不整合は生じない。このため、これらの操作をステートレス操作と判定しても問題は生じない。
決定部101は、データ操作により操作されるデータが複数のテーブルに記憶される場合、複数のテーブルそれぞれについてデータ操作の方法を決定する。決定部101は、判別結果を、検知・回復部102、要求部103、および、記憶制御部104に提供する。
検知・回復部102は、障害の検知を行い、回復に必要な手続きを決定する。また検知・回復部102は、障害が検知された場合の回復処理を実行する。検知・回復部102は、決定部101により決定された操作方法に応じた回復方法により、発生した障害を回復する回復部として機能する。検知・回復部102は、例えば、要求部103を通じて、分散サーバ200に対するデータ操作要求中の障害を検知する。また検知・回復部102は、決定部101より決定された操作方法(ステートレス性の有無)、および、記憶部110に記憶されている操作系列の状態に基づき、回復処理(要求の再試行など)に必要な手続きを決定する。
要求部103は、分散サーバ200に対するデータ操作の要求を発行する。要求部103は、操作要求を発行するにあたり、決定部101より求まるスキーマの識別情報を操作要求に付与する。また要求部103は、決定部101よりステートフル操作であると決定された場合は、記憶部110に記憶されている操作系列を操作要求に付与する。
一方、分散サーバ200は、データ操作部201、検証部202、判定部203、および、記憶部210を備える。
記憶部210は、分散サーバ200で実行される各種処理で用いられるデータを記憶する。例えば記憶部210は、データ操作の状態を示す状態情報(操作系列)を記憶する。
判定部203は、通信制御装置100から要求されたデータ操作の状態と、記憶部210に記憶された状態情報が示す状態とが整合するか否かを判定する。すなわち判定部203は、通信制御装置100からの操作要求において期待される直近の操作と、実際に受付済みの操作とを照合するための機能部である。例えば通信制御装置100との接続障害が発生した場合、既に実行済みの登録操作要求が再度発行されることがある。この場合、判定部203は、要求された登録操作の状態と、記憶された状態情報が示す状態とが整合しないと判定する。
データ操作部201は、通信制御装置100から要求されたデータ操作を実行する。例えばデータ操作部201は、判定部203により整合すると判定された場合、要求されたデータ操作を実行する。不整合などが生じた場合に、要求されたデータ操作の実行を省略することで、二重登録などのデータ不整合を回避することが可能となる。
検証部202は、通信制御装置100から送信された、データ操作により操作されるデータを記憶するテーブルのスキーマが正しいか否かを検証する。すなわち検証部202は、通信制御装置100から要求されたデータ操作で期待されるスキーマと、操作対象のデータが実際に格納されているテーブルのスキーマとが同一であることを検証する。
上記のように、通信制御装置100は、スキーマによって通信手順(操作方法)を切り替える。一方、通信制御装置100が常に最新のスキーマに基づき操作要求を発行するとは限らない。このため、分散サーバ200上で随時スキーマを検証する必要がある。なお検証部202は、スキーマの全部ではなく、スキーマを縮約したハッシュ表現や、スキーマの変更履歴と対応する連番(バージョン情報など)を比較してもよい。これにより、検証処理を、より効率的に実現可能となる。また、一度定義したテーブルのスキーマが変更されないデータベースなどを用いる場合は、分散サーバ200が検証部202を備えないように、すなわち、スキーマの検証を省略するように構成してもよい。
判定部203による照合に必要な操作系列は、通信制御装置100と分散サーバ200との双方で対称的に記憶する必要がある。一連のデータ操作の手順に関する記録を相互に独立して管理できる、操作系列の構成単位を以下ではセッションと呼ぶ。セッションは、少なくとも通信制御装置100と、操作対象のデータを記憶する分散サーバ200との組ごとに別途記憶する必要がある。分散サーバ200がマスタスレーブ構成の一部を構成する場合、マスタとスレーブとの間では、操作したレコードの内容だけではなくセッションも複製する必要がある。また、シャーディング、すなわち、データベースまたはテーブルをいくつかの分散サーバに分割配置する場合は、さらに分割単位でセッションを記憶する必要がある。
1つのセッションに1つの操作系列を含むように構成してもよいし、1つのセッションに複数の操作系列を含むように構成してもよい。例えば図2の例では、「系列a」、「系列b」をそれぞれ別のセッションの識別情報と対応づけて記憶してもよいし、「系列a」、「系列b」を1つのセッションの識別情報と対応づけて記憶してもよい。
通信制御装置100との接続が途切れたまま規定の時間を大幅に超過したセッションは、破棄してもよい。ただし、通信制御装置100において接続障害が発生した後、既定の時間を超過した場合は、セッションを必要とする操作要求の再試行は中断しなければならない。これは、操作系列を記憶するセッションがなければ、操作系列の照合が行えず、二重登録などのデータ不整合が生じる可能性があるためである。
操作系列の照合は、データ操作の種類によっては省略可能である。例えば同一のステートレス操作の繰り返しはデータ不整合の要因とはならないため、操作系列を照合する必要がない。従って、照合に必要なセッションの構築および破棄や、操作内容の記憶も必要ない。
なお、通信制御装置100および分散サーバ200の各部(決定部101、検知・回復部102、要求部103、記憶制御部104、データ操作部201、検証部202、判定部203)は、例えば、CPU(Central Processing Unit)などの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、IC(Integrated Circuit)などのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。
また、記憶部110および記憶部210は、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶媒体により構成することができる。
次に、このように構成された本実施形態にかかる通信システムによるデータ操作処理について図3を用いて説明する。図3は、本実施形態におけるデータ操作処理の一例を示すフローチャートである。
アプリケーションサーバ300よりデータ操作の要求を受け取ると、決定部101は、データ操作の対象となるデータを記憶するテーブルのスキーマを特定する(ステップS101)。スキーマ特定処理の詳細は後述する。次に決定部101は、特定したスキーマと、要求されたデータ操作とを参照して、データ操作がステートレス操作であるか否かを判定する(ステップS102)。ステートレス操作判定処理の詳細は後述する。
決定部101は、判定結果がステートレス操作であることを示すか否かを判断する(ステップS103)。ステートレス操作でない、すなわち、ステートフル操作である場合(ステップS103:No)、要求部103は、分散サーバ200および記憶制御部104に対して、操作系列を記憶するためにセッションの準備を要求する(ステップS104)。例えば要求部103は、要求に応じて分散サーバ200の判定部203によって生成されたセッションの識別情報を受け取り、記憶制御部104を介して記憶部110に格納する。
要求部103は、アプリケーションサーバ300から要求されたデータ操作の実行を、分散サーバ200に要求する(ステップS105)。このとき、要求部103は、現在のセッションに対応する操作系列の情報を併せて分散サーバ200に送信する。操作系列の情報は、分散サーバ200の判定部203が状態の整合性を判定するときに利用される。
分散サーバ200から正常応答を確認できた場合、要求部103は、セッションを破棄する(ステップS106)。なお、ステートフル操作の前後で行うセッションの生成および破棄は、通信回数の削減のために、複数のステートフル操作の間で省略してもよい。すなわち、1つのセッションを、複数の操作系列で共通に用いるように構成してもよい。
ステップS103でステートレス操作であると判定された場合(ステップS103:Yes)、要求部103は、アプリケーションサーバ300から要求されたデータ操作の実行を、操作系列の情報を付随させずに、分散サーバ200に要求する(ステップS107)。
次に、ステップS101のスキーマ特定処理について説明する。図4は、本実施形態のスキーマ特定処理の一例を示すフローチャートである。
スキーマは、例えば分散サーバ200に問い合わせることにより特定できる。またスキーマは、アプリケーションサーバ300から送信される情報(データ操作の要求など)を参照して特定することもできる。例えば、O/R(Object/Relational)マッピングを伴い静的にスキーマを仮定しているアプリケーションが用いられる場合、決定部101は、操作対象のデータのクラスの構造などから、スキーマを特定することができる。例えば、Java(登録商標)などのようにリフレクション機能を利用できる場合は、クラスを構成するメソッド、フィールドの名前や型、および、アノテーションなどの定義を参照することにより、該当するクラスに対応するテーブルのスキーマを特定することができる。
決定部101は、O/Rマッピングを利用する場合のように、データ操作の要求元(アプリケーションサーバ300など)からスキーマが指定されているか否かを判定する(ステップS201)。スキーマが指定されている場合(ステップS201:Yes)、決定部101は、指定されるスキーマをそのまま受け取り選択する(ステップS206)。
一方、スキーマの指定がない場合(ステップS201:No)、決定部101は、スキーマを示す情報(スキーマ情報)が、記憶部110などに事前に記憶(キャッシュ)されているか否かを判定する(ステップS202)。決定部101は、例えば分散サーバ200に対して、テーブルのスキーマを問い合わせたときに、テーブルを識別する情報(テーブル名等)と、問い合わせの結果得られたスキーマ情報とを対応づけて記憶部110などに記憶しておく。これにより、本ステップでは、事前に記憶された情報を参照して、操作対象のテーブルのスキーマを特定することができる。
スキーマ情報がキャッシュ済みの場合(ステップS202:Yes)、決定部101は、キャッシュ済みのスキーマを選択する(ステップS205)。スキーマのキャッシュが見つからなかった場合(ステップS202:No)、決定部101は、分散サーバ200に対して、最新のスキーマを問い合わせる(ステップS203)。決定部101は、問い合わせの結果得られた情報を記憶部110などの所定の記憶装置に登録し(ステップS204)、得られたスキーマを選択する(ステップS205)。
次に、ステップS102のステートレス操作判定処理について説明する。図5は、本実施形態のステートレス操作判定処理の一例を示すフローチャートである。
決定部101は、要求されたデータ操作が単独のトランザクションであるか否かを判定する(ステップS301)。データ操作が単独のトランザクションではない場合(ステップS301:No)、決定部101は、ステートフル操作であると判定する(ステップS304)。要求されたデータ操作が単独のトランザクションである場合(ステップS301:Yes)、決定部101は、さらに、操作対象のテーブルに主キーが存在するか否かを判定する(ステップS302)。決定部101は、例えば、スキーマ特定処理で特定したスキーマを参照することにより、テーブルに主キーが存在するか否かを判定する。
主キーが存在する場合(ステップS302:Yes)、決定部101は、ステートレス操作であると判定する(ステップS305)。主キーが存在しない場合(ステップS302:No)、決定部101は、さらに、要求されたデータ操作が、新規レコードの挿入操作であるか否かを判定する(ステップS303)。上記のように決定部101は、新規レコードの挿入操作であるかの代わりに、データ操作が処理回数によらずに処理結果が同一となる操作(べき等性を有する操作)であるかを判定してもよい。
データ操作が新規レコードの挿入操作でない場合(ステップS303:No)、決定部101は、ステートレス操作であると判定する(ステップS305)。新規レコードの挿入操作であった場合(ステップS303:Yes)、決定部101は、ステートフル操作であると判定する(ステップS304)。
なお、ステップS301〜ステップS303の実行順序は上記に限られるものではなく、任意の順序で実行することができる。
次に、本実施形態における障害回復処理について説明する。図6は、本実施形態の障害回復処理の一例を示すフローチャートである。検知・回復部102は、分散サーバ200からのハートビート応答の受け取りの失敗などにより、分散サーバ200との接続異常を検知した場合に、障害回復処理を実行する。
検知・回復部102は、障害が発生した分散サーバ200の代替となる分散サーバ200(代替サーバ)との接続を試みる(ステップS401)。接続に成功した場合、操作内容の回復操作に移行する。検知・回復部102は、直前のデータ操作がステートレスであるか否かを判定する(ステップS402)。検知・回復部102は、例えば決定部101によるステートレス操作判定処理の結果を参照して、データ操作がステートレスであるか否かを判定する。
ステートレス操作である場合(ステップS402:Yes)、検知・回復部102は、直前のステートレス操作を再実行する(ステップS407)。直前のデータ操作がステートレス操作でない、すなわち、ステートフル操作である場合(ステップS402:No)、検知・回復部102は、セッションが喪失されたか否かを判定する(ステップS403)。検知・回復部102は、例えば分散サーバ200に問い合わせることにより、該当するセッションが喪失されたかを判定する。
セッションが喪失された場合(ステップS403:Yes)、検知・回復部102は、再度セッションを準備し(ステップS404)、ステートフル操作を実行する(ステップS405)。セッションが喪失されていない場合(ステップS403:No)、検知・回復部102は、既存のセッションの状態を利用してステートフル操作を実行する(ステップS405)。なお、切断されたセッションの有効期限が設けられており、有効期限を超過した場合は、再度セッションを準備せず回復処理を中断する。ステートフル操作の完了を確認できた場合は、検知・回復部102は、セッションを破棄し(ステップS406)、障害回復処理を完了させる。
次に、分散サーバ200の検証部202によるスキーマ検証処理について説明する。図7は、本実施形態のスキーマ検証処理の一例を示すフローチャートである。スキーマ検証処理は、通信制御装置100の要求部103からデータ操作が要求されたとき(例えば図3のステップS105、ステップS107)に実行される。
検証部202は、通信制御装置100からデータ操作が要求されるごとに、付随するスキーマ情報を受け取る(ステップS501)。検証部202は、例えば記憶部210などに記憶される最新のスキーマを参照する(ステップS502)。検証部202は、受け取ったスキーマ情報が示すスキーマと、最新のスキーマとが一致するか否かを判定する(ステップS503)。一致しない場合(ステップS503:No)、検証部202は、スキーマ異常であると判別する(ステップS505)。スキーマ異常となりうるのは、例えば、アプリケーションサーバ300より与えられたスキーマに誤りがあるか、通信制御装置100の稼働している間に意図せずスキーマが変更された場合などである。スキーマが一致すると判定した場合(ステップS503:Yes)、検証部202は、スキーマ正常であると判別する(ステップS504)。スキーマ正常であり、適宜行われる判定部203の照合の結果、必要であると判断された場合、データ操作部201は、要求されたデータ操作を実行する。
このように、本実施形態にかかる通信システムでは、データ操作の種類、および、操作対象のテーブルのスキーマに基づき、適用すべきデータ操作の方法(操作方法)を切り替える。これにより、例えば必要な場合にのみ、実行状態を制御するデータ操作が実行される。この結果、高可用性、応答時間の短縮、および、開発の容易性などを両立させることが可能となる。
次に、本実施形態にかかる各装置(端末、アプリケーションサーバ、通信制御装置、分散サーバ)のハードウェア構成について図8を用いて説明する。図8は、本実施形態にかかる装置のハードウェア構成例を示す説明図である。
本実施形態にかかる装置は、CPU(Central Processing Unit)51などの制御装置と、ROM(Read Only Memory)52やRAM(Random Access Memory)53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、各部を接続するバス61を備えている。
本実施形態にかかる装置で実行されるプログラムは、ROM52等に予め組み込まれて提供される。
本実施形態にかかる装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
さらに、本実施形態にかかる装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態にかかる装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
本実施形態にかかる装置で実行されるプログラムは、コンピュータを上述した装置の各部として機能させうる。このコンピュータは、CPU51がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
51 CPU
52 ROM
54 通信I/F
61 バス
100 通信制御装置
101 決定部
102 検知・回復部
103 要求部
104 記憶制御部
110 記憶部
200 分散サーバ
201 データ操作部
202 検証部
203 判定部
210 記憶部
300 アプリケーションサーバ
400 端末
510、520 ネットワーク

Claims (11)

  1. データを分散して記憶する複数のサーバ装置と接続される通信制御装置であって、
    要求されたデータ操作と、前記データ操作により操作されるデータを記憶するテーブルのスキーマとに基づいて、前記データ操作の状態を示す状態情報を記憶する第1の操作方法、および、前記状態情報を記憶しない第2の操作方法のいずれかを、前記データ操作の方法として決定する決定部と、
    前記データ操作を前記サーバ装置に要求する要求部と、
    前記第1の操作方法が決定された場合、前記データ操作の実行時に前記状態情報を記憶部に記憶する記憶制御部と、
    前記データ操作の実行時に障害が発生した場合、前記決定部により決定された操作方法に応じた回復方法により、発生した障害を回復する回復部と、
    を備える通信制御装置。
  2. 前記回復部は、前記第1の操作方法が決定された場合、記憶された前記状態情報を用いて障害を回復し、前記第2の操作方法が決定された場合、前記状態情報を用いずに障害を回復する、
    請求項1に記載の通信制御装置。
  3. 前記決定部は、前記テーブルが主キーを有するか否かに応じて異なる操作方法を決定する、
    請求項1に記載の通信制御装置。
  4. 前記決定部は、前記データ操作で実行されるトランザクションの種類に応じて異なる操作方法を決定する、
    請求項1に記載の通信制御装置。
  5. 前記決定部は、前記データ操作の種類に応じて異なる操作方法を決定する、
    請求項1に記載の通信制御装置。
  6. 前記決定部は、前記データ操作により操作されるデータが複数のテーブルに記憶される場合、複数のテーブルそれぞれについて、要求されたデータ操作とテーブルのスキーマとに基づいて操作方法を決定する、
    請求項1に記載の通信制御装置。
  7. データを分散して記憶する複数のサーバ装置と接続される通信制御装置で実行される通信制御方法であって、
    要求されたデータ操作と、前記データ操作により操作されるデータを記憶するテーブルのスキーマとに基づいて、前記データ操作の状態を示す状態情報を記憶する第1の操作方法、および、前記状態情報を記憶しない第2の操作方法のいずれかを、前記データ操作の方法として決定する決定ステップと、
    前記データ操作を前記サーバ装置に要求する要求ステップと、
    前記第1の操作方法が決定された場合、前記データ操作の実行時に前記状態情報を記憶部に記憶する記憶制御ステップと、
    前記データ操作の実行時に障害が発生した場合、前記決定ステップにより決定された操作方法に応じた回復方法により、発生した障害を回復する回復ステップと、
    を含む通信制御方法。
  8. データを分散して記憶する複数のサーバ装置と接続されるコンピュータを、
    要求されたデータ操作と、前記データ操作により操作されるデータを記憶するテーブルのスキーマとに基づいて、前記データ操作の状態を示す状態情報を記憶する第1の操作方法、および、前記状態情報を記憶しない第2の操作方法のいずれかを、前記データ操作の方法として決定する決定部と、
    前記データ操作を前記サーバ装置に要求する要求部と、
    前記第1の操作方法が決定された場合、前記データ操作の実行時に前記状態情報を記憶部に記憶する記憶制御部と、
    前記データ操作の実行時に障害が発生した場合、前記決定部により決定された操作方法に応じた回復方法により、発生した障害を回復する回復部、
    として機能させるためのプログラム。
  9. データを分散して記憶する複数のサーバ装置と、通信制御装置とを備える通信システムであって、
    前記通信制御装置は、
    要求されたデータ操作と、前記データ操作により操作されるデータを記憶するテーブルのスキーマとに基づいて、前記データ操作の状態を示す状態情報を記憶する第1の操作方法、および、前記状態情報を記憶しない第2の操作方法のいずれかを、前記データ操作の方法として決定する決定部と、
    前記データ操作を前記サーバ装置に要求する要求部と、
    前記第1の操作方法が決定された場合、前記データ操作の実行時に前記状態情報を記憶部に記憶する記憶制御部と、
    前記データ操作の実行時に障害が発生した場合、前記決定部により決定された操作方法に応じた回復方法により、発生した障害を回復する回復部と、を備え、
    前記サーバ装置のそれぞれは、
    前記状態情報を記憶する第2記憶部と、
    前記通信制御装置から要求されたデータ操作の状態と、前記第2記憶部に記憶された前記状態情報が示す状態とが整合するか否かを判定する判定部と、
    整合すると判定された場合、要求されたデータ操作を実行するデータ操作部と、を備える、
    通信システム。
  10. 前記サーバ装置のそれぞれは、
    前記通信制御装置から送信された、前記データ操作により操作されるデータを記憶するテーブルのスキーマが正しいか否かを検証する検証部をさらに備える、
    請求項9に記載の通信システム。
  11. 前記判定部は、要求されたデータ操作が、前記第1の操作方法が決定されたデータ操作である場合、要求されたデータ操作の状態と、前記第2記憶部に記憶された前記状態情報が示す状態とが整合するか否かを判定する、
    請求項9に記載の通信システム。
JP2016011026A 2016-01-22 2016-01-22 通信制御装置、通信制御方法、プログラムおよび通信システム Active JP6181216B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016011026A JP6181216B2 (ja) 2016-01-22 2016-01-22 通信制御装置、通信制御方法、プログラムおよび通信システム
US15/408,481 US10216590B2 (en) 2016-01-22 2017-01-18 Communication control determination of storing state based on a requested data operation and a schema of a table that stores therein data to be operated by the data operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016011026A JP6181216B2 (ja) 2016-01-22 2016-01-22 通信制御装置、通信制御方法、プログラムおよび通信システム

Publications (2)

Publication Number Publication Date
JP2017130159A JP2017130159A (ja) 2017-07-27
JP6181216B2 true JP6181216B2 (ja) 2017-08-16

Family

ID=59360904

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016011026A Active JP6181216B2 (ja) 2016-01-22 2016-01-22 通信制御装置、通信制御方法、プログラムおよび通信システム

Country Status (2)

Country Link
US (1) US10216590B2 (ja)
JP (1) JP6181216B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6181216B2 (ja) * 2016-01-22 2017-08-16 株式会社東芝 通信制御装置、通信制御方法、プログラムおよび通信システム
US10447787B2 (en) * 2016-04-21 2019-10-15 Servicenow, Inc. System and method for session restoration after node failure

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003203000A (ja) * 2002-01-07 2003-07-18 Nec Corp トランザクション実行方式
US7350213B2 (en) * 2003-06-19 2008-03-25 Sap Ag System and method for dynamic selection of stateless/stateful software components
US7881215B1 (en) * 2004-03-18 2011-02-01 Avaya Inc. Stateful and stateless data processing
US20070033157A1 (en) 2005-08-08 2007-02-08 Simdesk Technologies Transaction protection in a stateless architecture using commodity servers
US7743157B2 (en) * 2007-06-26 2010-06-22 Sap Ag System and method for switching between stateful and stateless communication modes
US9749387B2 (en) * 2009-08-13 2017-08-29 Sap Se Transparently stateful execution of stateless applications
US8479215B2 (en) * 2009-08-18 2013-07-02 International Business Machines Corporation Decentralized load distribution to reduce power and/or cooling costs in an event-driven system
US9465589B2 (en) * 2011-04-05 2016-10-11 Microsoft Technology Licensing, Llc Stateful component authoring and execution
US8897154B2 (en) * 2011-10-24 2014-11-25 A10 Networks, Inc. Combining stateless and stateful server load balancing
JP6181216B2 (ja) * 2016-01-22 2017-08-16 株式会社東芝 通信制御装置、通信制御方法、プログラムおよび通信システム

Also Published As

Publication number Publication date
JP2017130159A (ja) 2017-07-27
US20170212810A1 (en) 2017-07-27
US10216590B2 (en) 2019-02-26

Similar Documents

Publication Publication Date Title
JP6564026B2 (ja) マルチテナントアプリケーションサーバ環境におけるトランザクション回復のためのシステムおよび方法
US10120924B2 (en) Quarantine and repair of replicas in a quorum-based data storage system
JP2010510578A (ja) Sasゾーン・グループ・パーミッション・テーブルのバージョン識別子
JP2007095059A (ja) データベースへのクエリ送信方法およびクエリ送信システム
WO2019231527A1 (en) Versioning validation for data transfer between heterogeneous data stores
US20200134043A1 (en) Duplicate Request Checking for File System Interfaces
JP6447258B2 (ja) 管理プログラム、管理方法、および管理装置
CN109407975B (zh) 写数据方法与计算节点以及分布式存储***
WO2015118865A1 (ja) 情報処理装置、情報処理システム及びデータアクセス方法
JP6196389B2 (ja) 分散型ディザスタリカバリファイル同期サーバシステム
JP6181216B2 (ja) 通信制御装置、通信制御方法、プログラムおよび通信システム
JP2018060570A (ja) 単一テーブルから複数テーブルへの参照データセグメント化
WO2021082925A1 (zh) 一种交易处理的方法及装置
WO2024148824A1 (zh) 数据处理方法、***、装置、存储介质及电子设备
JP6737039B2 (ja) データベースシステム、データ処理プログラム、及びデータ処理方法
JP2017169044A (ja) 設定装置、通信システム、通信装置の設定更新方法及びプログラム
US10409504B2 (en) Soft-switch in storage system
US10873626B2 (en) Target driven peer-zoning synchronization
US10185735B2 (en) Distributed database system and a non-transitory computer readable medium
US8549484B2 (en) Configuration information verification apparatus and configuration information verification method
JP2014219868A (ja) データベースの移行方法
CN112395284A (zh) 数据处理方法、装置、数据库***、电子设备及存储介质
JP5685213B2 (ja) 差分レプリケーションシステム、マスターデータベース装置、及びスレーブデータベース装置
JP6435842B2 (ja) ストレージ制御装置及びストレージ制御プログラム
JP5402066B2 (ja) 情報検索システム、情報検索装置、情報検索プログラム及び情報検索方法

Legal Events

Date Code Title Description
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: 20170620

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170719

R151 Written notification of patent or utility model registration

Ref document number: 6181216

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313114

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350