JPWO2013046352A1 - 計算機システム、データ管理方法及びデータ管理プログラム - Google Patents
計算機システム、データ管理方法及びデータ管理プログラム Download PDFInfo
- Publication number
- JPWO2013046352A1 JPWO2013046352A1 JP2013535705A JP2013535705A JPWO2013046352A1 JP WO2013046352 A1 JPWO2013046352 A1 JP WO2013046352A1 JP 2013535705 A JP2013535705 A JP 2013535705A JP 2013535705 A JP2013535705 A JP 2013535705A JP WO2013046352 A1 JPWO2013046352 A1 JP WO2013046352A1
- Authority
- JP
- Japan
- Prior art keywords
- data
- computer
- network
- replication
- computer system
- 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
Links
- 238000000034 method Methods 0.000 title claims description 244
- 238000013523 data management Methods 0.000 title claims description 36
- 230000010076 replication Effects 0.000 claims abstract description 195
- 238000012545 processing Methods 0.000 claims abstract description 73
- 230000015654 memory Effects 0.000 claims abstract description 35
- 230000008569 process Effects 0.000 claims description 162
- 230000005540 biological transmission Effects 0.000 claims description 30
- 238000004891 communication Methods 0.000 claims description 29
- 238000013500 data storage Methods 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims 4
- 230000003362 replicative effect Effects 0.000 claims 3
- 230000004044 response Effects 0.000 abstract description 23
- 238000007726 management method Methods 0.000 description 30
- 238000012790 confirmation Methods 0.000 description 17
- 238000012384 transportation and delivery Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 230000000717 retained effect Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2097—Error 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 maintaining the standby controller/processing unit updated
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
KVSを構成する計算機間の複製処理に対する応答を高速化し、かつ、データの信頼性を確保する計算機システムを実現する。ネットワークを介して複数の計算機が接続され、各計算機が有する記憶領域から構築されたデータベースを用いて業務を実行する計算機システムであって、計算機システムは、複数のデータを含むデータセットを管理する第1の計算機を含み、第1の計算機は、他の前記計算機によって管理されるデータセットに含まれるデータの複製データを格納し、第1の計算機は新たなデータの格納(書き込み及び/又は上書き)要求を受け付けた場合に、データをメモリに格納し、データを複製して複製データを生成し、生成された複製データを他の計算機に送信し、複製データがネットワークに送信されたか否かを判定し、複製データがネットワークに送信されたと判定された場合、データを用いて業務を実行する。
Description
本発明は、複数の計算機から構成される分散データベースに関する。特に、分散配置されたデータの複製処理に関する。
近年、Webを用いたアプリケーションを実行する計算システムにおいてデータ量が爆発的に増大しており、KVS(Key Value Store)等のNoSQL(Not only SQL)データベースを有する計算機システムが普及している。現在、このようなシステムは様々なエンタープライズシステムに導入されており、今後のさらなる活用が見込まれている。
KVSでは、データに高速にアクセス可能な揮発性の記憶媒体、例えば、メモリにデータが格納される構成や、データ格納の永続性に優れる不揮発性の記録媒体、例えば、SSD(Sorid State Disk)やHDD等にデータを格納する構成や、これらを併用する構成等の種々の構成が採られている。併用する構成では、高速アクセス性重視や格納性重視等の種々の運用方針によって、複数台の計算機のメモリを仮想的に統合して構成されるメモリストア及び1台以上の計算機の不揮発性記憶媒体から構成されるディスクストアのバランスを種々変更可能となっている。
メモリストア及びディスクストアには、データ(バリュー)と、データの識別子(キー)とをペアとしたデータが格納される。
また、KVSでは、複数のサーバからクラスタを構成して、そのクラスタに含まれるサーバにデータを分散して配置することによって並列処理を実現している。具体的には、キーの範囲(キーレンジ)毎に、各サーバにデータが格納される。各サーバは、担当するキーレンジに含まれるデータのマスタとして処理を実行する。すなわち、所定のキーを含む読み出し要求に対して、そのキーが含まれるキーレンジのデータを担当するサーバが、キーに対応するデータを読み出すこととなる。
したがって、KVSでは、スケールアウトによって並列処理の性能を向上させることができる。
なお、クラスタはサーバをリング状に接続した構成となっており、各サーバには一意な識別番号が割り当てられる。また、各サーバに対するデータの配置方法は、Consistent Hashing法、Range法及びList法等の種々の方法が用いられる。
代表してConsistent Hashing法について説明する。Consistent Hashing法は、まず、キーに対するハッシュ値を算出し、算出したハッシュ値をサーバの台数で除算した余りを算出する。その余りがサーバの識別番号に一致するサーバにデータが配置されるようになっている。
さて、KVSでは、データの信頼性を確保する要請から、クラスタを構成するサーバには他のサーバが管理するデータの複製データが格納される構成を採るものが知られている。すなわち、各々のサーバは、所定のキーレンジに含まれるデータを管理するマスタであると同時に、他のサーバが管理するデータの複製データを保持するスレーブでもある。これによって、サーバに障害が発生した場合であっても、その障害サーバがマスタとして管理するデータを、スレーブである他のサーバが、自己が保持する複製データの格上げを行うことでマスタとなり、処理を継続することができる。
なお、以下、マスタであるサーバをマスタサーバと記載し、スレーブであるサーバをスレーブサーバとも記載する。
前述したようにKVSを構成するサーバには、管理サーバのような特別なサーバが存在しないため単一点障害が存在しない。すなわち、任意のサーバに障害が発生した場合であっても他のサーバが処理を継続できるため、計算機システムが停止することがない。したがって、KVSは、耐障害性も確保される。
なお、スレーブサーバの台数、すなわち、複製データの格納先となるサーバの台数は、計算機システムによって任意に設定することができる。
スレーブサーバへ複製データを格納するための複製処理(レプリケーション)は、処理に掛かるコストが高い。すなわち、データの信頼性を確保するために、全てのスレーブサーバに複製データが格納されるのを待つと、処理の待ち時間が発生し、リクエストに対する処理の高速化を実現できない。したがって、複製処理は、データの読み出し処理などのリクエストとは非同期に実行されることが推奨されている。
しかし、複製処理の完了を待たずに処理を継続すると、例えば、複製処理の完了前にマスタサーバに障害が発生した場合にデータが失われる危険性があり、データの信頼性を確保することができない。
従来の複製処理では、例えば以下のような方式が知られている。
第1の方式は、以下のような方式である。格納処理のリクエストをクライアント等から受信した場合に、マスタサーバがメモリストア又はディスクストアにデータを格納する。その後、マスタサーバは、(スレーブサーバへの複製処理要求を行わずに)複製処理の完了を格納処理要求先のクライアント等に通知する。その後、スレーブサーバに、書きこみ要求されているデータの複製処理を要求する(非同期による複製処理)。第1の方式では、リクエストを高速に処理できるが、スレーブサーバへの複製データの格納処理は完了していないためデータの信頼性が低い。
第2の方式は、以下のような方式である。格納処理のリクエストを受信した場合に、マスタサーバがメモリストア又はディスクストアにデータを格納する。マスタサーバは、1つのスレーブサーバに複製データを送信する。マスタサーバは、1つのスレーブサーバから複製データの格納処理の完了通知を受信すると、複製処理の完了を要求先の計算機に通知する(同期による複製処理)。第2の方式では、1つのスレーブサーバに複製データが格納されているため第1の方式と比べてデータの信頼性は高い。しかし、スレーブサーバからの応答を待つためリクエストに対する処理性能は第1の方式より低い。また、第2の方式では、二重障害が発生した場合にデータが失われる危険性がある。
第3の方式は、以下のような方式である。クライアント装置からデータの格納処理のリクエストを受信した場合に、マスタサーバがメモリストア又はディスクストアにデータを格納する。マスタサーバは、全てのスレーブサーバに複製データを送信する。マスタサーバは、全てのスレーブサーバから複製データの格納処理の完了通知を受信すると、複製処理の完了を要求先の計算機に通知する(同期による複製処理)。第3の方式では、全てのスレーブサーバに複製データが格納されているためデータの信頼性が最も高い。しかし、全てのスレーブサーバからの応答を待つためリクエストに対する処理性は最も低い。
なお、前述した方式以外の方式も知られている。
前述したように、データの信頼性とリクエスト処理の高速化とはトレードオフの関係にある。
データの信頼性とリクエスト処理の高速化とを両立させる方法として、さまざまな方法が考えられている(例えば、特許文献1参照)。特許文献1では、ルートノードのデータを複製する子ノードに鮮度閾値を設定し、鮮度閾値に基づいて更新期間を決定し、各子ノードのデータを更新するようになっている。
しかし、特許文献1に記載の発明では、ノードからの応答を待つという処理が含まれるため処理の高速化が実現できない。
本発明は、複数のサーバがネットワークを介して接続された計算機システムにおいて、スレーブサーバとの通信を行うことなく複製処理の完了を判定し、データの信頼性及びリクエスト処理の高速化を両立可能なNoSQL(Not only SQL)データベースを有する計算機システム及びデータの管理方法を提供することを目的とする。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、ネットワークを介して複数の計算機が接続され、前記各計算機が有する記憶領域から構築されたデータベースを用いて業務を実行する計算機システムであって、前記各計算機は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサと接続され、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、前記計算機システムは、複数のデータを含むデータセットを管理する第1の計算機を含み、前記第1の計算機は、他の前記計算機によって管理されるデータセットに含まれるデータの複製データを格納し、前記第1の計算機は新たな第1データの格納要求を受け付けた場合に、前記第1データを前記メモリに格納し、前記第1データを複製して、第1複製データを生成し、前記生成された第1複製データを前記他の計算機に送信し、前記第1複製データが前記ネットワークに送信されたか否かを判定し、前記第1複製データが前記ネットワークに送信されたと判定された場合、前記第1データを用いて業務を実行することを特徴とする。
本発明によれば、計算機は、複製データがネットワークに送信されたことを検出すると、格納されたデータを用いて業務を実行できる。すなわち、他の計算機への複製データの格納完了を待たず業務を実行できるため、高速に複製処理を完了できる。また、複製データがネットワークに送信されたことを検出することによって、計算機と、ネットワークとに同一データが複数存在することが保証されデータの信頼性を高めることができる。
以下、本発明を図面とあわせて詳細に説明する。
[第1の実施形態]
図1は、本発明の第1の実施形態における計算機システムの構成を示すブロック図である。
計算機システムは、複数のサーバ100、クライアント装置200及びネットワーク300から構成される。各サーバ100間又はサーバ100とクライアント装置200との間は、ネットワーク300を介して互いに接続される。
ネットワーク300は、LAN、WAN及びSAN等の有線・無線の種々の構成が考えられる。本実施形態は、サーバ100a、100b、100n及びクライアント装置200が通信できるものであればどのようなネットワークであってもよい。なお、ネットワーク300には、複数のネットワーク装置(図示省略)が含まれる。ネットワーク装置は、例えば、スイッチ及びゲートウェイなどが含まれる。
本実施形態では、複数のサーバ100からクラスタを構成し、それらサーバ100が備える記憶領域上にNoSQLデータベースが構築される。本実施形態ではNoSQLデータベースとして、KVSを用いるものとする。
サーバ100a、100b及び100nは、KVSを構成する計算機である。クライアント装置200からの要求にしたがって、各種処理を実行する。なお、サーバ100a、100b及び100nの構成は同一であるものとする。
サーバ100aは、キーレンジ毎に管理するデータが配置されており、所定のキーレンジに含まれるデータを管理するマスタサーバとして稼動する。また、サーバ100aは、他のサーバ100b及び/又はサーバ100nが管理するキーレンジに含まれるデータの複製データを保持しており、スレーブサーバとして稼動する。同様に、サーバ100b及び100nのそれぞれも、自己のキーレンジに含まれるデータを管理するマスタサーバとして機能し、他のサーバのキーレンジに含まれるデータの複製を保持するようになっている。
また、本実施形態のクラスタは、計算機システム全体の管理を行う管理サーバとなる唯一のサーバが存在せず、全てのサーバ100a、100b及び100nを同等のサーバとして扱う構成を採る。これによって、1つのサーバに障害が発生しても、他のスレーブサーバが新たなマスタサーバとして処理を継続することができるため、計算機システムを停止することなく処理を継続することができる。以下の説明では、簡単のためにマスタサーバがサーバ100a、スレーブサーバがサーバ100b及び100nである場合について説明するものとする。
サーバ100aは、データ管理部110、ディスクストア120、メモリストア130及び複製制御部140を有する。
データ管理部110は、サーバ100aが管理するデータに対する各種処理を制御する。データ管理部110は、クライアント装置200からの要求を受け付け、その要求に基づいて、データの読み出しや書き込み等の処理を制御する。なお、「書き込み」は、データの「上書き」であってもよい。以下、「書き込み」や「上書き」を総称して「格納」という場合がある。
ディスクストア120及びメモリストア130は、KVSを構成するNoSQLデータベースである。ディスクストア120は、HDD等の記憶媒体上に構成されたデータベースである。メモリストア130は、メモリ等の記憶媒体上に構成されたデータベースである。
本実施形態では、ディスクストア120及びメモリストア130には、同一形式のデータが格納される。ディスクストア120及びメモリストア130に格納されるデータ形式については、図3を用いて後述する。
複製制御部140は、サーバ100aに格納されたデータを他のサーバ100b及びnに格納するための複製処理(レプリケーション)を制御する。複製制御部140は、データ送信部150、送達確認部160及び複製管理テーブル170Aを含む。
データ送信部150は、複製データをスレーブサーバであるサーバ100b及びnに送信する。本実施形態では、データ送信部150は、同報通知(マルチキャスト通信)を用いて、複製データを送信する。
例えば、UDPマルチキャストでは、所定のグループに割り当てられたマルチキャストアドレス宛にデータを送信することによって、所定のグループに属する全てのサーバにデータが送信される。なお、本発明は、同報通知を実現するためのプロトコルに限定されない。
送達確認部160は、複製処理が完了したか否かを判定する。複製管理テーブル170Aは、送達確認部160が複製データの複製処理を管理するための情報を格納する。複製管理テーブル170Aの詳細については、図4を用いて後述する。
クライアント装置200は、プロセッサ(図示省略)、メモリ(図示省略)及びネットワークインタフェース(図示省略)等を備える計算機であって、KVSに対する各種処理の実行を要求する。クライアント装置200は、UAP210及びデータ送受信部220を有する。
UAP210は、各種機能を提供するアプリケーションであって、そのUAP210によって各種処理の要求がサーバ100に送信される。データ送受信部220は、UAP210から出力された要求をサーバ100aに送信し、また、サーバ100aからの処理結果を受信する。
なお、図1では、クライアント装置200は1つであるが、複数あってもよい。
図2は、本発明の第1の実施形態におけるサーバ100aのハードウェア構成を説明するブロック図である。
サーバ100aは、プロセッサ410、主記憶装置420、二次記憶装置430及びネットワークインタフェース440を備え、各構成は内部バス450等によって接続される。
プロセッサ410は、主記憶装置420に格納されるプログラムを実行する。プロセッサ410がプログラムを実行することによって、サーバ100が有する機能を実現することができる。以下、各構成を主語に処理を説明する場合には、プロセッサ410によって、プログラムが実行されていることを示すものとする。
主記憶装置420は、プロセッサ410が実行するプログラム及びそのプログラムの実行に必要な情報を格納する。主記憶装置420は、例えば、メモリ等が考えられる。本実施形態の主記憶装置420上には、データ管理部110、メモリストア130及び複製制御部140が構築される。
なお、本実施形態では、データ管理部110及び複製制御部140をプログラムとして記載しているが、専用のハードウェアを用いて同一の機能を実現してもよい。
二次記憶装置430は、各種情報を格納する。二次記憶装置430は、例えば、HDD又はSSD等が考えられる。本実施形態の二次記憶装置430上にはディスクストア120が構築される。
ネットワークインタフェース440は、ネットワーク300と接続するためのインタフェースである。
なお、クライアント装置200も同様の構成を含む。すなわち、クライアント装置200は、プロセッサ(図示省略)、主記憶装置(図示省略)、二次記憶装置(図示省略)及びネットワークインタフェース(図示省略)を備える。また、クライアント装置200は、キーボード及びディスプレイなどの入出力装置(図示省略)を備えていてもよい。
図3は、本発明の第1の実施形態におけるディスクストア120及びメモリストア130に格納されるデータの形式を示す説明図である。
本実施形態では、ディスクストア120及びメモリストア130には、データ管理情報500が格納される。データ管理情報500には、キーとバリューとがペアとなったデータが複数含まれる。以下、キーとバリューとがペアとなったデータをキーバリュー型データとも記載する。
データ管理情報500は、Key501及びValue502を含む。Key501は、データを識別するための識別子(キー)を格納する。Value502は、実際のデータ(バリュー)を格納する。
クライアント装置200を操作するユーザは、Key501を指定してKVSにデータを保存し、また、Key501を指定してKVSから所望のデータを取得することができる。
各サーバ100a等は、所定のKey501の範囲(キーレンジ)毎にキーバリュー型データを管理する。すなわち、キーレンジ毎にキーバリュー型データが各サーバに分散して配置される。サーバ100a等は、指定されたキーレンジのデータのマスタサーバとして処理を実行することとなる。これによって、大量のデータを並列的かつ高速に処理できる。
また、各サーバ100は、他のサーバ100が管理するキーバリュー型データの複製データを保持する。すなわち、サーバ100は、他のサーバ100のスレーブサーバとなっている。これによって、マスタサーバ100に障害が発生しても、スレーブサーバ100が新たなマスタサーバ100として処理を継続することができる。
図4は、本発明の第1の実施形態における複製管理テーブル170Aの一例を示す説明図である。
複製管理テーブル170Aは、ID601、Key602及びValue603を含む。
ID601は、クライアント装置200から送信された要求を識別するための識別子を格納する。複製制御部140は、ID601によって、どの格納要求に対する複製処理を実行しているかを把握できる。
Key602は、データを識別するためのキーの情報を格納する。Value603は、書き込まれるデータを格納する。なお、Key602及びValue603は、それぞれ、Key501及びValue502と同一のものである。
図5は、本発明の第1の実施形態におけるサーバ100aが実行する処理を説明するフローチャートである。
サーバ100aは、クライアント装置200からデータの格納要求を受信する(ステップS701)。具体的には、データ管理部110がクライアント装置200からの格納要求を受信する。なお、格納要求には、キー及びデータが含まれる。
サーバ100aは、格納要求に含まれるキーとデータとを1つにしたキーバリュー型データをメモリストア130に格納する(ステップS702)。具体的には、データ管理部110がメモリストア130にキーバリュー型データを格納する。
サーバ100aは、格納したキーバリュー型データの複製処理を実行する(ステップS703)。具体的には、以下のような処理が実行される。
データ管理部110が複製制御部140を呼び出して、複製処理の実行を指示する。呼び出された複製制御部140は、格納されたキーバリュー型データの複製データを生成する。
複製制御部140は、生成された複製データを、同報通知を用いてスレーブサーバ100に送信する。さらに、複製制御部140は、複製データの格納完了の判定を実行する。すなわち、複製処理が完了したか否かが判定される。
なお、複製処理の詳細については、図6〜図8を用いて後述する。
サーバ100は、格納要求に対する結果をクライアント装置200に通知し(ステップS704)、処理を終了する。
従来の複製データの格納処理では、マスタサーバ100aは、スレーブサーバ100b又は100nから複製データの格納完了の通知を受けた後に、クライアント装置200に格納要求の結果を通知していたため遅延が生じていた。したがって、スレーブサーバ100b又は100nから複製データの格納完了の通知があるまでは、計算機システムは、格納されたキーバリュー型データを用いて業務を実行することができなかった。すなわち、格納処理後の、マスタサーバ100aに格納されたキーバリュー型データに対する書き込み処理、読み出し処理及び更新処理等を実行できなかった。
本実施形態は、マスタサーバ100aが、スレーブサーバ100b又は100nからの応答を受けることなく、格納要求の結果を通知できる点に特徴を有する。すなわち、マスタサーバ100aは、スレーブサーバ100b又は100nからの応答がなくとも、複製処理が完了したものと判定する。
これによって、マスタサーバ100aに格納されたキーバリュー型データに対する書き込み処理、読み出し処理及び更新処理等を、その分早期に実行することができる。すなわち、マスタサーバ100aは、格納されたキーバリュー型データに対する処理を受け付けることができる。
第1の実施形態では、データの信頼性を確保するため、同報通知を用いて複数のスレーブサーバ100に複製データが送信される。また、第1の実施形態では、ネットワーク300の信頼性に基づいて複製処理が完了したか否かが判定される。具体的な判定処理として、3つの方法がある。
第1の方法では、マスタサーバ100aからネットワーク300に対して複製データが送信された場合に、複製処理が完了したと判定する。
これによって、スレーブサーバ100b又は100nからの複製処理完了の応答を待つ必要がなくなる。また、マスタサーバ100aからの複製データの出力によって、ネットワーク300上に複製データが存在するため、送信後にマスタサーバ100aに障害が発生しても、出力された複製データが、やがてスレーブサーバ100b又は100nに受信され、複製データが格納されたスレーブサーバ100b又は100nが処理を継続することができる。さらに、ネットワーク300上の複製データが各スレーブサーバ100に反映されるため、データの信頼性を確保できる。
第2の方法では、マスタサーバ100aが、ネットワーク300上のネットワーク機器から、複製データを受信した旨の応答を受けた場合に、複製処理が完了したと判定する。
これによって、スレーブサーバ100からの応答を待つ必要がなくなる。また、ネットワーク300上のネットワーク機器からの複製データの受信を確認することによって、ネットワーク300を介して各スレーブサーバ100に複製データが送信されたことを保証できる。すなわち、第1の方法よりデータの信頼性が向上する。
第3の方法では、マスタサーバ100が周期的にネットワーク300の状態を確認し、ネットワーク300の状態が正常である場合に、複製処理が完了したと判定する。
これによって、スレーブサーバ100からの応答を待つ必要がなくなる。また、ネットワーク300の状態を確認することによって、ネットワーク300から各スレーブサーバ100に複製データが送信されたことを保証できる。すなわち、第1の方法よりデータの信頼性が向上する。
以下、各方法の詳細について説明する。
図6は、本発明の第1の実施形態における複製制御部140が実行する処理を説明するフローチャートである。図6は、第1の方法を適用した複製処理である。
複製制御部140は、データ管理部110から呼び出されると、格納されたキーバリュー型データの複製データを生成する(ステップS801)。
複製制御部140は、同報通知を用いて生成された複製データを各スレーブサーバ100b及び/又は100nに送信し、処理を終了する(ステップS802)。具体的には、データ送信部150が、マルチキャストアドレス宛に複製データを送信する。
なお、複製制御部140は、ネットワーク300への複製データの送信を検出すると、複製処理が完了したと判定する。
したがって、第1の方法ではスレーブサーバ100b及び/又は100nからの複製処理完了の応答を受ける必要がないため業務処理に遅延を生じさせることがない。また、マスタサーバ100aに障害が発生しても、その前にネットワーク300に複製データが出力されているため、その複製データを受信したスレーブサーバ100b及び100nが業務処理を継続することができる。すなわち、計算機システム内の異なる地点に同一のデータが複数存在することによってデータの信頼性を確保できる。
さらに、第1の方法では、ネットワーク300に複製データを送信(出力)することをもって複製処理完了と判定するため、従来の非同期による複製処理よりもデータの信頼性の向上が期待できる。
図7は、本発明の第1の実施形態における複製制御部140が実行する処理を説明するフローチャートである。図7は、第2の方法を適用した複製処理である。
複製制御部140は、データ管理部110から呼び出されると、格納されたキーバリュー型データの複製データを生成し(ステップS901)、複製管理テーブル170Aに複製データに関するエントリを登録する(ステップS902)。
複製制御部140は、同報通知を用いて生成された複製データを送信する(ステップS903)。具体的には、データ送信部150が、マルチキャストアドレス宛に複製データを送信する。
複製制御部140は、ネットワーク300に含まれるネットワーク装置から、データ送信部150から送信した、複製データを含む同報通知を受信したか否かを判定する(ステップS904)。具体的には、送達確認部160が、一定時間内に、ネットワーク300に含まれるネットワーク装置から複製データを含む同報通知を受信し、その同報通知に含まれるID601(図4)に対応するエントリが、複製管理テーブル170Aに登録されているか否かを判定する。
送達確認部160が、一定時間内に、ネットワーク装置から複製データを含む同報通知を受信した場合、ネットワーク300の状態が正常であることを示す。これによって、正常な状態のネットワーク300を介してスレーブサーバ100へ複製データが送信されたことを保証できる。
一方、送達確認部160が、一定時間内に、ネットワーク装置から複製データを含む同報通知を受信できない場合、ネットワーク300に何らかの障害が発生していることを示す。したがって、スレーブサーバ100に複製データが送信されていない可能性が高い。
なお、パケットの受信を待つ時間は、予め設定されているものとする。ただし、任意の時間に変更することも可能である。待ち時間は、例えば、スレーブサーバ100b及び/又は100nからの複製処理完了の応答を受信する時間よりも短い時間とするのが好ましい。
一定時間内に複製データを含む同報通知を受信できた場合、複製制御部140は、複製処理が成功した旨をデータ管理部110に通知し(ステップS905)、処理を終了する。すなわち、複製処理が完了したと判定される。
一定時間内に複製データを含む同報通知を受信できない場合、複製制御部140は、複製処理が失敗した旨をデータ管理部110に通知する(ステップS906)。さらに、複製制御部140は、メモリストア130に格納されたデータをディスクストア120に格納し(ステップS907)、処理を終了する。
これによって、サーバ100の電源等が切れた場合であっても、最新のデータが保持されるため、障害耐性を確保することができる。
なお、データ送信部150は、同報通知を用いて複製データを送信する場合、自分宛に複製データが送信(ループバック)されないようにする。また、ループバックによって複製データが自分宛に送信された場合に、当該通知を排除するように制御してもよい。例えば、通知に含まれる宛先アドレスを参照することによってループバックによる通知であるか否かが判定できる。
前述のように制御する理由は、必ず、ネットワーク300に含まれるネットワーク装置からの同報通知を受信するためである。すなわち、送達確認部160が、ループバックによって自分宛に送信された通知を、ネットワーク300から受信した同報通知であると誤って認識することを回避するためである。
また、ステップS906又はステップS909の処理が実行された後に、複製管理テーブル170Aから対応するエントリを削除してもよい。具体的には、送達確認部160が、受信したパケットを解析して、複製データのキー及びバリューを取得し、複製管理テーブル170Aを参照して取得されたキー及びバリューに一致するエントリを検索する。送達確認部160は、一致したエントリを複製管理テーブル170Aから削除する。
第2の方法によれば、ネットワーク装置からの応答に基づいて複製処理の完了を判定するため、スレーブサーバ100b及び/又は100nから複製処理完了等の応答を受ける場合と比較して、処理の高速化が可能となる。すなわち、従来のような同期による複製処理を用いる場合より、リクエスト処理の速度が向上する。また、第2の方法では、ネットワーク300の状態を確認することによって、正常な状態のネットワーク300を介して複製データが確実に送信されることを保証できる。したがって、第1の方法よりデータの信頼性が向上する。
図8は、本発明の第1の実施形態における複製制御部140が実行する処理を説明するフローチャートである。図8は、第3の方法を適用した複製処理である。
複製制御部140は、データ管理部110から呼び出されると、格納キーバリュー型データの複製データを生成する(ステップS1001)。
複製制御部140は、同報通知を用いて生成された複製データを送信する(ステップS1002)。具体的には、データ送信部150が、マルチキャストアドレス宛に複製データを送信する。
複製制御部140は、スレーブサーバ100b及び100nに所定のパケットを送信し(ステップS1003)、そのパケットに対する応答を受信したか否かを判定する(ステップS1004)。具体的には、送達確認部160が、周期的にPingコマンドを実行してスレーブサーバ100b及び100nにICMPパケットを送信し、そのパケットに対する応答を待つ。
なお、ステップS1003の処理は、複製処理とは独立した処理として実行していてもよい。すなわち、送達確認部160が、周期的に、スレーブサーバ100b及び100nとの通信状態を確認し、複製処理の実行時に通信状態の確認結果を参照すればよい。
なお、通信状態の確認処理の周期は、予め設定されているものとする。ただし、任意の周期に変更することが可能である。
スレーブサーバ100b及び100nからパケットの応答を受信できた場合、ネットワーク300の状態が正常であることを示し、かつ、スレーブサーバ100との通信も正常であることを示す。これによって、正常な状態のネットワーク300を介してスレーブサーバ100b及び100nに複製データが送信されたことを保証できる。
一方、スレーブサーバ100b及び100nからパケットの応答を受信できない場合、ネットワーク300に何らかの障害が発生しているため、複製データがスレーブサーバ100b及びnに送信されてない可能性がある。
所定のパケットの応答を受信できた場合、複製制御部140は、複製処理が成功した旨をデータ管理部110に通知し(ステップS1005)、処理を終了する。すなわち、複製処理が完了したと判定される。
所定のパケットの応答を受信できない場合、複製制御部140は、複製処理が失敗した旨をデータ管理部110に通知する(ステップS1006)。さらに、複製制御部140は、メモリストア130に格納されたデータをディスクストア120に格納し(ステップS1007)、処理を終了する。
これによって、サーバ100の電源等が切れた場合であっても、最新のデータが保持されるため、対障害耐性を確保することができる。
第3の方法によれば、スレーブサーバ100との通信状態に基づいて複製処理の完了を判定する。また、通信状態の確認方法に用いるパケットに対する応答は、複製データの格納完了の通知より高速であるため、従来の第2の方式より処理速度が向上する。また、第3の方法では、ネットワーク300を介したスレーブサーバ100との通信を確認しているため、第2の方法よりデータの信頼性が向上する。
なお、上述の第3の方法では、マスタサーバ100aが、複製データの同報通知を行った後にPingをスレーブサーバ100b等に送信する例について述べたが本発明はこれに限定されない。例えば、マスタサーバ100aが、同報通知を行う前(直前等)にスレーブサーバ100b等にPingを送信し、その応答結果が正常を示す場合には、送達管理部160がデータ管理部110に複製処理の成功を通知し、同時に又はその後に、複製データの同報通知を行うようにしてもよい。複製データのデータサイズがPingに利用するICMPパケットのデータサイズより大きい場合、送信負荷がその分軽減され、データ信頼性及びリクエスト処理性能の更なる向上を期待することができる。
以上述べたように、第1の方法、第2の方法及び第3の方法では、同報通知によって複製データを送信しているが、本発明はこれに限定されない。例えば、ユニキャスト通信などを用いてもよい。ユニキャスト通信を用いて複製データが送信される場合に、第1の方法、第2の方法及び第3の方法を適用することによって、従来の第2の方式及び第3の方式より処理速度が向上する。
第1の実施形態によれば、マスタサーバ100は、ネットワーク300の状態に基づいて、複製処理が成功したか否かを判定するため、従来の複製処理に比べ高速に処理できる。したがって、従来の計算機システムより処理性能を向上させ、かつ、データの信頼性を確保することができる。
[第2の実施形態]
第2の実施形態では、ネットワーク上で稼動するサービス及びプロセスの状態を確認することによってネットワークの状態を確認している点が異なる。以下、第1の実施形態との差異を中心に説明する。
図9は、本発明の第2の実施形態における計算機システムの構成を示すブロック図である。
第2の実施形態における計算機システムは、新たにNTPサーバ1100を含む。また、サーバ100上では、NTPサーバプロセス1200が稼動している。他の構成については第1の実施形態と同一である。
NTPサーバ1100は、ネットワーク300に接続された計算機の時刻を同期するための処理を実行する。なお、NTPサーバ1100が実行する処理は、公知の技術であるため説明を省略する。また、NTPサーバ1100はサーバ100a等と同一の物理構成であるため説明を省略する。
NTPサーバプロセス1200は、NTPサーバ1100が管理する時刻と同期するためのプロセスである。
図10は、本発明の第2の実施形態における複製制御部140が実行する処理を説明するフローチャートである。
複製制御部140は、データ管理部110から呼び出されると、格納されたキーバリュー型データの複製データを生成する(ステップS1301)。
複製制御部140は、同報通知を用いて生成された複製データを送信する(ステップS1302)。具体的には、データ送信部150が、マルチキャストアドレス宛に複製データを送信する。
複製制御部140は、NTPサーバプロセス1200の稼働状態を確認し(ステップS1303)、NTPサーバプロセス1200が正常に稼動しているか否かを判定する(ステップS1304)。具体的には、送達確認部160が、周期的にNTPサーバプロセス1200の稼動状態を確認する。
なお、ステップS1303の処理は、複製処理とは独立した処理であってもよい。すなわち、送達確認部160が、周期的に、NTPサーバプロセス1200の稼動状態を確認し、複製処理の実行時に確認結果を参照すればよい。NTPサーバ1100との通信に異常が発生した場合には、NTPサーバプロセス1200に障害が発生するため、これによってネットワーク300の異常を検出できる。
なお、プロセスの稼動状態を確認する処理の周期は、予め設定されているものとする。ただし、任意の周期に変更することが可能である。
NTPサーバプロセス1200が正常に稼動している場合、ネットワーク300の状態が正常であることを示す。これによって、正常な状態のネットワーク300を介してスレーブサーバ100に複製データが送信されたことを保証できる。
一方、NTPサーバプロセス1200が正常に稼動していない場合、ネットワーク300に何らかの障害が発生しているために、複製データがスレーブサーバ100に送信されていない可能性がある。
NTPサーバプロセス1200が正常に稼動している場合、複製制御部140は、複製処理が成功した旨をデータ管理部110に通知し(ステップS1305)、処理を終了する。
NTPサーバプロセス1200が正常に稼動していない場合、複製制御部140は、複製処理が失敗した旨をデータ管理部110に通知する(ステップS1306)。さらに、複製制御部140は、メモリストア130に格納されたデータをディスクストア120に格納し(ステップS1307)、処理を終了する。
これによって、サーバ100の電源等が切れた場合であっても、最新のデータが保持されるためデータの信頼性を確保できる。
第2の実施形態では、NTPサーバ1100を用いてネットワーク300の状態を確認したが、本発明はこれに限定されない。すなわち、ネットワーク300を介して提供されるサービスであれば適用することができる。
第2の実施形態によれば、マスタサーバ100aが、ネットワーク上で稼動するプロセスに基づいてネットワーク300の状態を判定するため、ネットワーク300から直接情報を取得する必要がないため高速に処理が可能となる。したがって、従来の計算機システムより性能を向上させることができる。
[第3の実施形態]
第3の実施形態では、データの信頼性をより向上させるため、サーバ100aが複製データの再送信処理を実行する。再送信処理は、複製処理が終了した後に実行される処理であり、複製処理の遅延には影響しない。すなわち、再送信処理は、複製処理とは独立した処理として実行される。以下第1の実施形態との差異を中心に説明する。
図11は、本発明の第3の実施形態における計算機システムの構成を示すブロック図である。
第3の実施形態における計算機システムは、サーバ100aが有する複製制御部140に、再送制御部1400を新たな構成として含む点が異なる。複製制御部140は、再送制御部1400を構成に含むことによって、自己がスレーブサーバである場合には、ネットワーク300を介してマスタサーバから送信された複製データの格納が完了したときマスタサーバに格納完了通知を送信する機能と、自己がマスタサーバである場合には、スレーブサーバに複製データが格納されているか否かを管理し、複製データが格納されていないときに、複製データを再度スレーブサーバに送信する機能(再送信処理機能)とを、さらに実行することができる。複製制御部140は、再送信処理を周期的に実行する。また、第3の実施形態の計算機システムは、第1の実施形態の複製管理テーブル170Aに管理項目を追加した複製管理テーブル170Bを有する点も第1の実施形態と異なる。他の構成については第1の実施形態と同一である。
なお、本実施形態では、2つのスレーブサーバ100b及び100nに複製データが送信される場合を例に説明する。
図12は、本発明の第3の実施形態における複製管理テーブル170Bの一例を示す説明図である。
複製管理テーブル170Bは、新たに、主複製先1501及び副複製先1502の2つの管理項目を含む。主複製先1501は、複製データの格納先としての優先順位が最も高いスレーブサーバ100bに対する複製処理の結果を格納する。副複製先1502は、複製データの格納先としての優先順位が2番目に高いスレーブサーバ100nに対する複製処理の結果を格納する。複製処理の結果は、複製処理が成功したことを示す「success」、又は、複製処理が失敗したことを示す「fail」のいずれかが格納されるようになっている。
KVSでは、スレーブサーバ100b及び100nに優先順位が決められている。例えば、スレーブサーバ100bが、マスタとして管理するキーレンジと、マスタサーバ100aが管理するキーレンジとが近い順に優先順位を決定する方法が考えられる。なお、スレーブサーバ100b及び100nの優先順位の決定方法は公知の技術であるため詳細な説明は省略する。
本実施形態では、2つのスレーブサーバ100b及び100nに複製データが送信されるため、優先順位が高い2つのスレーブサーバ100b及び100nのみを対象としている。しかし、本発明はこれに限定されず、2つ以上のスレーブサーバに複製データが送信されてもよい。
ここで、再送制御部1400を含んだ複製制御部140の処理について説明する。
スレーブサーバ100b及び100nにおける複製制御部140は、マスタサーバ100aから送信された複製データの受信を検出し、マスタサーバ100aに対して複製処理が成功した旨の通知を送信する。なお、この通知には、スレーブサーバ100b又は100nの識別子及び複製データの識別子が含まれる。
また、マスタサーバ100aにおける複製制御部140は、スレーブサーバ100b又は100nから複製処理が成功した旨の通知を受信すると、その通知に含まれるスレーブサーバ100b又は100nの識別子及び複製データの識別子を取得する。
複製制御部140は、取得された複製データの識別子に基づいて、複製管理テーブル170Bから対応するエントリを検索する。さらに、複製制御部140は、スレーブサーバ100bや100nの識別子から複製先のスレーブサーバ100を特定し、対応するエントリの主複製先1501及び副複製先1502に「success」を格納する。
なお、複製制御部140は、周期的に複製管理テーブル170Bを参照し、一定期間内に複製処理の成功した旨の通知が受信できないエントリについては、「fail」を格納する。
図13は、本発明の第3の実施形態におけるマスタサーバ100aの複製制御部140が実行する処理を説明するフローチャートである。
複製制御部140は、複製管理テーブル170Bを参照し、主複製先のスレーブサーバ100bに対する複製処理が成功しているか否かを判定する(ステップS1601、ステップS1602)。
具体的には、再送制御部1400が、複製管理テーブル170Bを参照し、全てのエントリの主複製先1501が「success」であるか否かを判定する。主複製先1501が「fail」であるエントリが少なくとも1つ以上ある場合、主複製先のスレーブサーバに対する複製処理が失敗していると判定される。
主複製先のスレーブサーバ100bに対する複製処理が成功していると判定された場合、再送制御部1400は、処理を終了する。
主複製先のスレーブサーバ100bに対する複製処理が失敗していると判定された場合、複製制御部140は、複製処理を再度実行する(ステップS1603)。その後、複製制御部140は、ステップS1601に戻り同様の処理を実行する。複製処理は、第1の実施形態及び第2の実施形態のいずれの方法も用いてもよい。
なお、複製制御部140は、副複製先のスレーブサーバ100に対しても同様の判定処理を実行してもよい。すなわち、再送信処理において、管理する複製先の数の増加に応じて、データの信頼性が向上する。
第3の実施形態によれば、スレーブサーバ100b及び/又は100nに複製データが送信されていないことを検出し、スレーブサーバ100b及び/又は100nに再度複製データを送信できるため、データの信頼性をより高くできる。
[第4の実施形態]
第4の実施形態では、第3の実施形態を拡張し、さらに、データの信頼性を向上させるため、複数回、複製データを含む同報通知を送信することを特徴の1つとする。以下第1の実施形態との差異を中心に説明する。
なお、計算機システムの構成は、第3の実施形態とほぼ同一であるが、再送制御部1400に、スレーブサーバに対する同報通知の送信回数を管理する機能を追加した点及びデータ送信分150が、この送信回数に応じて同報通知を実行する点が異なる。なお、他の構成については、第3の実施形態と同一であるため説明を省略する。
図14は、本発明の第4の実施形態におけるマスタサーバ100aが実行する処理を説明するフローチャートである。同図は、図4に示した第1実施形態の計算機システムにおける処理に、ステップS1701の処理を追加したものである。
第4の実施形態では、ステップ702の後に、マスタサーバ100aが、送信回数算出処理を実行する(ステップS1701)。具体的には、再送制御部1400が、同報通知の送信回数を算出する。具体的な処理については、図15を用いて後述する。
これによって、データ複製処理では、算出された送信回数分の同報通知が送信されることとなる。
第4の実施形態における再送制御部1400は、複製管理テーブル170Bのエントリ毎に複製処理の成功回数及び複製処理の失敗回数を計測するカウンタ機能を有する。
再送制御部1400は、複製管理テーブル170Bを更新する度に、複製処理の成功回数又は複製処理の失敗回数を更新する。
例えば、複製管理テーブル170Bの任意のエントリにおける複製処理の成功回数が「9」、複製処理の失敗回数が「5」であった場合に、主複製先1501に「fail」が格納され、副複製先1502に「success」が格納されると、成功回数が「10」、複製処理の失敗回数が「6」に更新される。
他の処理は、第1の実施形態と同一であるため説明を省略する。
図15は、本発明の第4の実施形態における再送制御部1400が実行する処理を説明するフローチャートである。
再送制御部1400は、カウンタ値を集計し(ステップS1801)、複製処理の成功確率を算出する(ステップS1802)。
具体的には、再送制御部1400は、複製管理テーブル170Bの全てのエントリに対応するカウンタ値を取得する。なお、カウンタ値には、複製処理の成功回数及び複製処理の失敗回数が含まれる。
再送制御部1400は、取得されたカウンタ値に基づいて、複製管理テーブル170Bに含まれる全エントリの複製処理の成功回数の合計値及び複製処理の失敗回数の合計値を算出する。以下、複製処理の成功回数の合計値を合計値A1と記載し、複製処理の失敗回数の合計値を合計値A2と記載する。
再送制御部1400は、算出された合計値A1及び合計値A2を下式(1)に代入して、複製処理の成功確率を算出する。
成功確率P=A1/(A1+A2)…(1)
成功確率P=A1/(A1+A2)…(1)
次に、再送制御部1400は、算出された複製処理の成功確率に基づいて、同報通知の送信回数を決定する(ステップS1803)。
例えば、再送制御部1400は、式(1)の逆数を同報通知の送信回数として決定する方法が考えられる。なお、式(1)の逆数が整数とならない場合、小数点以下を切り上げるものとする。なお、同報通知の送信回数の決定方法は、前述したものに限定されない。
再送制御部1400は、決定された同報通知の送信回数をデータ送信部150に通知し、処理を終了する(ステップS1804)。
なお、第4の実施形態では、成功回数と、失敗回数とを用いて複製処理の成功確率を算出したが、本発明はこれに限定されない。例えば、複製処理の全実行回数と、複製処理の成功回数とを用いることによって複製処理の成功確率を算出することができる。また、複製処理の全実行回数と、複製処理の失敗回数とを用いて複製処理の成功確率を算出することができる。
第4の実施形態によれば、予め、複数回同報通知を送信することによって、データの信頼性をより高くすることができる。
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
なお、本実施形態で例示した種々のソフトウェアは、電磁的、電子的及び光学式等の種々の記録媒体に格納可能であり、インターネット等の通信網を通じて、コンピュータにダウンロード可能である。
さらに、本実施形態では、ソフトウェアによる制御を用いた例について説明したが、その一部をハードウェアによって実現することも可能である。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、ネットワークを介して複数の計算機が接続され、前記各計算機が有する記憶領域から構築されたデータベースを用いて業務を実行する計算機システムであって、前記各計算機は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサと接続され、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、前記計算機システムは、複数のデータを含むデータセットを管理する第1の計算機を含み、前記第1の計算機は、他の前記計算機によって管理されるデータセットに含まれるデータの複製データを格納し、前記他の計算機への前記複製データの格納処理の成功回数又は失敗回数の少なくともいずれかの回数を計測するカウンタを有し、前記第1の計算機は新たな第1データの格納要求を受け付けた場合に、前記第1データを前記メモリに格納し、前記第1データを複製して、第1複製データを生成し、前記カウンタの値に基づいて、前記複製データの格納処理の成功確率を算出し、前記算出された複製データの格納処理の成功確率に基づいて、前記第2複製データの送信回数を決定し、前記決定された送信回数分、前記生成された第1複製データを前記他の計算機に送信し、前記第1複製データが前記ネットワークに送信されたか否かを判定し、前記第1複製データが前記ネットワークに送信されたと判定された場合、前記第1データを用いて業務を実行することを特徴とする。
Claims (20)
- ネットワークを介して複数の計算機が接続され、前記各計算機が有する記憶領域から構築されたデータベースを用いて業務を実行する計算機システムであって、
前記各計算機は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサと接続され、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、
前記計算機システムは、複数のデータを含むデータセットを管理する第1の計算機を含み、
前記第1の計算機は、他の前記計算機によって管理されるデータセットに含まれるデータの複製データを格納し、
前記第1の計算機は新たな第1データの格納要求を受け付けた場合に、前記第1データを前記メモリに格納し、
前記第1データを複製して、第1複製データを生成し、
前記生成された第1複製データを前記他の計算機に送信し、
前記第1複製データが前記ネットワークに送信されたか否かを判定し、
前記第1複製データが前記ネットワークに送信されたと判定された場合、前記第1データを用いて業務を実行することを特徴とする計算機システム。 - 請求項1に記載の計算機システムであって、
複数の計算機に同時にデータを送信するための同報通知を用いて、前記生成された第1複製データを前記他の計算機に送信することを特徴とする計算機システム。 - 請求項2に記載の計算機システムであって、
前記ネットワークの通信状態が正常であるか否かを判定することによって、前記第1複製データが前記ネットワークに送信されたか否かを判定することを特徴とする計算機システム。 - 請求項3に記載の計算機システムであって、
前記ネットワークは、データを転送するネットワーク装置を含み、
前記計算機システムは、
前記ネットワーク装置から前記第1複製データを含む前記同報通知を受信したか否かを判定し、
前記ネットワーク装置から前記第1複製データを含む同報通知を受信したと判定された場合、前記ネットワークの通信状態が正常であると判定することを特徴とする計算機システム。 - 請求項3に記載の計算機システムであって、
前記第1の計算機は、周期的に、前記他の計算機との間の通信状態を監視し、
前記計算機システムは、
前記第1の計算機と前記他の計算機との間の通信状態の監視結果を参照して、前記他の計算機と通信可能か否かを判定し、
前記他の計算機と通信可能であると判定された場合、前記ネットワークの通信状態が正常であると判定することを特徴とする計算機システム。 - 請求項3に記載の計算機システムであって、
前記第1の計算機は、
ネットワークを介したサービスに対するプロセスを実行し、
周期的に、前記プロセスの稼動状態を監視し、
前記計算機システムは、
前記プロセスの稼動状態の監視結果を参照して、前記プロセスが正常に稼動しているか否かを判定し、
前記プロセスが正常に稼動していると判定された場合、前記ネットワークの通信状態が正常であると判定することを特徴とする計算機システム。 - 請求項1から請求項6の少なくともいずれか一つに記載の計算機システムであって、
前記第1の計算機は、前記他の計算機に前記第1複製データが格納されたか否かを判定し、
前記他の計算機に前記第1複製データが格納されていない場合には、前記第1データの複製データを、再度、前記他の計算機に送信することを特徴とする計算機システム。 - 請求項7に記載の計算機システムであって、
前記第1の計算機は、前記他の計算機への前記複製データの格納処理の成功回数又は失敗回数の少なくともいずれかの回数を計測するカウンタを有し、
新たな第2データの格納要求を受け付けた場合に、前記第2データを前記メモリに格納し、
前記第2データを複製して、第2複製データを生成し、
前記カウンタの値に基づいて、前記複製データの格納処理の成功確率を算出し、
前記算出された成功確率に基づいて、前記第2複製データの送信回数を決定し、
前記決定された送信回数分、前記生成された第2複製データを送信することを特徴とする計算機システム。 - 請求項1に記載の計算機システムであって、
前記データベースには、キー及びデータ値から構成される前記データが格納され、
前記各計算機は、所定のキー範囲の前記データセットを管理し、
前記第1の計算機は、第1のキー範囲の前記データセットを管理し、前記他の計算機が管理する所定のキー範囲の前記データセットに含まれる前記データの複製データを格納することを特徴とする計算機システム。 - ネットワークを介して複数の計算機が接続され、前記各計算機が有する記憶領域から構築されたデータベースを用いて業務を実行する計算機システムにおけるデータ管理方法であって、
前記各計算機は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサと接続され、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、
前記計算機システムは、複数のデータを含むデータセットを管理する第1の計算機を含み、
前記第1の計算機は、他の前記計算機によって管理されるデータセットに含まれるデータの複製データを格納し、
前記方法は、
前記第1の計算機が、新たな第1データの格納要求を受け付けた場合に、前記第1データを前記メモリに格納する第1のステップと、
前記第1の計算機が、前記第1データを複製して、第1複製データを生成する第2のステップと、
前記第1の計算機が、前記第1複製データを前記他の計算機に送信する第3のステップと、
前記第1の計算機が、前記第1複製データが前記ネットワークに送信されたか否かを判定する第4のステップと、
前記第1の計算機が、前記第1複製データが前記ネットワークに送信されたと判定された場合、前記第1データを用いて業務を実行する第5のステップと、を含むことを特徴とするデータ管理方法。 - 請求項10に記載のデータ管理方法であって、
前記第3のステップでは、複数の計算機に同時にデータを送信するための同報通知を用いて前記第1複製データを前記他の計算機に送信することを特徴とするデータ管理方法。 - 請求項11に記載のデータ管理方法であって、
前記第4のステップは、さらに、前記ネットワークの通信状態が正常であるか否かを判定する第6のステップを含むことを特徴とするデータ管理方法。 - 請求項12に記載のデータ管理方法であって、
前記ネットワークは、データを転送するネットワーク装置を含み、
前記第6のステップは、
前記ネットワーク装置から前記第1複製データを含む前記同報通知を受信したか否かを判定するステップと、
前記ネットワーク装置から前記第1複製データを含む同報通知を受信したと判定された場合、前記ネットワークの通信状態が正常であると判定するステップと、を含むことを特徴とするデータ管理方法。 - 請求項12に記載のデータ管理方法であって、
前記第1の計算機は、周期的に、前記他の計算機との間の通信状態を監視し、
前記第6のステップは、
前記他の計算機との間の通信状態の監視結果を参照して、前記他の計算機と通信可能か否かを判定するステップと、
前記他の計算機と通信可能であると判定された場合、前記ネットワークの通信状態が正常であると判定するステップと、を含むことを特徴とするデータ管理方法。 - 請求項12に記載のデータ管理方法であって、
前記第1の計算機は、
ネットワークを介したサービスに対するプロセスを実行し、
周期的に、前記プロセスの稼動状態を監視し、
前記第6のステップは、
前記プロセスの稼動状態の監視結果を参照して、前記プロセスが正常に稼動しているか否かを判定するステップと、
前記プロセスが正常に稼動していると判定された場合、前記ネットワークの通信状態が正常であると判定するステップと、を含むことを特徴とするデータ管理方法。 - 請求項10から請求項15の少なくともいずれか一つに記載のデータ管理方法であって、
前記方法は、さらに、
前記第1の計算機が、前記他の計算機に前記第1複製データが格納されたか否かを判定するステップと、
前記第1の計算機が、前記他の計算機に前記第1複製データが格納されていない場合には、前記第1データの複製データを、再度、前記他の計算機に送信するステップと、を含むことを特徴とするデータ管理方法。 - 請求項16に記載のデータ管理方法であって、
前記第1の計算機は、前記他の計算機への前記複製データの格納処理の成功回数又は失敗回数の少なくともいずれかの回数を計測するカウンタを有し、
前記方法は、さらに、
前記第1の計算機が、新たな第2データの格納要求を受け付けた場合に、前記第2データを前記メモリに格納するステップと、
前記第1の計算機が、前記第2データを複製して、第2複製データを生成するステップと、
前記第1の計算機が、前記カウンタの値に基づいて、前記複製データの格納処理の成功確率を算出するステップと、
前記第1の計算機が、前記算出された複製データの格納処理の成功確率に基づいて、前記第2複製データの送信回数を決定するステップと、
前記第1の計算機が、前記決定された送信回数分、前記生成された第2複製データを送信するステップと、を含むことを特徴とするデータ管理方法。 - 請求項10に記載のデータ管理方法であって、
前記データベースには、キー及びデータ値から構成される前記データが格納され、
前記各計算機は、所定のキー範囲の前記データセットを管理し、
前記第1の計算機は、第1のキー範囲の前記データセットを管理し、前記他の計算機が管理する所定のキー範囲の前記データセットに含まれる前記データの複製データを格納することを特徴とするデータ管理方法。 - ネットワークを介して複数の計算機が接続され、前記各計算機が有する記憶領域から構築されたデータベースを用いて業務を実行する計算機に実行させるためのデータ管理プログラムであって、
前記各計算機は、
プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサと接続され、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、
複数のデータを含むデータセットを管理し、
他の前記計算機によって管理されるデータセットに含まれるデータの複製データを格納し、
前記データ管理プログラムは、
新たな第1データの格納要求を受け付けた場合に、前記第1データを前記メモリに格納する手順と、
前記第1データを複製して、第1複製データを生成する手順と、
前記生成された第1複製データを、複数の計算機に同時にデータを送信するための同報通知を用いて前記他の計算機に送信する手順と、
前記第1複製データが前記ネットワークに送信されたか否かを検出する手順と、
前記第1複製データが前記ネットワークに送信されたことが検出された場合、前記第1データを用いて業務を実行する手順と、を前記プロセッサに実行させることを特徴とする計算機システム。 - 請求項19に記載のデータ管理プログラムであって、
前記第1複製データが前記ネットワークに送信されたか否かを判定する手順では、前記ネットワークに含まれるネットワーク装置から前記第1データを含む前記同報通知を受信したか否かを判定する手順、前記他の計算機と通信可能か否かを判定する手順、又は、前記ネットワークを介したサービスに対するプロセスが正常に稼動しているか否かを判定する手順、の少なくともいずれかを前記プロセッサに実行させることを特徴とするデータ管理プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/072164 WO2013046352A1 (ja) | 2011-09-28 | 2011-09-28 | 計算機システム、データ管理方法及びデータ管理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5548829B2 JP5548829B2 (ja) | 2014-07-16 |
JPWO2013046352A1 true JPWO2013046352A1 (ja) | 2015-03-26 |
Family
ID=47994464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013535705A Expired - Fee Related JP5548829B2 (ja) | 2011-09-28 | 2011-09-28 | 計算機システム、データ管理方法及びデータ管理プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US9367261B2 (ja) |
JP (1) | JP5548829B2 (ja) |
WO (1) | WO2013046352A1 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9898518B2 (en) * | 2012-04-12 | 2018-02-20 | Hitachi, Ltd. | Computer system, data allocation management method, and program |
US20150227599A1 (en) * | 2012-11-30 | 2015-08-13 | Hitachi, Ltd. | Management device, management method, and recording medium for storing program |
AU2013381504B2 (en) | 2013-03-12 | 2016-06-23 | Kabushiki Kaisha Toshiba | Database system, program, and data processing method |
JP5952960B2 (ja) * | 2013-04-16 | 2016-07-13 | 株式会社日立製作所 | 計算機システム、計算機システム管理方法及びプログラム |
JP6382819B2 (ja) | 2013-08-21 | 2018-08-29 | 株式会社東芝 | データベースシステム、ノード、管理装置、プログラムおよびデータ処理方法 |
WO2015029139A1 (ja) | 2013-08-27 | 2015-03-05 | 株式会社東芝 | データベースシステム、プログラムおよびデータ処理方法 |
DE112013006675B4 (de) * | 2013-11-18 | 2022-02-10 | Hitachi, Ltd. | Computersystem und Verfahren zur Computersystemverwaltung |
JP5832592B1 (ja) * | 2014-06-02 | 2015-12-16 | 三菱電機株式会社 | データ管理装置 |
WO2018022931A1 (en) * | 2016-07-28 | 2018-02-01 | Caringo, Inc. | Multi-part upload |
US11074240B2 (en) * | 2017-10-31 | 2021-07-27 | Ab Initio Technology Llc | Managing a computing cluster based on consistency of state updates |
US10700711B1 (en) | 2017-11-03 | 2020-06-30 | Caringo Inc. | Multi-part upload and editing of erasure-coded objects |
JP6816072B2 (ja) | 2018-08-27 | 2021-01-20 | 株式会社日立製作所 | 分散データベースシステム、分散データベース管理方法、及び分散データベース管理プログラム |
US20230081785A1 (en) * | 2021-09-10 | 2023-03-16 | Huawei Technologies Co., Ltd. | Data sending method and apparatus, data receiving method, apparatus, and system, and medium |
CN113872718B (zh) * | 2021-09-26 | 2023-09-12 | 上海市共进通信技术有限公司 | 实现时间同步功能的系统、方法、装置、处理器及其介质 |
US20240361943A1 (en) * | 2023-04-27 | 2024-10-31 | Pure Storage, Inc. | Backend Replication of Data in a Distributed Storage System |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4131781B2 (ja) | 2001-03-30 | 2008-08-13 | 株式会社東芝 | 分散処理型データベース管理システム |
US7395265B2 (en) * | 2004-08-27 | 2008-07-01 | Hitachi, Ltd. | Data processing system and storage subsystem provided in data processing system |
US7506011B2 (en) | 2006-07-26 | 2009-03-17 | International Business Machines Corporation | System and apparatus for optimally trading off the replication overhead and consistency level in distributed applications |
US20080147821A1 (en) * | 2006-12-19 | 2008-06-19 | Dietrich Bradley W | Managed peer-to-peer content backup service system and method using dynamic content dispersal to plural storage nodes |
US8180730B2 (en) | 2008-11-25 | 2012-05-15 | International Business Machines Corporation | Arbitration token for managing data integrity and data accuracy of information services that utilize distributed data replicas |
US8572031B2 (en) * | 2010-12-23 | 2013-10-29 | Mongodb, Inc. | Method and apparatus for maintaining replica sets |
-
2011
- 2011-09-28 US US14/110,343 patent/US9367261B2/en not_active Expired - Fee Related
- 2011-09-28 JP JP2013535705A patent/JP5548829B2/ja not_active Expired - Fee Related
- 2011-09-28 WO PCT/JP2011/072164 patent/WO2013046352A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JP5548829B2 (ja) | 2014-07-16 |
US9367261B2 (en) | 2016-06-14 |
US20140059315A1 (en) | 2014-02-27 |
WO2013046352A1 (ja) | 2013-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5548829B2 (ja) | 計算機システム、データ管理方法及びデータ管理プログラム | |
US11445019B2 (en) | Methods, systems, and media for providing distributed database access during a network split | |
US10185497B2 (en) | Cluster federation and trust in a cloud environment | |
US9231988B2 (en) | Intercluster repository synchronizer and method of synchronizing objects using a synchronization indicator and shared metadata | |
US9934242B2 (en) | Replication of data between mirrored data sites | |
CN105493474B (zh) | 用于支持用于同步分布式数据网格中的数据的分区级别日志的系统及方法 | |
JP5952960B2 (ja) | 計算機システム、計算機システム管理方法及びプログラム | |
US9811432B2 (en) | Systems and methods for resynchronizing mirroring partners in a storage system | |
CN113190620B (zh) | Redis集群之间数据的同步方法、装置、设备及存储介质 | |
EP3349416B1 (en) | Relationship chain processing method and system, and storage medium | |
WO2012046585A1 (ja) | 分散ストレージシステム、その制御方法、およびプログラム | |
JP6697101B2 (ja) | 情報処理システム | |
KR101748913B1 (ko) | 분산 저장 환경에서 게이트웨이를 선택하기 위한 클러스터 관리 방법 및 데이터 저장 시스템 | |
US20130318040A1 (en) | Data replication apparatus and method using hierarchical organization of data servers | |
TWI748653B (zh) | 透過更新執行狀態判斷裝置運作狀況之系統及方法 | |
WO2013073022A1 (ja) | 計算機システム及び障害検出方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140407 |
|
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: 20140513 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140519 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5548829 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |