JP5723330B2 - 分散処理システムおよび分散処理方法 - Google Patents
分散処理システムおよび分散処理方法 Download PDFInfo
- 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
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
図1は、本実施形態に係る分散処理システム1の全体構成を示す図である。
図1に示すように、分散処理システム1は、クラスタシステム2が、ネットワークを介して、外部装置5に接続されて構成される。そして、クラスタシステム2は、外部装置5からの処理要求データを受け取り、クラスタシステム2内でデータの全件検索や、クラスタシステム2を構成するサーバ3(後記する図2参照)の正常性確認等の全サーバ処理を実行し、その処理結果を含む応答データを、外部装置5に送信する。
図2に示すように、本分散処理システム1は、外部装置5とクラスタシステム2とを備える。そして、クラスタシステム2は、ロードバランサBと、複数のディスパッチャD(D1,D2,D3)と、複数のプロセッサP(P1,P2,P3)と、複数のストレージS(S1,S2,S3)とを含んで構成される。なお、本実施形態においては、このプロセッサPとストレージSとの組で、1つのサーバ3を構成するものとして説明する。
なお、本実施形態においては、ID空間(コンシステントハッシュ環)におけるサーバおよびデータのID(ハッシュ値)の配置の偏りを解消するため、1つのクラスタメンバから複数のID(ハッシュ値)を算出し、ID空間(コンシステントハッシュ環)上に仮想サーバを配置するものとする。これにより、各サーバ3(クラスタメンバ)の担当するデータ数を均等化し、各サーバ3の負荷を均等にすることができる。
なお、ディスパッチャDの詳細な構成と処理については、後記する。
また、プロセッサPは、受信した処理要求に「全サーバ送信フラグ」が設定されている場合には、処理結果を、処理要求を送信してきたディスパッチャDではなく、外部装置5に直接送信する。このときプロセッサPは、そのサーバ3自身に割り当てられたデータの担当分として、ID空間上で担当する領域を示す情報(後記する「処理担当情報」)を付した処理結果を、応答メッセージとして外部装置5に送信する。
次に、図2を参照して、本実施形態に係る分散処理システム1が行う処理の概要について説明する。
まず、外部装置5は、「全サーバ送信フラグ」を設定した処理要求をロードバランサBに送信する(ステップS1)。
以下、本実施形態に係る分散処理システム1を構成する各装置の構成例について、具体的に説明する。
ロードバランサBは、ネットワークを介して接続される外部装置5からの処理要求等を受け付け、ラウンドロビン等により、その処理要求等を、クラスタシステム2内の複数のディスパッチャDのいずれかに振り分ける装置である。そして、このロードバランサBは、制御部、入出力部、メモリ部および記憶部(いずれも不図示)を含んで構成される。
次に、ディスパッチャDの構成例について説明する。図3は、本実施形態に係るディスパッチャDの構成例を示す機能ブロック図である。
ディスパッチャDは、ロードバランサBおよび複数のプロセッサP(P1,P2,P3)と通信可能に接続され、ロードバランサBから取得した処理要求を、プロセッサP(P1,P2,P3)に振り分ける装置であり、図3に示すように、制御部110と、入出力部120と、メモリ部130と、記憶部140とを含んで構成される。
また、この入出力部120は、通信回線を介して情報の送受信を行う通信インタフェースと、不図示のキーボード等の入力手段やモニタ等の出力手段等との間で入出力を行う入出力インタフェースとから構成される。
また、振り分け処理部113は、各サーバ3から処理要求に対する処理結果である出力データを受信すると、ロードバランサBにその処理結果を送信する。
図4に示すように、ID空間管理情報100は、仮想ノードID101、物理ノードID102、ハッシュ値103のデータ項目を含んで構成される。
なお、この仮想ノードID101および物理ノードID102は、本分散処理システム1内において、一意に特定されるIDであればよく、図4に示した表記方法に限定されるものではない。
例えば、図4に示す、第1行目のハッシュ値103が「56」の場合は、仮想ノードID101が「2−7」の仮想ノードのID空間(コンシステントハッシュ環)における入力データの担当領域が、「0」〜「56」であることを示す。また、第2行目のハッシュ値103が「172」の場合は、仮想ノードID101が「5−96」の仮想ノードのID空間(コンシステントハッシュ環)における入力データの担当領域が、1つ前の行のハッシュ値103の値に「1」をプラスした「57」〜「172」であることを示す。
次に、サーバ3の構成例について説明する。図5は、本実施形態に係るサーバ3の構成例を示す機能ブロック図である。
サーバ3は、複数のディスパッチャD(D1,D2,D3)および外部装置5と通信可能に接続され、制御部310と、入出力部320と、メモリ部330と、記憶部340とを含んで構成される。なお、このサーバ3の構成のうち、制御部310、入出力部320およびメモリ部330がプロセッサP(図2参照)に相当し、記憶部340がストレージS(図2参照)に相当する。
また、この入出力部320は、通信回線を介して情報の送受信を行う通信インタフェースと、不図示のキーボード等の入力手段やモニタ等の出力手段等との間で入出力を行う入出力インタフェースとから構成される。
この処理担当情報は、例えば、サーバそれぞれの担当分の総和である全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に引き渡す。
次に、外部装置5の構成例について説明する。図6は、本実施形態に係る外部装置5の構成例を示す機能ブロック図である。なお、図6においては、制御部、入出力部、メモリ部および記憶部の図示を省略し、外部装置5の特徴となる機能を示す制御部内の処理要求送信部511と応答メッセージ集計部512とを記載している。
応答メッセージ集計部512によるこの判定は、例えば、処理担当情報としてそのサーバ3の担当分が示されたbit列を、各サーバ3から受信した応答メッセージのすべてについてor演算し、ID空間(コンシステントハッシュ環)の領域(担当分の総和)に対応するbit列がすべて「1」であるときに、すべてのサーバ3からの応答メッセージを受信した、つまり、全サーバ処理が成功したと判定する。一方、応答メッセージ集計部512は、所定の時間内に、bit列がすべて「1」とならなかった場合に、全サーバ処理が失敗したと判定する。
なお、この所定の時間内とは、例えば、外部装置5の処理要求送信部511が、全サーバ処理の処理要求を送信してから所定の時間内であってもよいし、全サーバ処理の処理要求を送信後、最初または直前の応答メッセージを受信してから所定の時間内であってもよい。
次に、本実施形態に係る分散処理システム1において、全サーバ処理を実行する場合の処理の流れについて説明する。
具体的には、応答メッセージ集計部512は、受信した応答メッセージに処理担当情報として付されたbit列をor演算し、ID空間(コンシステントハッシュ環)の領域に対応するbit列がすべて「1」であるときに、すべてのサーバ3からの応答メッセージを受信した、つまり、全サーバ処理が成功したと判定する。一方、応答メッセージ集計部512は、所定の時間内に、bit列がすべて「1」とならなかった場合に、全サーバ処理に失敗したと判定する。
本実施形態に係る分散処理システム1および分散処理方法においては、ディスパッチャDから「全サーバ送信フラグ」が設定された処理要求を受信した各プロセッサP(P1,P2,P3)が、処理結果と処理担当情報とを含む応答メッセージを直接外部装置5に送信するものとして説明した。
これに対し、各プロセッサP(P1,P2,P3)は、処理結果と処理担当情報とを含む応答メッセージを、処理要求を送信してきたディスパッチャDに返信し、そのディスパッチャDがロードバランサBを介して外部装置5に送信するようにしてもよい。
本実施形態に係る分散処理システム1および分散処理方法においては、コンシステントハッシュ法に基づくクラスタシステム2を前提に説明を行った。しかしながら、本発明は、これに限定されず、保存したいデータ(値:value)に対し一意の標識(key)を設定して保存するKVS(Key Value Store)を採用するクラスタシステムであればよい。
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の構文解析部が前記処理要求に前記全サーバ送信フラグが設定されていると判定した場合に、前記複数のサーバすべてに当該処理要求を配信する要求配信部と、を備え、
前記複数のサーバそれぞれは、
前記サーバそれぞれに割り当てられるデータの担当分と、前記サーバそれぞれの当該担当分の総和とを示す管理情報を記憶する記憶部と、
前記ディスパッチャから受信した処理要求に、前記全サーバ送信フラグが設定されているか否かを判定する第2の構文解析部と、
前記処理要求に示される処理を実行し処理結果を生成する要求処理部と、
前記第2の構文解析部が前記処理要求に前記全サーバ送信フラグが設定されていると判定した場合に、前記管理情報を参照し、前記サーバ自身に割り当てられた前記担当分と、前記担当分の総和とを示す処理担当情報を生成する処理担当情報生成部と、
前記処理結果および前記処理担当情報を含む応答メッセージを生成し、前記外部装置に送信する応答メッセージ生成部と、を備え、
前記外部装置は、
前記複数のサーバすべてに対し処理を要求する場合に、前記全サーバ送信フラグを設定した前記処理要求を前記複数のディスパッチャのいずれかに送信する処理要求送信部と、
前記複数のサーバそれぞれから受信した前記応答メッセージから前記処理担当情報を抽出し、前記抽出した処理担当情報に含まれる前記担当分を、受信した各応答メッセージのすべてについて集計し、当該集計結果が、前記抽出した処理担当情報に含まれる前記担当分の総和と一致するか否かを判定し、所定の時間内に前記担当分の総和と一致した場合は前記複数のサーバすべてに対する処理が成功したと判定し、一致しない場合は失敗したと判定する応答メッセージ集計部と、を備えること
を特徴とする分散処理システム。 - 前記複数のサーバそれぞれの前記応答メッセージ生成部は、
前記生成した応答メッセージを、前記外部装置に替えて、前記処理要求を配信したディスパッチャに送信し、
前記ディスパッチャは、
前記複数のサーバそれぞれから受信した応答メッセージを集約することなく、前記外部装置に転送すること
を特徴とする請求項1に記載の分散処理システム。 - 外部装置から受信した処理要求を、クラスタメンバを構成するサーバに振り分ける複数のディスパッチャと、前記ディスパッチャから受信した前記処理要求に基づき、自身が保存するデータについて処理を実行する複数の前記サーバと、前記サーバが実行した処理結果を受信する前記外部装置と、を備える分散処理システムの分散処理方法であって、
前記外部装置は、
前記複数のサーバすべてに対し処理を要求する場合に、前記複数のサーバすべてに対する処理の要求を示す全サーバ送信フラグを設定した前記処理要求を前記複数のディスパッチャのいずれかに送信するステップを実行し、
前記ディスパッチャは、
前記外部装置から受信した前記処理要求に、前記全サーバ送信フラグが設定されているか否かを判定するステップと、
前記処理要求に前記全サーバ送信フラグが設定されていると判定された場合に、前記複数のサーバすべてに当該処理要求を配信するステップと、を実行し、
前記複数のサーバそれぞれは、
前記サーバそれぞれに割り当てられるデータの担当分と、前記サーバそれぞれの当該担当分の総和とを示す管理情報を記憶する記憶部を備えており、
前記ディスパッチャから受信した処理要求に、前記全サーバ送信フラグが設定されているか否かを判定するステップと、
前記処理要求に示される処理を実行して処理結果を生成するステップと、
前記処理要求に前記全サーバ送信フラグが設定されていると判定された場合に、前記管理情報を参照し、前記サーバ自身に割り当てられた前記担当分と、前記担当分の総和とを示す処理担当情報を生成するステップと、
前記処理結果および前記処理担当情報を含む応答メッセージを生成し、前記外部装置に送信するステップと、を実行し、
前記外部装置は、
前記複数のサーバそれぞれから受信した前記応答メッセージから前記処理担当情報を抽出し、前記抽出した処理担当情報に含まれる前記担当分を、受信した各応答メッセージのすべてについて集計し、当該集計結果が、前記抽出した処理担当情報に含まれる前記担当分の総和と一致するか否かを判定し、所定の時間内に前記担当分の総和と一致した場合は前記複数のサーバすべてに対する処理が成功したと判定し、一致しない場合は失敗したと判定するステップを実行すること
を特徴とする分散処理方法。
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)
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)
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 | クライアント装置、分散ファイルシステム、共有リソース多重化方法およびプログラム |
JP5660049B2 (ja) * | 2009-12-17 | 2015-01-28 | 日本電気株式会社 | 負荷分散システム、負荷分散方法、負荷分散システムを構成する装置およびプログラム |
JP2011180658A (ja) * | 2010-02-26 | 2011-09-15 | Kddi Corp | 分散ファイルシステムにおける冗長化方法 |
JP2012128698A (ja) * | 2010-12-16 | 2012-07-05 | Hitachi Ltd | 負荷分散ブレードシステム |
-
2012
- 2012-08-03 JP JP2012172616A patent/JP5723330B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2014032530A (ja) | 2014-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12093247B2 (en) | Blockchain system and method | |
US20190102384A1 (en) | Autonomous multitenant database cloud service framework | |
US10013456B2 (en) | Parallel processing database system with a shared metadata store | |
US9164806B2 (en) | Processing pattern framework for dispatching and executing tasks in a distributed computing grid | |
CA2897338C (en) | Data stream splitting for low-latency data access | |
CN103391312A (zh) | 资源离线下载方法及装置 | |
JP2017129935A (ja) | サーバシステム、サーバシステムを制御する方法およびプログラム。 | |
JP5969315B2 (ja) | データ移行処理システムおよびデータ移行処理方法 | |
CN104125294A (zh) | 一种大数据安全管理方法和系统 | |
JP5723330B2 (ja) | 分散処理システムおよび分散処理方法 | |
US10171570B2 (en) | Information processing apparatus | |
KR20210097560A (ko) | 블록체인 트랜잭션 처리 방법 | |
Xia et al. | Distributed web crawling: A framework for crawling of micro-blog data | |
US20210157769A1 (en) | Distributed storage system for storing context data | |
JP5956364B2 (ja) | クラスタシステム | |
JP6324304B2 (ja) | クライアント装置及び通信システム及びデータ処理方法及びプログラム | |
CN108572993B (zh) | db分库hash方法、电子设备、存储介质和对数据访问的装置 | |
WO2019218469A1 (zh) | 配置更新方法、配置更新的响应方法及服务器、系统 | |
JP2013182553A (ja) | 管理装置およびプログラム | |
JP6506156B2 (ja) | ノードおよびグラビテーション抑止方法 | |
JP2014146153A (ja) | クラスタシステム | |
JP2015162216A (ja) | 分散処理システム | |
JP6326011B2 (ja) | ノード、リバランシングキャンセル方法、および、プログラム | |
JP6387333B2 (ja) | ノードおよびスロット最適化方法 | |
JP6093319B2 (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 |