JP5723330B2 - 分散処理システムおよび分散処理方法 - Google Patents

分散処理システムおよび分散処理方法 Download PDF

Info

Publication number
JP5723330B2
JP5723330B2 JP2012172616A JP2012172616A JP5723330B2 JP 5723330 B2 JP5723330 B2 JP 5723330B2 JP 2012172616 A JP2012172616 A JP 2012172616A JP 2012172616 A JP2012172616 A JP 2012172616A JP 5723330 B2 JP5723330 B2 JP 5723330B2
Authority
JP
Japan
Prior art keywords
processing
servers
server
request
unit
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
JP2012172616A
Other languages
English (en)
Other versions
JP2014032530A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2012172616A priority Critical patent/JP5723330B2/ja
Publication of JP2014032530A publication Critical patent/JP2014032530A/ja
Application granted granted Critical
Publication of JP5723330B2 publication Critical patent/JP5723330B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ネットワーク上に分散配置されるサーバをクラスタ化してデータを格納する分散データベースの技術分野、および、大規模なデータ集合から、所定の条件で所望のデータを取得する検索技術の分野に属する。
近年、クラウドコンピューティングの隆盛に伴い、多量のデータの処理や保持を効率的に行うことが求められている。そこで、複数のサーバを協調動作させることにより効率的な処理を実現する分散処理技術が発展している。
分散処理を行う際には、処理対象(管理対象)のデータを、クラスタを構成する各サーバ(以下、「クラスタメンバ」または「メンバ」とも称する)に振り分けておく必要がある。このとき、クラスタ全体での処理能力を高めるためには、各クラスタメンバが担当するデータ数(データ量)は平均化されていることが望ましい。
代表的なデータの振り分け手法として、各データのkeyをハッシュ関数にかけた値(以下、「hash(key)」と称する)をクラスタメンバ数Nで割った余り、すなわち「hash(key) mod N」を番号として持つクラスタメンバにデータを振り分ける方法がある。この場合、各クラスタメンバに事前に「0」から「N−1」までの番号を割り当てていることが前提となる。このような振り分け方法を用いた場合、クラスタメンバを追加すると、Nの値が変化して、多くのデータについて、担当するクラスタメンバが変更になるため、担当するデータの再配置が必要になる。
そこで、クラスタメンバの追加に伴い担当するクラスタメンバが変更になるデータ数を約1/Nに抑える方法として、コンシステントハッシュ(Consistent Hashing)法(非特許文献1参照)を用いた振り分け手法がある。このコンシステントハッシュ法は、Amazon Dynamo(非特許文献2参照)等で用いられる。
このコンシステントハッシュ法を用いたデータ振り分け手法では、クラスタメンバとデータの双方にID(IDentifier)を割り当てる(具体的には、ハッシュ関数を用いてハッシュ値を計算する)。そして、データのID(ハッシュ値)から閉じたID空間(ハッシュ空間:コンシステントハッシュ環)を時計回りに辿った場合に最初に出合ったクラスタメンバをそのデータの担当とする。
図8に示すように、コンシステントハッシュ法では、クラスタメンバ(メンバ「1」〜「4」)とデータ(データ「A」〜「D」。黒丸(●)で表示)の双方にIDを割り当て、データのIDからID空間を時計回りに辿り最初に出合ったクラスタメンバをそのデータの担当として決定する。例えば、図8においては、データ「A」は、ID空間上を時計回りに辿り最初に出合ったメンバ「1」が担当となる。
このコンシステントハッシュ法等を用いた従来の分散処理システム1aは、図9に示すように、ロードバランサB(Balancer:各図において「B」と表記)と、複数のディスパッチャD(Dispatcher:各図において「D」と表記)と、複数のプロセッサP(Processor:各図において「P」と表記)と、複数のストレージS(Storage:各図において「S」と表記)とを含んで構成される。なお、後記するように、プロセッサPとストレージSとで1つのサーバ3(クラスタメンバ)を構成する。
そして、ロードバランサBが、外部装置5から入力データを取得し、ラウンドロビン等により、入力データを複数のディスパッチャD(D,D,D)のいずれかに振り分ける。ここで、図9においては、ロードバランサBがディスパッチャDに振り分けている。このディスパッチャD(D,D,D)は、複数のプロセッサP(P,P,P)に接続されており、ロードバランサBから取得した入力データにコンシステントハッシュ法を適用して、その入力データの担当となるサーバ3(プロセッサPとストレージSの組)のうちの1つを決定し、その入力データを送信する。続いて、その入力データを処理したサーバ3から、処理結果としての出力データを、入力データを送信したディスパッチャD(D)が受信し、そのディスパッチャD(D)が、ロードバランサBを経由して外部装置5に出力データを送信する。
David karger et al.,"Consistent Hashing and Random Trees:Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web",[online],1997,ACM,[平成24年7月17日検索],インターネット<URL:http://www.akamai.com/dl/technical_publications/ConsistenHashingandRandomTreesDistributedCachingprotocolsforrelievingHotSpotsontheworldwideweb.pdf> Giuseppe DeCandia,et al.,"Dynamo: Amazon’s Highly Available Key-value Store," SOSP’07, October 14-17, 2007, Stevenson, Washington, USA,[online]、[平成24年7月17日検索]、インターネット<URL:http://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf>
ここで、図9に示すような分散処理システム1aにおいて、複数のサーバ3すべてに対し一斉に処理を実行させたい場合を考える。この複数のサーバ3すべてに対し一斉に処理を実行させたい場合とは、例えば、各サーバ3内のデータに関する統計や管理情報を取得する際に行うデータクラスタへの全件検索、各サーバ3が正常に動作しているかを確認するためのサーバ正常性確認コマンド、各サーバ3に処理条件等の情報を登録するための登録系保守コマンド、処理中の緊急呼の呼数を確認するための緊急呼呼数確認コマンド等を実行させたい場合である。なお、この複数のサーバ3(クラスタメンバ)すべてに対して一斉に実行させたい処理を、以下「全サーバ処理」と称する。
このような全サーバ処理に対し、従来技術では、外部装置5から処理要求をあるディスパッチャDが受信すると、そのディスパッチャDがクラスタを構成するすべてのサーバ3に対し、その処理要求をする。そして、その処理要求を送信したディスパッチャDが、各サーバ3からの処理結果を受信して集約し、すべてのサーバ3からの受信を確認した上で、外部装置5に対し集約した処理結果を送信する。
しかしながら、このような従来の処理では、処理要求を各サーバ3に配信するディスパッチャDが、すべてのサーバ3からの処理結果の受信の有無等の状態を保持したり、処理結果が受信できなかったサーバ3がある場合のエラー時処理を行ったりする必要がある。よって、全サーバ処理を実行する際に、ディスパッチャDの処理負荷が増大する問題がある。
このような背景に鑑みて本発明がなされたのであり、本発明は、分散処理システムを構成する複数のサーバすべてに対し一斉に処理を実行させたい場合において、ディスパッチャの処理負荷の増大を抑えることができる、分散処理システムおよび分散処理方法を提供することを課題とする。
前記した課題を解決するため、請求項1に記載の発明は、外部装置から受信した処理要求を、クラスタメンバを構成するサーバに振り分ける複数のディスパッチャと、前記ディスパッチャから受信した前記処理要求に基づき、自身が保存するデータについて処理を実行する複数の前記サーバと、前記サーバが実行した処理結果を受信する前記外部装置と、を備える分散処理システムであって、前記ディスパッチャが、前記外部装置から受信した前記処理要求に、前記複数のサーバすべてに対する処理の要求を示す全サーバ送信フラグが設定されているか否かを判定する第1の構文解析部と、前記第1の構文解析部が前記処理要求に前記全サーバ送信フラグが設定されていると判定した場合に、前記複数のサーバすべてに当該処理要求を配信する要求配信部と、を備え、前記複数のサーバそれぞれが、前記サーバそれぞれに割り当てられるデータの担当分と、前記サーバそれぞれの当該担当分の総和とを示す管理情報を記憶する記憶部と、前記ディスパッチャから受信した処理要求に、前記全サーバ送信フラグが設定されているか否かを判定する第2の構文解析部と、前記処理要求に示される処理を実行し処理結果を生成する要求処理部と、前記第2の構文解析部が前記処理要求に前記全サーバ送信フラグが設定されていると判定した場合に、前記管理情報を参照し、前記サーバ自身に割り当てられた前記担当分と、前記担当分の総和とを示す処理担当情報を生成する処理担当情報生成部と、前記処理結果および前記処理担当情報を含む応答メッセージを生成し、前記外部装置に送信する応答メッセージ生成部と、を備え、前記外部装置が、前記複数のサーバすべてに対し処理を要求する場合に、前記全サーバ送信フラグを設定した前記処理要求を前記複数のディスパッチャのいずれかに送信する処理要求送信部と、前記複数のサーバそれぞれから受信した前記応答メッセージから前記処理担当情報を抽出し、前記抽出した処理担当情報に含まれる前記担当分を、受信した各応答メッセージのすべてについて集計し、当該集計結果が、前記抽出した処理担当情報に含まれる前記担当分の総和と一致するか否かを判定し、所定の時間内に前記担当分の総和と一致した場合は前記複数のサーバすべてに対する処理が成功したと判定し、一致しない場合は失敗したと判定する応答メッセージ集計部と、を備えることを特徴とする分散処理システムとした。
また、請求項3に記載の発明は、外部装置から受信した処理要求を、クラスタメンバを構成するサーバに振り分ける複数のディスパッチャと、前記ディスパッチャから受信した前記処理要求に基づき、自身が保存するデータについて処理を実行する複数の前記サーバと、前記サーバが実行した処理結果を受信する前記外部装置と、を備える分散処理システムの分散処理方法であって、前記外部装置が、前記複数のサーバすべてに対し処理を要求する場合に、前記複数のサーバすべてに対する処理の要求を示す全サーバ送信フラグを設定した前記処理要求を前記複数のディスパッチャのいずれかに送信するステップを実行し、前記ディスパッチャが、前記外部装置から受信した前記処理要求に、前記全サーバ送信フラグが設定されているか否かを判定するステップと、前記処理要求に前記全サーバ送信フラグが設定されていると判定された場合に、前記複数のサーバすべてに当該処理要求を配信するステップと、を実行し、前記複数のサーバそれぞれが、前記サーバそれぞれに割り当てられるデータの担当分と、前記サーバそれぞれの当該担当分の総和とを示す管理情報を記憶する記憶部を備えており、前記ディスパッチャから受信した処理要求に、前記全サーバ送信フラグが設定されているか否かを判定するステップと、前記処理要求に示される処理を実行して処理結果を生成するステップと、前記処理要求に前記全サーバ送信フラグが設定されていると判定された場合に、前記管理情報を参照し、前記サーバ自身に割り当てられた前記担当分と、前記担当分の総和とを示す処理担当情報を生成するステップと、前記処理結果および前記処理担当情報を含む応答メッセージを生成し、前記外部装置に送信するステップと、を実行し、前記外部装置が、前記複数のサーバそれぞれから受信した前記応答メッセージから前記処理担当情報を抽出し、前記抽出した処理担当情報に含まれる前記担当分を、受信した各応答メッセージのすべてについて集計し、当該集計結果が、前記抽出した処理担当情報に含まれる前記担当分の総和と一致するか否かを判定し、所定の時間内に前記担当分の総和と一致した場合は前記複数のサーバすべてに対する処理が成功したと判定し、一致しない場合は失敗したと判定するステップを実行することを特徴とする分散処理方法とした。
このようにすることで、処理要求を送信した外部装置が、各サーバそれぞれから応答メッセージを受信し、その応答メッセージから処理担当情報を抽出して集計することにより、全サーバ処理が成功した否かを判定することができる。よって、各サーバに処理要求を配信したディスパッチャが、各サーバの処理状態等を保持する必要がないため、ディスパッチャの処理負荷の増大を抑えることができる。
請求項2に記載の発明は、前記複数のサーバそれぞれの前記応答メッセージ生成部が、前記生成した応答メッセージを、前記外部装置に替えて、前記処理要求を配信したディスパッチャに送信し、前記ディスパッチャが、前記複数のサーバそれぞれから受信した応答メッセージを集約することなく、前記外部装置に転送することを特徴とする請求項1に記載の分散処理システムとした。
このようにすることによっても、各サーバに処理要求を配信したディスパッチャが、各サーバの処理状態等を保持する必要がないため、ディスパッチャの処理負荷の増大を抑えることができる。
本発明によれば、分散処理システムを構成する複数のサーバすべてに対し一斉に処理を実行させたい場合において、ディスパッチャの処理負荷の増大を抑える、分散処理システムおよび分散処理方法を提供することができる。
本実施形態に係る分散処理システムの全体構成を示す図である。 本実施形態に係る分散処理システムの内部構成と処理概要を説明するための図である。 本実施形態に係るディスパッチャの構成例を示す機能ブロック図である。 本実施形態に係るID空間管理情報のデータ構成の一例を示す図である。 本実施形態に係るサーバの構成例を示す機能ブロック図である。 本実施形態に係る外部装置の構成例を示す機能ブロック図である。 本実施形態に係る分散処理システムにおいて、全サーバ処理を実行する場合の処理の流れを示すシーケンス図である。 コンシステントハッシュ法のデータ振り分け手法を説明するための図である。 従来の分散処理システムの構成と処理の流れを説明するための図である。
次に、本発明を実施するための形態(以下、「本実施形態」という)における分散処理システム1等について説明する。
<システム構成>
図1は、本実施形態に係る分散処理システム1の全体構成を示す図である。
図1に示すように、分散処理システム1は、クラスタシステム2が、ネットワークを介して、外部装置5に接続されて構成される。そして、クラスタシステム2は、外部装置5からの処理要求データを受け取り、クラスタシステム2内でデータの全件検索や、クラスタシステム2を構成するサーバ3(後記する図2参照)の正常性確認等の全サーバ処理を実行し、その処理結果を含む応答データを、外部装置5に送信する。
図2は、本実施形態に係る分散処理システム1の内部構成と処理概要を説明するための図である。
図2に示すように、本分散処理システム1は、外部装置5とクラスタシステム2とを備える。そして、クラスタシステム2は、ロードバランサBと、複数のディスパッチャD(D,D,D)と、複数のプロセッサP(P,P,P)と、複数のストレージS(S,S,S)とを含んで構成される。なお、本実施形態においては、このプロセッサPとストレージSとの組で、1つのサーバ3を構成するものとして説明する。
外部装置5は、各サーバ3(クラスタメンバ)に対する、データ検索や登録、変更のための入力データを、クラスタシステム2のロードバランサBに送信する処理を行うとともに、前記したような全サーバ処理の要求を送信する際には、その処理要求に「全サーバ送信フラグ」を設定してクラスタシステム2のロードバランサBに送信する。
ロードバランサBは、外部装置5から処理要求を取得し、ラウンドロビン等により、取得した処理要求を複数のディスパッチャD(D,D,D)のいずれかに振り分ける。
各ディスパッチャD(D,D,D)は、複数のプロセッサP(P,P,P)と接続されており、ロードバランサBから取得した処理要求を、プロセッサP(P,P,P)のいずれかに振り分ける。このディスパッチャDは、処理要求を解析し、「全サーバ送信フラグ」が設定されていなければ、コンシステントハッシュを適用してハッシュ関数により、データの格納先であるサーバ3(プロセッサPとストレージSとの組)の1つを決定し、その処理要求を送信する。また、処理要求を送信したサーバ3から処理結果を受信した場合には、そのディスパッチャDは、ロードバランサBを介して外部装置5にその処理結果を送信する。
なお、本実施形態においては、ID空間(コンシステントハッシュ環)におけるサーバおよびデータのID(ハッシュ値)の配置の偏りを解消するため、1つのクラスタメンバから複数のID(ハッシュ値)を算出し、ID空間(コンシステントハッシュ環)上に仮想サーバを配置するものとする。これにより、各サーバ3(クラスタメンバ)の担当するデータ数を均等化し、各サーバ3の負荷を均等にすることができる。
また、ディスパッチャDは、処理要求を解析し、「全サーバ送信フラグ」が設定されている場合には、全サーバ処理を実行するため、クラスタシステム2内のすべてのサーバ3に受信した処理要求を配信する。
なお、ディスパッチャDの詳細な構成と処理については、後記する。
プロセッサPは、複数のディスパッチャD(D,D,D)と自身が制御するストレージSとに接続されており、いずれかのディスパッチャDから処理要求を受信し、その処理要求を解析し、ストレージSに新規データを保存したり、既存データを更新したり、データの検索処理をしたり、サーバ正常性確認コマンドや保守コマンド、緊急呼呼数確認コマンド等を実行する。
また、プロセッサPは、受信した処理要求に「全サーバ送信フラグ」が設定されている場合には、処理結果を、処理要求を送信してきたディスパッチャDではなく、外部装置5に直接送信する。このときプロセッサPは、そのサーバ3自身に割り当てられたデータの担当分として、ID空間上で担当する領域を示す情報(後記する「処理担当情報」)を付した処理結果を、応答メッセージとして外部装置5に送信する。
ストレージSは、データを保存する記憶手段であり、プロセッサPにより、ストレージSに保存されるデータの登録、更新、検索等が制御される。
なお、ディスパッチャD(D,D,D)、プロセッサP(P,P,P)、ストレージS(S,S,S)それぞれは、図2に図示した3つの装置に限定されず、複数の装置であればよい。
<概要>
次に、図2を参照して、本実施形態に係る分散処理システム1が行う処理の概要について説明する。
まず、外部装置5は、「全サーバ送信フラグ」を設定した処理要求をロードバランサBに送信する(ステップS1)。
ロードバランサBは、外部装置5から処理要求を取得すると、ラウンドロビン等によりその処理要求を複数のディスパッチャD(D,D,D)のいずれかに振り分ける(ステップS2)。ここでは、ロードバランサBにより、ディスパッチャDが振り分け先として決定され、ディスパッチャDに処理要求が送信されたものとする。
次に、ディスパッチャD(D)は、処理要求を解析し、「全サーバ送信フラグ」が設定されていることから、クラスタシステム2内のすべてのサーバ3、具体的には、プロセッサP(P,P,P)に対し、その処理要求を送信する(ステップS3)。
各プロセッサP(P,P,P)は、処理要求を受信すると、その処理要求に示される処理を実行し処理結果を取得する。また、各プロセッサP(P,P,P)は、その処理要求を受信した際に、「全サーバ送信フラグ」が設定されているか否かを判定する。そして、各プロセッサP(P,P,P)は、「全サーバ送信フラグ」が設定されている場合には、処理結果にサーバ3自身がID空間上で担当する領域を示す情報(「処理担当情報」)を付して、応答メッセージを生成する(ステップS4)。例えば、各プロセッサP(P,P,P)は、全ID空間分をbit列として設定し、そのbit列の中で、自身の仮想サーバが担当するID空間(コンシステントハッシュ環)の領域に「1」を設定した処理担当情報を処理結果に付した応答メッセージを生成する。
次に、各プロセッサP(P,P,P)は、生成した応答メッセージを、ネットワークを介して直接外部装置5に送信する(ステップS5)。
外部装置5は、各プロセッサP(P,P,P)それぞれから処理要求に対する応答メッセージを受信する。そして、外部装置5は、受信した応答メッセージに付された処理担当情報を集計し、全ID空間分のbit列がすべて「1」となった場合に、全サーバ処理が成功したと判定し、全ID空間分のbit列のいずれかが「1」とならなかった場合に、全サーバ処理が失敗したと判定する(ステップS6)。
このようにすることで、本実施形態に係る分散処理システム1および分散処理方法によれば、外部装置5がクラスタシステム2内のサーバ3(クラスタメンバ)の構成を知らなくても、分散処理システム1を構成する複数のサーバ3すべてに対し処理を実行させることができる。そして、外部装置5は、処理担当情報を集計することにより、全サーバ処理が成功した否かを判定することができる。さらに、本分散処理システム1および分散処理方法によれば、各サーバ3に処理要求を配信したディスパッチャDが、全サーバ処理の状態等を保持する必要がないため、ディスパッチャDの処理負荷の増大を抑えることができる。
<各装置の構成>
以下、本実施形態に係る分散処理システム1を構成する各装置の構成例について、具体的に説明する。
≪ロードバランサB≫
ロードバランサBは、ネットワークを介して接続される外部装置5からの処理要求等を受け付け、ラウンドロビン等により、その処理要求等を、クラスタシステム2内の複数のディスパッチャDのいずれかに振り分ける装置である。そして、このロードバランサBは、制御部、入出力部、メモリ部および記憶部(いずれも不図示)を含んで構成される。
≪ディスパッチャD≫
次に、ディスパッチャDの構成例について説明する。図3は、本実施形態に係るディスパッチャDの構成例を示す機能ブロック図である。
ディスパッチャDは、ロードバランサBおよび複数のプロセッサP(P,P,P)と通信可能に接続され、ロードバランサBから取得した処理要求を、プロセッサP(P,P,P)に振り分ける装置であり、図3に示すように、制御部110と、入出力部120と、メモリ部130と、記憶部140とを含んで構成される。
入出力部120は、ロードバランサBや、各プロセッサP(P,P,P)との間の情報の入出力を行う。例えば、入出力部120は、ロードバランサBが送信した処理要求を受信し、各プロセッサPに対し、その処理要求の送信を行う。また、入出力部120は、ストレージSに保存されるデータ等の検索結果や、ストレージSへの登録、変更等の処理結果を出力データとしてプロセッサPから受信し、ロードバランサBに対して送信する等の処理を行う。
また、この入出力部120は、通信回線を介して情報の送受信を行う通信インタフェースと、不図示のキーボード等の入力手段やモニタ等の出力手段等との間で入出力を行う入出力インタフェースとから構成される。
制御部110は、ディスパッチャD全体の制御を司り、情報受信部111と、構文解析部112(第1の構文解析部)と、振り分け処理部113と、要求配信部114と、情報送信部115とを含んで構成される。なお、この制御部110は、例えば、記憶部140に格納されたプログラムをCPU(Central Processing Unit)がメモリ部130であるRAM(Random Access Memory)に展開し実行することで実現される。
情報受信部111は、入出力部120を介して、ロードバランサBからの処理要求や、プロセッサPからの出力データを取得する。
構文解析部112(第1の構文解析部)は、情報受信部111から処理要求を受け取り、その処理要求を解析し、「全サーバ送信フラグ」が設定されているか否かを判定する。そして、構文解析部112は、「全サーバ送信フラグ」が設定されていないと判定した場合には、その処理要求を振り分け処理部113に引き渡す。一方、構文解析部112は、「全サーバ送信フラグ」が設定されていると判定した場合には、その処理要求を要求配信部114に引き渡す。
振り分け処理部113は、構文解析部112から、「全サーバ送信フラグ」が設定されていない処理要求を受け取る。振り分け処理部113は、予め設定されたハッシュ関数を用いて、処理要求に示される入力データのハッシュ値を計算する。そして、振り分け処理部113は、計算したハッシュ値に基づき、記憶部140に記憶されたID空間管理情報100(後記する図4)を参照し、振り分け先となるID空間(コンシステントハッシュ環)上の仮想ノードを決定する。続いて、振り分け処理部113は、決定した仮想ノードの基となるサーバ3(プロセッサPとストレージSとの組)を、振り分け先のサーバ3として選択する。振り分け処理部113は、その選択したサーバ3に対して、処理要求を、情報送信部115を介して送信する。
また、振り分け処理部113は、各サーバ3から処理要求に対する処理結果である出力データを受信すると、ロードバランサBにその処理結果を送信する。
図4は、本実施形態に係るID空間管理情報100(管理情報)のデータ構成の一例を示す図である。
図4に示すように、ID空間管理情報100は、仮想ノードID101、物理ノードID102、ハッシュ値103のデータ項目を含んで構成される。
ここで、仮想ノードID101は、本分散処理システム1内において仮想ノードを特定するための固有な番号である。例えば、図4に示す、仮想ノードID101の「2−7」は、仮想ノードの基となる物理ノードのID(物理ノードID102)と、当該物理ノードにおける仮想ノードの固有な番号のうちの1つ(ここでは、「7」番)との組により構成される。
物理ノードID102は、処理要求に示される入力データの振り分け先となるサーバ3(プロセッサPとストレージSとの組)を、本分散処理システム1内において特定するための固有な番号である。例えば、図4に示すように、物理ノードID102として「2」が設定される。
なお、この仮想ノードID101および物理ノードID102は、本分散処理システム1内において、一意に特定されるIDであればよく、図4に示した表記方法に限定されるものではない。
ハッシュ値103は、ID空間(コンシステントハッシュ環)において、仮想ノードが担当する領域を特定するためのものであり、例えば、「0」から順に「9999」までのいずれかの値が格納される。
例えば、図4に示す、第1行目のハッシュ値103が「56」の場合は、仮想ノードID101が「2−7」の仮想ノードのID空間(コンシステントハッシュ環)における入力データの担当領域が、「0」〜「56」であることを示す。また、第2行目のハッシュ値103が「172」の場合は、仮想ノードID101が「5−96」の仮想ノードのID空間(コンシステントハッシュ環)における入力データの担当領域が、1つ前の行のハッシュ値103の値に「1」をプラスした「57」〜「172」であることを示す。
各ディスパッチャD(D,D,D)および各サーバ3(具体的には、ストレージS)は、このID空間管理情報100の各データ項目である、仮想ノードID101、物理ノードID102およびハッシュ値103について、すべて共通の値が格納されたID空間管理情報100を備えている。
図3に戻り、要求配信部114は、構文解析部112から、「全サーバ送信フラグ」が設定されている処理要求を受け取ると、その処理要求をクラスタシステム2内のすべてのプロセッサP(P,P,P)それぞれに配信する。
情報送信部115は、振り分け処理部113が決定した振り分け先となるプロセッサPに対して処理要求を送信したり、要求配信部114の制御によりすべてのプロセッサPに対して処理要求を送信したりする。また、情報送信部115は、プロセッサPから受信した処理結果等の出力データを、ロードバランサBに送信する等の制御を行う。
メモリ部130は、RAM等の一次記憶装置からなり、制御部110によるデータ処理に必要な情報を一時的に記憶している。
記憶部140は、ハードディスクやフラッシュメモリ等の記憶装置からなり、前記したID空間管理情報100(図4参照:管理情報)を記憶する。また、記憶部140は、ロードバランサBや、自身以外の各ディスパッチャD、各プロセッサPのアドレス(IPアドレス)等を記憶する。
≪サーバ≫
次に、サーバ3の構成例について説明する。図5は、本実施形態に係るサーバ3の構成例を示す機能ブロック図である。
サーバ3は、複数のディスパッチャD(D,D,D)および外部装置5と通信可能に接続され、制御部310と、入出力部320と、メモリ部330と、記憶部340とを含んで構成される。なお、このサーバ3の構成のうち、制御部310、入出力部320およびメモリ部330がプロセッサP(図2参照)に相当し、記憶部340がストレージS(図2参照)に相当する。
入出力部320は、各ディスパッチャD(D,D,D)や外部装置5との間の情報の入出力を行う。例えば、入出力部320は、ディスパッチャDが送信した処理要求を受信し、その処理要求に基づく処理をした結果(処理結果)を出力データとして、そのディスパッチャDに送信する。また、入出力部320は、その処理要求に、「全サーバ送信フラグ」が付されている場合には、後記する応答メッセージ生成部315が生成した応答メッセージを外部装置5に送信する。
また、この入出力部320は、通信回線を介して情報の送受信を行う通信インタフェースと、不図示のキーボード等の入力手段やモニタ等の出力手段等との間で入出力を行う入出力インタフェースとから構成される。
制御部310は、サーバ3全体の制御を司り、情報受信部311と、構文解析部312(第2の構文解析部)と、要求処理部313と、処理担当情報生成部314と、応答メッセージ生成部315と、情報送信部316とを含んで構成される。なお、この制御部310は、例えば、記憶部340に格納されたプログラムをCPUがメモリ部330であるRAMに展開し実行することで実現される。
情報受信部311は、入出力部320を介して、各ディスパッチャD(D,D,D)からの処理要求等を取得する。
構文解析部312(第2の構文解析部)は、情報受信部311から処理要求を受け取り、その処理要求を解析し、「全サーバ送信フラグ」が設定されているか否かを判定する。そして、構文解析部312は、「全サーバ送信フラグ」が設定されていないと判定した場合には、その処理要求を要求処理部313に引き渡す。一方、構文解析部312は、「全サーバ送信フラグ」が設定されていると判定した場合には、その処理要求を要求処理部313に引き渡すと共に、処理担当情報生成部314を起動させる。
要求処理部313は、「全サーバ送信フラグ」が設定されていない処理要求を受け取ると、その処理要求に従い、記憶部340(ストレージS)に対し、新規データを保存、既存データを更新、データの検索等の処理を実行する。そして、要求処理部313は、その処理結果を、情報送信部316を介して、処理要求を送信してきたディスパッチャDに送信する。
また、要求処理部313は、「全サーバ送信フラグ」が設定されている処理要求を受け取ると、その処理要求に従い、サーバ3自身の記憶部340(ストレージS)に記憶したデータへの全件検索、サーバ正常性確認コマンド、処理条件等の情報を登録するための登録系保守コマンド、緊急呼呼数確認コマンド等の処理(全サーバ処理のうちの当該サーバ3の処理)を実行する。そして、要求処理部313は、その処理結果を、応答メッセージ生成部315に引き渡す。
処理担当情報生成部314は、構文解析部312が受信した処理要求に「全サーバ送信フラグ」が設定されていると判定したことを契機に起動されると、記憶部340(ストレージS)に記憶されたID空間管理情報100(管理情報)を参照し、そのサーバ3自身に割り当てられたデータの担当分として、ID空間(コンシステントハッシュ環)において担当する領域を示す処理担当情報を生成する。
この処理担当情報は、例えば、サーバそれぞれの担当分の総和である全ID空間をbit列として設定し、そのbit列の中で、そのサーバ3自身が担当するID(ハッシュ値)に対応するbitの位置に「1」が設定される。具体的には、ID空間(コンシステントハッシュ環)において、ハッシュ値が「0」〜「9999」まで設定されている場合に、当該処理担当情報生成部314は、「0」〜「9999」のハッシュ値に1対1で対応するbit列を生成し、ID空間管理情報100を参照して、サーバ3自身の仮想ノードが担当するID空間(コンシステントハッシュ環)の領域(すなわち、サーバ3自身の仮想ノードの行の1つ前の行のハッシュ値103の値に「1」をプラスした値から、サーバ3自身の仮想ノードのハッシュ値103の値までの領域)に対応するbit列の位置に「1」を設定して、処理担当情報を生成する。そして、処理担当情報生成部314は、生成した処理担当情報を、応答メッセージ生成部315に引き渡す。
応答メッセージ生成部315は、要求処理部313から処理結果を受け取り、処理担当情報生成部314から処理担当情報を受け取る。応答メッセージ生成部315は、受け取った処理結果と処理担当情報とを含む応答メッセージを生成する。そして、応答メッセージ生成部315は、受信した処理要求に示される外部装置5のアドレス情報(IPアドレス等)に基づき、その外部装置5に対し応答メッセージを送信する。
情報送信部316は、処理要求を送信してきたディスパッチャD(D,D,D)に対し要求処理部313が処理した処理結果を送信したり、応答メッセージ生成部315が生成した応答メッセージを外部装置5に送信したりする。
メモリ部330は、RAM等の一次記憶装置からなり、制御部310によるデータ処理に必要な情報を一時的に記憶している。
記憶部340(ストレージS)は、ハードディスクやフラッシュメモリ等の記憶装置からなり、前記したID空間管理情報100(図4参照:管理情報)等を記憶する。
≪外部装置≫
次に、外部装置5の構成例について説明する。図6は、本実施形態に係る外部装置5の構成例を示す機能ブロック図である。なお、図6においては、制御部、入出力部、メモリ部および記憶部の図示を省略し、外部装置5の特徴となる機能を示す制御部内の処理要求送信部511と応答メッセージ集計部512とを記載している。
処理要求送信部511は、クラスタシステム2(ロードバランサB)に処理要求を送信する。そして、この処理要求送信部511は、その処理要求が、クラスタシステム2内のすべてのサーバ3(クラスタメンバ)に対する、全件検索、サーバ正常性確認コマンド、登録系保守コマンド、緊急呼呼数確認コマンド等の処理(全サーバ処理)である場合に、「全サーバ送信フラグ」を設定した処理要求をクラスタシステム2内のロードバランサBに送信する。
応答メッセージ集計部512は、クラスタシステム2内の各サーバ3(プロセッサP(P,P,P))それぞれから応答メッセージを受信する。そして、応答メッセージ集計部512は、その応答メッセージに含まれる処理担当情報を抽出し、各サーバ3からの処理担当情報(当該サーバの担当分)を集計して、その集計結果が、すべてのサーバ3の担当分の総和と一致するか否かで、すべてのサーバ3から応答メッセージを受信したか否かを判定する。
応答メッセージ集計部512によるこの判定は、例えば、処理担当情報としてそのサーバ3の担当分が示されたbit列を、各サーバ3から受信した応答メッセージのすべてについてor演算し、ID空間(コンシステントハッシュ環)の領域(担当分の総和)に対応するbit列がすべて「1」であるときに、すべてのサーバ3からの応答メッセージを受信した、つまり、全サーバ処理が成功したと判定する。一方、応答メッセージ集計部512は、所定の時間内に、bit列がすべて「1」とならなかった場合に、全サーバ処理が失敗したと判定する。
なお、この所定の時間内とは、例えば、外部装置5の処理要求送信部511が、全サーバ処理の処理要求を送信してから所定の時間内であってもよいし、全サーバ処理の処理要求を送信後、最初または直前の応答メッセージを受信してから所定の時間内であってもよい。
<分散処理システムの処理の流れ>
次に、本実施形態に係る分散処理システム1において、全サーバ処理を実行する場合の処理の流れについて説明する。
図7は、本実施形態に係る分散処理システム1において、全サーバ処理を実行する場合の処理の流れを示すシーケンス図である。
まず、外部装置5の処理要求送信部511は、全サーバ処理の実行を要求する処理要求に「全サーバ送信フラグ」を設定し、その処理要求をクラスタシステム2のロードバランサBに送信する(ステップS10)。
ロードバランサBは、外部装置5から処理要求を取得すると、ラウンドロビン等によりその処理要求を複数のディスパッチャD(D,D,D)のいずれかに振り分ける(ステップS11)。ここでは、ロードバランサBにより、ディスパッチャDが振り分け先として決定され、ディスパッチャDに処理要求が送信されたものとする。
処理要求を受信するとディスパッチャD(D)の構文解析部112は、その処理要求を解析し、「全サーバ送信フラグ」が設定されているか否かを判定する。ここで、ディスパッチャD(D)の構文解析部112は、受信した処理要求に「全サーバ送信フラグ」が設定されていると判定する(ステップS12)。
次に、ディスパッチャD(D)の要求配信部114は、その処理要求を、クラスタシステム2内のすべてのサーバ3(#1,#2,#3)、具体的には、すべてのプロセッサP(P,P,P)に送信する(ステップS13)。
処理要求を受信すると各サーバ3(#1,#2,#3)の構文解析部312は、その処理要求を解析し、「全サーバ送信フラグ」が設定されているか否かを判定する。ここで、各サーバ3(#1,#2,#3)の構文解析部312は、受信した処理要求に「全サーバ送信フラグ」が設定されていると判定する(ステップS14)。また、構文解析部312は、処理担当情報生成部314を起動させる。
続いて、各サーバ3(#1,#2,#3)の要求処理部313が、その処理要求に示される処理を実行し処理結果を取得する(ステップS15)。
そして、各サーバ3(#1,#2,#3)の処理担当情報生成部314が、記憶部340(ストレージS)に記憶されたID空間管理情報100(図4)を参照し、そのサーバ3自身がID空間(コンシステントハッシュ環)において担当する領域を示す担当処理情報を生成する(ステップS16)。ここで、処理担当情報生成部314は、例えば、全ID空間をbit列として設定し、そのbit列の中で、そのサーバ3自身が担当するID(ハッシュ値)に対応するbitの位置に「1」を設定した処理担当情報を生成する。
次に、各サーバ3(#1,#2,#3)の応答メッセージ生成部315は、要求処理部313から処理結果を受け取り、処理担当情報生成部314から処理担当情報を受け取って、その処理結果と処理担当情報とを含む応答メッセージを生成する。そして、応答メッセージ生成部315は、生成した応答メッセージを、ネットワークを介して外部装置5に送信する(ステップS17)。
外部装置5は、各サーバ3(#1,#2,#3)から応答メッセージを受信する。そして、外部装置5の応答メッセージ集計部512は、受信した応答メッセージから処理担当情報を抽出し、各サーバ3からの処理担当情報を集計して(ステップS18)、クラスタシステム2内の全てのサーバから応答メッセージを受信したか否かを判定する。
具体的には、応答メッセージ集計部512は、受信した応答メッセージに処理担当情報として付されたbit列をor演算し、ID空間(コンシステントハッシュ環)の領域に対応するbit列がすべて「1」であるときに、すべてのサーバ3からの応答メッセージを受信した、つまり、全サーバ処理が成功したと判定する。一方、応答メッセージ集計部512は、所定の時間内に、bit列がすべて「1」とならなかった場合に、全サーバ処理に失敗したと判定する。
このようにすることで、本実施形態に係る分散処理システム1および分散処理方法によれば、外部装置5がクラスタシステム2内のサーバ3(クラスタメンバ)の構成を知らなくても、処理要求を送信した外部装置5が、各サーバ3それぞれから処理担当情報を取得し集計することにより、全サーバ処理が成功した否かを判定することができる。そして、本分散処理システム1および分散処理方法によれば、各サーバ3に処理要求を配信したディスパッチャDが、全サーバ処理の状態等を保持する必要がないため、ディスパッチャDの処理負荷の増大を抑えることができる。
<変形例1>
本実施形態に係る分散処理システム1および分散処理方法においては、ディスパッチャDから「全サーバ送信フラグ」が設定された処理要求を受信した各プロセッサP(P,P,P)が、処理結果と処理担当情報とを含む応答メッセージを直接外部装置5に送信するものとして説明した。
これに対し、各プロセッサP(P,P,P)は、処理結果と処理担当情報とを含む応答メッセージを、処理要求を送信してきたディスパッチャDに返信し、そのディスパッチャDがロードバランサBを介して外部装置5に送信するようにしてもよい。
この場合において、ディスパッチャDは、各プロセッサP(P,P,P)からの応答メッセージを集約することなく、受信した応答メッセージをそのままロードバランサBに転送する。また、ロードバランサBもディスパッチャDから応答メッセージを受信すると、集約することなく外部装置5に転送する。
このようにすることで、本実施形態に係る変形例1においても、本実施形態と同様に、ディスパッチャDが全サーバ処理の状態等を保持する必要がないため、ディスパッチャDの処理負荷の増大を抑えることができる。
<変形例2>
本実施形態に係る分散処理システム1および分散処理方法においては、コンシステントハッシュ法に基づくクラスタシステム2を前提に説明を行った。しかしながら、本発明は、これに限定されず、保存したいデータ(値:value)に対し一意の標識(key)を設定して保存するKVS(Key Value Store)を採用するクラスタシステムであればよい。
その場合、総数N個(担当分の総和)のサーバ(プロセッサP)に対し、「0」〜「N−1」の番号を付し、各サーバは、処理結果に、そのサーバ自身に付された番号(「0」〜「N−1」うちの1つであり、当該サーバの担当分を示す)とサーバ総数Nとを付して応答メッセージを生成し、外部装置5に送信すればよい。
外部装置5は、各サーバそれぞれから応答メッセージを受け取り、「0」〜「N−1」の番号のすべてがそろったか否かで、クラスタシステム内の全てのサーバから応答メッセージを受信したか否か、つまり、全サーバ処理が成功したか否かを判定する。
このようにすることで、分散処理システムを構成する複数のサーバすべてに対し一斉に処理を実行させたい場合において、従来、各サーバに処理要求を配信するディスパッチャDでなければ、全サーバ処理が成功したか否かを判定できなかったものを、ディスパッチャDによらず、処理要求を送信した外部装置5において判定できる。よって、ディスパッチャDが全サーバ処理の状態等を保持する必要がなく、ディスパッチャDの処理負荷の増大を抑えることができる。
1,1a 分散処理システム
2 クラスタシステム
3 サーバ
5 外部装置
100 ID空間管理情報(管理情報)
110,310 制御部
111,311 情報受信部
112,312 構文解析部
113 振り分け処理部
114 要求配信部
115,316 情報送信部
120,320 入出力部
130,330 メモリ部
140,340 記憶部
313 要求処理部
314 処理担当情報生成部
315 応答メッセージ生成部
511 処理要求送信部
512 応答メッセージ集計部
B ロードバランサ
D ディスパッチャ
P プロセッサ
S ストレージ

Claims (3)

  1. 外部装置から受信した処理要求を、クラスタメンバを構成するサーバに振り分ける複数のディスパッチャと、前記ディスパッチャから受信した前記処理要求に基づき、自身が保存するデータについて処理を実行する複数の前記サーバと、前記サーバが実行した処理結果を受信する前記外部装置と、を備える分散処理システムであって、
    前記ディスパッチャは、
    前記外部装置から受信した前記処理要求に、前記複数のサーバすべてに対する処理の要求を示す全サーバ送信フラグが設定されているか否かを判定する第1の構文解析部と、
    前記第1の構文解析部が前記処理要求に前記全サーバ送信フラグが設定されていると判定した場合に、前記複数のサーバすべてに当該処理要求を配信する要求配信部と、を備え、
    前記複数のサーバそれぞれは、
    前記サーバそれぞれに割り当てられるデータの担当分と、前記サーバそれぞれの当該担当分の総和とを示す管理情報を記憶する記憶部と、
    前記ディスパッチャから受信した処理要求に、前記全サーバ送信フラグが設定されているか否かを判定する第2の構文解析部と、
    前記処理要求に示される処理を実行し処理結果を生成する要求処理部と、
    前記第2の構文解析部が前記処理要求に前記全サーバ送信フラグが設定されていると判定した場合に、前記管理情報を参照し、前記サーバ自身に割り当てられた前記担当分と、前記担当分の総和とを示す処理担当情報を生成する処理担当情報生成部と、
    前記処理結果および前記処理担当情報を含む応答メッセージを生成し、前記外部装置に送信する応答メッセージ生成部と、を備え、
    前記外部装置は、
    前記複数のサーバすべてに対し処理を要求する場合に、前記全サーバ送信フラグを設定した前記処理要求を前記複数のディスパッチャのいずれかに送信する処理要求送信部と、
    前記複数のサーバそれぞれから受信した前記応答メッセージから前記処理担当情報を抽出し、前記抽出した処理担当情報に含まれる前記担当分を、受信した各応答メッセージのすべてについて集計し、当該集計結果が、前記抽出した処理担当情報に含まれる前記担当分の総和と一致するか否かを判定し、所定の時間内に前記担当分の総和と一致した場合は前記複数のサーバすべてに対する処理が成功したと判定し、一致しない場合は失敗したと判定する応答メッセージ集計部と、を備えること
    を特徴とする分散処理システム。
  2. 前記複数のサーバそれぞれの前記応答メッセージ生成部は、
    前記生成した応答メッセージを、前記外部装置に替えて、前記処理要求を配信したディスパッチャに送信し、
    前記ディスパッチャは、
    前記複数のサーバそれぞれから受信した応答メッセージを集約することなく、前記外部装置に転送すること
    を特徴とする請求項1に記載の分散処理システム。
  3. 外部装置から受信した処理要求を、クラスタメンバを構成するサーバに振り分ける複数のディスパッチャと、前記ディスパッチャから受信した前記処理要求に基づき、自身が保存するデータについて処理を実行する複数の前記サーバと、前記サーバが実行した処理結果を受信する前記外部装置と、を備える分散処理システムの分散処理方法であって、
    前記外部装置は、
    前記複数のサーバすべてに対し処理を要求する場合に、前記複数のサーバすべてに対する処理の要求を示す全サーバ送信フラグを設定した前記処理要求を前記複数のディスパッチャのいずれかに送信するステップを実行し、
    前記ディスパッチャは、
    前記外部装置から受信した前記処理要求に、前記全サーバ送信フラグが設定されているか否かを判定するステップと、
    前記処理要求に前記全サーバ送信フラグが設定されていると判定された場合に、前記複数のサーバすべてに当該処理要求を配信するステップと、を実行し、
    前記複数のサーバそれぞれは、
    前記サーバそれぞれに割り当てられるデータの担当分と、前記サーバそれぞれの当該担当分の総和とを示す管理情報を記憶する記憶部を備えており、
    前記ディスパッチャから受信した処理要求に、前記全サーバ送信フラグが設定されているか否かを判定するステップと、
    前記処理要求に示される処理を実行して処理結果を生成するステップと、
    前記処理要求に前記全サーバ送信フラグが設定されていると判定された場合に、前記管理情報を参照し、前記サーバ自身に割り当てられた前記担当分と、前記担当分の総和とを示す処理担当情報を生成するステップと、
    前記処理結果および前記処理担当情報を含む応答メッセージを生成し、前記外部装置に送信するステップと、を実行し、
    前記外部装置は、
    前記複数のサーバそれぞれから受信した前記応答メッセージから前記処理担当情報を抽出し、前記抽出した処理担当情報に含まれる前記担当分を、受信した各応答メッセージのすべてについて集計し、当該集計結果が、前記抽出した処理担当情報に含まれる前記担当分の総和と一致するか否かを判定し、所定の時間内に前記担当分の総和と一致した場合は前記複数のサーバすべてに対する処理が成功したと判定し、一致しない場合は失敗したと判定するステップを実行すること
    を特徴とする分散処理方法。
JP2012172616A 2012-08-03 2012-08-03 分散処理システムおよび分散処理方法 Active JP5723330B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012172616A JP5723330B2 (ja) 2012-08-03 2012-08-03 分散処理システムおよび分散処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012172616A JP5723330B2 (ja) 2012-08-03 2012-08-03 分散処理システムおよび分散処理方法

Publications (2)

Publication Number Publication Date
JP2014032530A JP2014032530A (ja) 2014-02-20
JP5723330B2 true JP5723330B2 (ja) 2015-05-27

Family

ID=50282310

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012172616A Active JP5723330B2 (ja) 2012-08-03 2012-08-03 分散処理システムおよび分散処理方法

Country Status (1)

Country Link
JP (1) JP5723330B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6374841B2 (ja) * 2015-08-03 2018-08-15 日本電信電話株式会社 仮想マシン配置装置および仮想マシン配置方法
JP6977621B2 (ja) * 2018-03-02 2021-12-08 日本電信電話株式会社 制御装置、及び制御方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3395208B2 (ja) * 1991-07-10 2003-04-07 株式会社日立製作所 分散データベースのソート方法およびアクセス方法
JP2002342327A (ja) * 2001-05-22 2002-11-29 Nec Corp ディレクトリ検索システム、ディレクトリ検索方法およびディレクトリ検索用プログラム
JP4177346B2 (ja) * 2005-03-30 2008-11-05 株式会社東芝 負荷分散システム、実サーバ及び負荷分散方法
JP2009251756A (ja) * 2008-04-02 2009-10-29 Nec Corp クライアント装置、分散ファイルシステム、共有リソース多重化方法およびプログラム
WO2011074630A1 (ja) * 2009-12-17 2011-06-23 日本電気株式会社 負荷分散システム、負荷分散方法、負荷分散システムを構成する装置およびプログラム
JP2011180658A (ja) * 2010-02-26 2011-09-15 Kddi Corp 分散ファイルシステムにおける冗長化方法
JP2012128698A (ja) * 2010-12-16 2012-07-05 Hitachi Ltd 負荷分散ブレードシステム

Also Published As

Publication number Publication date
JP2014032530A (ja) 2014-02-20

Similar Documents

Publication Publication Date Title
JP5719323B2 (ja) 分散処理システム、ディスパッチャおよび分散処理管理装置
US20210256016A1 (en) Blockchain system and method
US9164806B2 (en) Processing pattern framework for dispatching and executing tasks in a distributed computing grid
WO2019067997A1 (en) AUTONOMOUS MULTIPLE TENANT DATABASE CLOUD SERVICE FRAME
CA2897338C (en) Data stream splitting for low-latency data access
US9699085B2 (en) Periodic advertisements of host capabilities in virtual cloud computing infrastructure
WO2014030235A1 (ja) 分散型データベースシステム
JP2017129935A (ja) サーバシステム、サーバシステムを制御する方法およびプログラム。
JP5969315B2 (ja) データ移行処理システムおよびデータ移行処理方法
CN104125294A (zh) 一种大数据安全管理方法和***
JP5723330B2 (ja) 分散処理システムおよび分散処理方法
US10171570B2 (en) Information processing apparatus
JPWO2017169471A1 (ja) 処理システムおよび処理方法
KR20210097560A (ko) 블록체인 트랜잭션 처리 방법
Xia et al. Distributed web crawling: A framework for crawling of micro-blog data
EP3829139A1 (en) Distributed storage system for storing context data
JP5956364B2 (ja) クラスタシステム
JP6324304B2 (ja) クライアント装置及び通信システム及びデータ処理方法及びプログラム
CN108572993B (zh) db分库hash方法、电子设备、存储介质和对数据访问的装置
JP5711772B2 (ja) クラスタシステム
WO2019218469A1 (zh) 配置更新方法、配置更新的响应方法及服务器、***
JP2013182553A (ja) 管理装置およびプログラム
JP6506156B2 (ja) ノードおよびグラビテーション抑止方法
JP2015162216A (ja) 分散処理システム
JP6326011B2 (ja) ノード、リバランシングキャンセル方法、および、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140325

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20140502

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140528

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150113

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150327

R150 Certificate of patent or registration of utility model

Ref document number: 5723330

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150