JPWO2016166844A1 - 分散処理システム、タスク処理方法、記憶媒体 - Google Patents

分散処理システム、タスク処理方法、記憶媒体 Download PDF

Info

Publication number
JPWO2016166844A1
JPWO2016166844A1 JP2017512128A JP2017512128A JPWO2016166844A1 JP WO2016166844 A1 JPWO2016166844 A1 JP WO2016166844A1 JP 2017512128 A JP2017512128 A JP 2017512128A JP 2017512128 A JP2017512128 A JP 2017512128A JP WO2016166844 A1 JPWO2016166844 A1 JP WO2016166844A1
Authority
JP
Japan
Prior art keywords
data
worker node
task
output data
cached
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017512128A
Other languages
English (en)
Other versions
JP6434131B2 (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2016166844A1 publication Critical patent/JPWO2016166844A1/ja
Application granted granted Critical
Publication of JP6434131B2 publication Critical patent/JP6434131B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • 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
    • 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/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/142Reconfiguring to eliminate the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

マスターノードと複数のワーカーノードを有する分散処理システムに関する発明である。ワーカーノードにはそれぞれ識別子が設定され、第1のタスクの実行結果である第1の出力データを自身のメモリにキャッシュし、他のワーカーノードに第1の出力データをコピーさせる。マスターノードは第1の出力データを入力データとする第2のタスクを割り当てるワーカーノードを、第1のワーカーノードの識別子の情報に基づいて選択する。

Description

本発明は、分散処理システム、タスク処理方法、記憶媒体に関するものである。
大量データの分析処理を行うシステムにおける性能向上を目的とし、分散処理化による処理性能向上、サーバDRAMメモリ上にデータを配置し処理対象のデータが配置されたサーバにジョブスケジューリングすることよるI/O性能向上を実現するような、データ配置を考慮した分散処理環境が知られている。
このような分散処理環境のデータ複製処理において、障害発生時にジョブスケジューラに複製データの配置先を通知することにより、障害復旧時間を短縮する技術が知られている。(特許文献1)
特開2012−073975号公報
しかし、特許文献1に記載の技術では、データ更新に伴うデータ複製処理の度にジョブスケジューラへの通知処理が発生し、ジョブスケジューラへの負荷集中及び、データ配置情報の更新による定常時の性能劣化及び同期処理にタイムラグが発生する。
本発明の目的は、定常時の性能を維持しつつ、障害発生時に短時間で復旧することにある。
本発明に係る代表的な分散処理システムは、それぞれにワーカーノード識別子が設定され、それぞれがデータをキャッシュするメモリを有する複数のワーカーノードを含む分散処理システムであって、前記ワーカーノード識別子の中の第1のワーカーノード識別子が設定され、第1のタスクの実行結果の第1の出力データを、キャッシュ要求に応じて自ワーカーノードに有される第1のメモリにキャッシュし、他ワーカーノードへ前記第1の出力データをコピーさせる、前記複数のワーカーノードの中の第1のワーカーノードと、前記ワーカーノード識別子の中の第2のワーカーノード識別子が設定され、前記第1の出力データのコピーを、自ワーカーノードに有される第2のメモリにキャッシュする、前記複数のワーカーノードの中の第2のワーカーノードと、前記第1のワーカーノード識別子の情報を有し、前記第1の出力データを入力する第2のタスクを割り当てるワーカーノードを前記第1のワーカーノードであると、前記第1のワーカーノード識別子の情報に基づき選択するマスタノードとを備えたことを特徴とする。
本発明によれば、定常時の性能を維持することが可能となり、障害発生時に短時間で復旧することができる。また、その復旧時間は、データサイズやタスク実行時間に依存せず、所定の時間内とすることが可能である。
分散処理システムの構成の例を示す図である。 マスタノードの構成の例を示す図である。 ワーカーノードの構成の例を示す図である。 タスク管理テーブルの例を示す図である。 タスク配置管理テーブルの例を示す図である。 キャッシュ管理テーブルの例を示す図である。 ローカルタスク管理テーブルの例を示す図である。 ローカルキャッシュ管理テーブルの例を示す図である。 コピーデータ管理テーブルの例を示す図である。 タスク登録の処理フローの例を示す図である。 キャッシュ登録の処理フローの例を示す図である。 障害タスク復旧の処理フローの例を示す図である。 データ配置更新処理の情報の更新の例を示す図である。 データ削除処理の情報の更新の例を示す図である。 ワーカーノード復旧の処理フローの例を示す図である。 実施例2の分散処理システムの構成の例を示す図である。 実施例2のワーカーノードの構成の例を示す図である。 実施例2のデータノードの構成の例を示す図である。 実施例3のキャッシュ登録の処理フローの例を示す図である。
以下、図面を参照しながら、実施の形態を説明する。なお、以後の説明では、「×××テーブル」等の表現にて情報を説明することがあるが、これら情報はテーブルのデータ構造以外で表現されていてもよい。そのため、データ構造に依存しないことを示すために「×××テーブル」等について「×××情報」と呼ぶことがある。各情報の内容を説明する際に、「番号」、「名称」という表現の識別情報が採用されるが、他の種類の識別情報が使用されて良い。以後の説明における「×××処理」や「×××部」は、「×××プログラム」であってもよい。以後の説明における「処理」や「部」を主語とした説明は、プロセッサを主語とした説明としてもよい。プロセッサの処理の一部または全ては、専用ハードウェアによって実現されてもよい。各種プログラムは、プログラム配布サーバや、計算機が読み取り可能な記憶媒体によって各計算機にインストールされてもよい。
図1は、分散処理システムの構成の例を示す図である。分散処理システムは、全体としてデータセンタに設置された計算機システム1であってもよい。この計算機システム1は、マスタノード2及びクライアント端末3がネットワークスイッチ4を介して複数のワーカーノード5A、5B、5C(以下、ワーカーノード5A、5B、5Cを特に区別する必要のない場合は代表的にワーカーノード5と記載し、他の符号も同じ表記とする)と接続されると共に、マスタノード2及びワーカーノード5がそれぞれストレージスイッチ6を介してストレージ装置7と接続されることにより構成されている。
マスタノード2は、パーソナルコンピュータ又はワークステーション等から構成され、制御プログラム群211と管理テーブル群212とアプリケーション213を有する。マスタノード2は具体的には図2の例に示すように、メモリ21、CPU(Central Processing Unit)22、ネットワークインタフェース23及びディスクインタフェース24を備え、例えばOS(Operating System)の管理下で動作する。
CPU22は、マスタノード2全体の動作制御を司るCPUであり、メモリ21に格納された後述の制御プログラム群211及び管理テーブル群212に基づいて必要な処理を実行する。メモリ21は、各内容を後述する制御プログラム群211及び管理テーブル群212を記憶するために用いられるほか、CPU22のワークメモリとしても用いられる。
ネットワークインタフェース23は、図1に示したネットワークスイッチ4に対応した通信インタフェースであり、マスタノード2が各ワーカーノード5と通信する際のプロトコル制御を行う。またディスクインタフェース24は、ストレージスイッチ6に対応した通信インタフェースであり、マスタノード2がストレージ装置7と通信する際のプロトコル制御を行う。
図1に戻り、ワーカーノード5は、マスタノード2と同様にパーソナルコンピュータ又はワークステーション等から構成される。ワーカーノード5Aは「W1」で識別され、制御プログラム群511Aと管理テーブル群512Aを有し、ワーカーノード5Bは「W2」で識別され、制御プログラム群511Bと管理テーブル群512Bを有し、ワーカーノード5Cは「W3」で識別され、制御プログラム群511Cと管理テーブル群512Cを有する。
制御プログラム群511A、511B、511Cのそれぞれは、記憶されているワーカーノード5が異なるだけで、同じ内容のプログラム群である。管理テーブル群512A、512B、512Cのそれぞれは、記憶されているワーカーノード5が異なり、同じ項目のテーブル群であって、各項目の内容はそれぞれで異なってもよいし、同じであってもよい。
ワーカーノード5は、図3に示すように、CPU52、メモリ51、ネットワークインタフェース53及びディスクインタフェース54を備え、例えばOSの管理下で動作する。これらは、それぞれマスタノード2のCPU22、メモリ21、ネットワークインタフェース23及びディスクインタフェース24と同様のものであるため、それらの詳細については説明を省略する。なお、後述するキャッシュにメモリ51が利用されても良く、ワーカーノード5の制御プログラム群511と管理テーブル群512の内容については後述する。
図1に戻り、ストレージ装置7は、複数のディスク装置71を備えて構成される。ストレージ装置7は、複数のディスク装置71を用いてRAID(Redundant Arrays of Inexpensive Disks)グループを構成してもよい。ストレージ装置7は、RAIDグループ上に複数のボリュームを構成してもよい。複数のディスク装置71は、記憶媒体の異なるディスク装置、例えば、HDD(Hard Disk Drive)と、SSD(Solid State Drive)でもよい。
ディスク装置は、例えばFC(Fibre Channel)ディスク、SCSI(Small Computer System Interface)ディスク、SATA(Serial ATA)ディスク、ATA(AT Attachment)ディスク又はSAS(Serial Attached SCSI)ディスク等であり、大容量のデータを記憶することのできる記憶媒体である。
マスタノード2は、図2に示すように、メモリ21内に制御プログラム群211として、スケジュール管理部2111、タスク配置管理部2112、及びキャッシュ管理部2113を有する。これらの各部はプログラムであり、説明の分かり易さのために分けてあるが、一つに纏めて実現されても良いし、実装上の都合により任意に分けてもよい。
スケジュール管理部2111は、アプリケーション213からの処理要求に対して、タスク管理テーブル2121を用いて、各タスクの進捗を管理する。タスク配置管理部2112は、スケジュール管理部2112またはタスク実行部5111からの処理要求に対して、タスク配置管理テーブル2122を用いて、各ワーカーノード5へのタスク割り当てを管理する。
キャッシュ管理部2113は、スケジュール管理部2111またはデータ配置管理部5113からの処理要求に対して、キャッシュ管理テーブル2123を用いて、各ワーカーノード5に対するキャッシュデータの配置を管理する。
ワーカーノード5は、図3に示すように、メモリ51内に制御プログラム群511として、タスク実行部5111、ローカルキャッシュ管理部5112、データ配置管理部5113、及びデータ保管部5114を有する。これらの各部はプログラムであり、説明の分かり易さのために分けてあるが、一つに纏めて実現されても良いし、実装上の都合により任意に分けてもよい。
タスク実行部5111は、タスク配置管理部2112からの処理要求に対して、ローカルタスク管理テーブル5121を用いて、割り当てられた各タスクの実行ならびに進捗を管理する。ローカルキャッシュ管理部5112は、データ配置管理部5113または他のワーカーノード5上で動作しているローカルキャッシュ管理部5112からの処理要求に対して、ローカルキャッシュ管理テーブル5122を用いて、割り当てられたキャッシュデータを管理する。
データ配置管理部5113は、タスク実行部5111またはローカルキャッシュ管理部5113からの処理要求に対して、マスタノード2と各ワーカーノード5の間のタスク割り当て情報及びキャッシュデータ情報の整合性を管理する。データ保管部5114は、そのデータ保管部5114を有するワーカーノード5のメモリ51を管理し、コピーデータ管理テーブル5123を用いて、キャッシュデータのメモリ上の配置及び他のワーカーノード5上のデータ保管部5114と連携してコピー処理を実行する。
なお、各部を制御プログラム群211、511の一部のプログラムとして説明したが、各部というプログラムをCPU22、52が実行することにより物としての各部を構成してもよい。例えば、タスク実行部5111というプログラムをCPU52が実行することにより、タスク実行部という物を構成してもよい。
タスク管理テーブル2121は、図4に示すように、タスク識別子欄21211、処理欄21212、入力データ欄21213、出力データ欄21214、キャッシュ要求欄21215、状態欄21216、及び優先度欄21217を有する。これらの欄の情報は、例えば、1つ目のタスクT1が、ストレージ装置7上に配置されたfile1をload処理によりアプリケーション213が扱うデータオブジェクトD1に変換するタスクであり、既に処理が完了しており、さらに他のタスクと比較して優先度が高いことを表す。
図4の例では、タスク管理テーブル2121の上からタスクが実行されるため、出力データ欄21214のデータオブジェクトが入力データ欄21213の次の行のデータオブジェクトとなっている。また、キャッシュ要求欄21215は、出力データ欄21214のデータオブジェクトをキャッシュへ格納するか否かを示す情報であり、予め設定される。状態欄21216はタスクの状態を示す情報であり、その内容については後述する。
タスク配置管理テーブル2122は、図5に示すように、タスク識別子欄21221、及びワーカーノード識別子欄21213を有する。タスク識別子欄21221は、タスク管理テーブル2121のタスク識別子欄21211の情報に対応する情報である。ワーカーノード識別子欄21222は、タスクが割り当てられたワーカーノード5を識別する情報である。このため、例えば、1つ目のタスクT1がワーカーノードW2で処理中であることを表す。
キャッシュ管理テーブル2123は、図6に示すように、データ識別子欄21231、及びワーカーノード識別子欄21232を有する。データ識別子欄21231は、タスク管理テーブル2121の入力データ欄21213と出力データ欄21214のデータオブジェクトに対応する情報である。ワーカーノード識別子21232は、データオブジェクトがキャッシュに配置されたワーカーノード5を識別する情報である。このため、例えば、1つ目のデータオブジェクトD1がワーカーノードW2上に配置されていることを表す。
ローカルタスク管理テーブル5121は、図7に示すように、タスク識別子欄51211、処理欄51212、入力データ欄51213、出力データ欄51214、キャッシュ要求欄51215、状態欄51216、及び優先度欄51217を有する。これらの情報それぞれは、タスク管理情報テーブル2121の各欄と同様であるため、その詳細については説明を省略する。
ローカルキャッシュ管理テーブル5122は、図8に示すように、データ識別子欄51221を有する。この情報は、例えば、データオブジェクトD2が、このローカルキャッシュ管理テーブル5122を有するワーカーノード5のローカルメモリにキャッシュされていることを表す。
コピーデータ管理テーブル5123は、図9に示すように、データ識別子欄51231、コピーデータ識別子51232、ワーカーノード識別子欄51233、及び状態欄51234を有する。データ識別子欄51231は、タスク管理テーブル2121の入力データ欄21213と出力データ欄21214等のデータオブジェクトに対応する情報である。コピーデータ識別子欄51232は、データ識別子欄51231のデータオブジェクトの複数のコピーそれぞれを識別する情報である。
ワーカーノード識別子欄51233は、コピーデータ識別子欄51232のコピーであるデータオブジェクトそれぞれが配置されたワーカーノード5を識別する情報である。状態欄51234は、コピーデータ識別子欄51232のコピーであるデータオブジェクトそれぞれがマスタ(M)であるかスレーブ(S)であるかの属性情報である。
これにより、例えば、データ保管部5114はデータオブジェクトD2に対して独自の識別子を付けたデータオブジェクトM2、C2として管理しており、それぞれワーカーノードW1、W2上に配置し、データオブジェクトM2をマスタ(M)、データオブジェクトC2をスレーブ(S)として、データオブジェクトD2に対するアクセス要求を受信した際には、マスタ(M)であるデータオブジェクトM2をワーカーノードW1から取得し応答することを表す。
データ保管部5114による独自の識別子を付加したデータ管理により、タスク実行処理とデータコピー処理を独立して動作させ、タスク実行処理からはデータのコピー管理処理を隠蔽することが可能となり、コピー処理をタスク実行処理に影響を与えることなく実現することができる。なお、マスタ(M)とスレーブ(S)の設定については後述する。
図10は、タスク登録の処理フローの例を示す図である。まず、スケジュール管理部2111は、アプリケーション213からの処理要求のタスクあるいはOSを経由しての処理要求のタスクを受け取ると、タスク管理テーブル2121に登録する(SP301)。その際、状態欄21216の値は「未割り当て」とする。
スケジュール管理部2111は、キャッシュ管理部2113に対してキャッシュ判定要求を発行し、要求を受けたキャッシュ管理部2113はタスク管理テーブル2121の入力データ欄21213を参照することにより特定した入力データのデータ識別子が、キャッシュ管理テーブル2123のデータ識別子欄21231上に存在するどうかの情報と、存在する場合は対応するワーカーノード識別欄21232の情報を応答する(SP303)。
スケジュール管理部2111は、その応答の情報により入力データが既にキャッシュされているかどうかを判定する(SP304)。スケジュール管理部2111は、ステップSP304の判定で既にキャッシュされている場合、キャッシュ管理テーブル2123のワーカーノード識別子欄21232の情報よりキャッシュデータが配置されているワーカーノード5を特定する。
そして、特定したワーカーノード5に対するタスク割り当ての処理要求をタスク配置管理部2112へ発行し、タスク管理テーブル2121の状態欄21216を「割り当て済」に更新する(SP305)。
一方、スケジュール管理部2111は、ステップSP304の判定でキャッシュされていなかった場合、任意のワーカーノード5を選択してタスク配置管理部2112へタスク割り当ての処理要求を発行し、タスク管理テーブル2121の状態欄21216を「割り当て済」に更新する(SP306)。なお、任意のワーカーノード5を選択する際、下記のような選択でもよい。
・ランダムに選択
・ラウンドロビンで選択
・負荷の低いワーカーノード5を優先して選択
・処理中のタスク数が少ないワーカーノード5を優先して選択
・同じ入力データを必要とする複数のタスクが、
1つのワーカーノード5に配置されるように選択
また、1つの選択では1つのワーカーノード5に決定できない場合、他の選択との組合せに基づいて選択してもよい。
次に、処理要求を受けたタスク配置管理部2112は、処理要求で指定されたワーカーノード5上のタスク実行部5111に対してタスク処理要求を発行した後(SP307)、スケジュール管理部2111へ処理要求に対する応答をする。応答を受けたスケジュール管理部2111は、タスク配置管理テーブル2122に新しい行を追加してタスク処理要求を発行したタスク及び要求先のワーカーノード5を登録し、タスク管理テーブル2121の状態欄21216を「処理中」に更新する(SP308)。
一方、タスク実行部5111は、タスク配置管理部2112からのタスク処理要求を受信すると、その内容をローカルタスク管理テーブル5121に登録する(SP309)。次に、ローカルタスク管理テーブル5121からタスクを1つ選択し、選択したタスクの入力データ欄51213の入力データの取得要求をデータ配置管理部5113に発行する(SP310)。
入力データの取得要求を受信したデータ配置管理部5113は、ローカルキャッシュ管理部5112を介してローカルキャッシュ管理テーブル5122を参照し、指定された入力データがキャッシュされているかを判定する(SP311)。ステップSP311の判定でキャッシュされていなかった場合は、ストレージ装置7から該当データを取得した後(SP312)、タスク実行部5111に応答する(SP313)。
この際、タスク管理テーブル2121を参照し、ストレージ装置7から取得したデータがキャッシュ要求のあったデータだった場合、後述するキャッシュ登録処理を行うとしてもよい。
キャッシュされていた場合は、ローカルキャッシュ管理部5112及びデータ保管部5114を介してキャッシュデータを取得し、タスク実行部5111に応答する(SP314)。応答を受信したタスク実行部5111は、応答に含まれる入力データを用いてステップSP309で登録したタスクを実行した後(SP315)、ローカルタスク管理テーブル5121のキャッシュ要求欄51215を参照し、処理結果のキャッシュ要求の有無を判定する(SP316)。
タスク実行部5111は、ステップSP316の判定でキャッシュ要求がなかった場合はキャッシュへ登録せずにステップSP318に進み、キャッシュ要求があった場合は同一ワーカーノード5内のデータ配置管理部5113にキャッシュ要求を発行する。
その要求を受信したデータ配置管理部5113は、キャッシュ登録処理(後述)を行ってタスク実行部5111に応答する(SP317)。応答を受信したタスク実行部5111は、ストレージ装置7にタスクの処理結果の出力データを格納した後、実行結果をマスタノード2のタスク配置管理部2112に応答する(SP318)。
次に、マスタノード2において、ワーカーノード5から受信したタスク実行処理の実行結果に基づいて、タスク配置管理テーブル2122から該当タスクの行を削除した後、実行結果をスケジュール管理部2111に応答する(SP319)。応答を受信したスケジュール管理部2111は、タスク管理テーブル2121の状態欄21216のうち、結果を受信したタスクの項目を「処理済」に更新する(SP320)。
その結果、すべてのタスクの処理が完了したか、すなわちタスク管理テーブル2121の状態欄21216のすべての値が「処理済」になっているかどうかを判定する(SP321)。ステップSP321の判定で、すべてのタスクが「処理済」だった場合は、タスク登録処理を完了し、処理要求したアプリケーション213あるいはOSへ応答する(SP322)。「処理済」でないタスクがあった場合はステップSP301の直後に戻る。
図11は、キャッシュ登録の処理フローの例を示す図である。この処理は、図10におけるキャッシュ登録処理SP317の処理手順である。まず、データ配置管理部5113は、キャッシュ要求として指定されたデータのサイズが、例えばメモリ51等のキャッシュメモリの残容量を超過するかどうかを判定する(SP401)。
データ配置管理部5113は、ステップSP401の判定で、残容量超過だった場合にキャッシュ登録の処理を終了し、残容量以下だった場合にローカリキャッシュ管理部5112を介して同一ワーカーノード内のデータ保管部5114へデータ格納要求を発行する(SP402)。
データ格納要求を受信したデータ保管部5114は、自身が管理するメモリ空間にキャッシュ対象のデータを格納して、別のワーカーノード5を選択し、コピーデータをキャッシュさせる(SP403)。キャッシュしたデータ及びコピーしたデータの情報をコピーデータ管理テーブル5123に登録した後、ローカルキャッシュ管理部5112にデータの格納結果を含む応答を発行する(SP404)。
応答を受信したローカルキャッシュ管理部5112は、自身が持つローカルキャッシュ管理テーブル5122にキャッシュデータを登録した後、マスタノード2のキャッシュ管理部2113にキャッシュしたデータ及び配置先のワーカーノード5の識別子を含むキャッシュ情報更新要求を発行する(SP405)。
情報更新要求を受信したキャッシュ管理部2113は、情報更新要求の中で指定されたデータ及びワーカーノード5の情報をキャッシュ管理テーブル2123に登録し、ローカルキャッシュ管理部5113を介してデータ配置管理部5113に応答した後、キャッシュ登録の処理を終了する(SP406)。
この際、キャッシュ登録するデータは、マスタデータ、すなわちコピーデータ管理テーブル5123の状態欄51234が「M」のデータの情報のみであり、コピーデータ、すなわちコピーデータ管理テーブル5123の状態欄51234が「S」のデータの情報は通知しない。
このように、コピーデータの管理をワーカーノード5で実行し、マスタノード2から隠ぺいすることにより、マスタノード2の負荷を低減することができる。
なお、コピーデータを配置するワーカーノード5の選定する際、下記のような選択でもよく、1つの選択では所定数のワーカーノード5に決定できない場合、他の選択との組合せに基づいて選択してもよい。
・コンシステントハッシング法で選択
・ラウンドロビンで選択
・ランダムに選択
・メモリ容量使用率が少ないワーカーノード5を優先して選択。
また、ステップSP401の判定で容量超過だった場合はキャッシュ登録処理を直ちに終了するとしたが、ステップSP401実行時点でキャッシュしているデータのうち、LRU(Least Recently Used)等の基準に基づいて選択した参照頻度の低いデータと、新たにキャッシュする対象データとを入れ替えるとしてもよい。
図12は、障害タスク復旧の処理フロー示す図である。まず、タスク配置管理部2112は、タスク実行部5111に対するハートビート等の手段を用いて、障害が発生したワーカーノード5を検知する(SP501)。そして、タスク配置管理部2112はタスク管理テーブル2121とキャッシュ管理テーブル2123を参照し、障害が発生したワーカーノード5上で実行中のタスク及びキャッシュされているデータを特定し、再実行が必要なタスクがあるかどうかを判定する(SP502)。
タスク配置管理部2112は、ステップSP502の判定において、再実行の必要なタスクがなかった場合、障害タスク復旧の処理を終了し、再実行の必要なタスクがあった場合、スケジュール管理部2111に対して、図10を用いて説明したタスク登録処理の再実行要求を発行する(SP503)。
一方、データ保管部5114は、ワーカーノード5の相互にハートビート等の手段を用いて、障害が発生したワーカーノード5を検知し(SP504)、コピーデータ管理テーブル5123を参照し、障害が発生したワーカーノード5上に配置されたデータのコピーデータの中から1つをマスタとして昇格させ(SP505)、コピーデータ管理テーブル5123を更新する(SP506)。
そして、データ配置変更を通知するイベントを、マスタ昇格したデータが配置されているワーカーノード5上で実行中のデータ配置管理部5113に対して発行する(SP506)。なお、タスク配置管理部2112の用いるハートビート信号とワーカーノード5の相互に用いるハートビート信号とは同じであってもよいし、異なってもよい。
マスタとして昇格させられるワーカーノード5は予め設定されていてもよいし、昇格させるルールが予め設定され、そのルールにしたがって昇格させてもよい。特に、コピーデータが1つである場合はそのコピーデータをスレーブとし、そのコピーデータを有するワーカーノード5をマスタへ昇格させてもよい。
また、マスタ昇格処理のSP505において、障害で消失したデータを一度に復旧するとしたが、マスタノード2のスケジュール管理部2111に問い合わせを行うことで、タスク管理テーブル2121の入力データ欄21213及び優先度欄21217を参照することにより消失したデータを入力するタスクの優先度を確認し、優先度の高いタスクのデータから逐次的にマスタ昇格させるとしてもよい。
次に、データ配置変更イベントを受信したデータ配置管理部5113は、スケジュール管理部2111からタスク配置情報を収集し(SP507)、マスタ昇格したデータを使用するタスクが既に別のワーカーノード5に割り当てられているかどうか判定する(SP508)。ステップSP508の判定において、「その他」すなわち「処理済」または「処理中」だった場合、ステップSP513に進む。
データ配置管理部5113は、ステップSP508の判定において、「別ノードに割り当て済」だった場合、キャッシュ配置管理部5113はタスク配置管理部2112を経由してスケジュール管理部2111に対して該当するタスクの再割り当て要求を発行する。要求を受け取ったスケジュール管理部2111は、データ配置管理部5113へタスク再割り当て要求に応答した後、図10を用いて説明したタスク登録処理を実行する(SP503)。
一方、スケジュール管理部2111からの応答を受け取ったデータ配置管理部5113はステップSP509に進む。また、ステップSP508の判定において、「未割り当て」または「自ノードに割り当て済」だった場合、データ配置更新処理として、ローカルキャッシュ管理部5112に対して、マスタ昇格したデータを含むデータ配置更新要求を発行する(SP509)。
更新要求を受信したローカルキャッシュ管理部5112は、自身が管理するローカルキャッシュ管理テーブル5122にマスタ昇格したデータを登録した後マスタノード2のキャッシュ管理部2113に対して、マスタ昇格したデータ及びそのデータが配置されているワーカーノード5の識別情報を含むデータ配置更新要求を発行する(SP510)。
要求を受信したキャッシュ管理部2113は、キャッシュ管理テーブル2123におけるデータ識別子欄21231を参照し、受信した要求において指定されたデータのワーカーノード識別子欄21232の情報を、受信したワーカーノード5の情報に更新した後、ローカルキャッシュ管理部5112を介してデータ配置管理部5113に処理結果を応答する(SP511)。
応答を受信したデータ配置管理部5113は、応答内容に基づいて、データ更新処理の成功/失敗を判定する(SP512)。ステップSP512の判定で、処理成功だった場合は、障害タスク復旧処理を終了し、処理失敗だった場合は、データ保管部5114に対してデータ削除処理要求を発行する(SP513)。
要求を受信したデータ保管部5114は、削除対象データ及び別のワーカーノード5上に配置されているコピーデータをメモリ上から削除し(SP514)、削除した内容に基づいてコピーデータ管理テーブル5123を更新した後、データ配置管理部5113に応答し(SP515)、障害タスク復旧処理を終了する。
このように、タスク確認処理(SP507)の結果に基づいて、コピーデータの使用可否を判定することにより、マスタ昇格処理(SP505)よりも先にタスク再実行要求(SP502)が実行されて「処理中」の状態に遷移してしまい、キャッシュデータが別のワーカーノード5上で生成されてしまうことにより、ローカルキャッシュ管理テーブル5122上に同一のキャッシュデータが複数登録されてしまうという状態の発生を抑止する。
すなわち、コピー目的ではないデータが複数のワーカーノード5上に配置されてしまうことによるメモリ利用効率の悪化に対し、これを抑制してメモリ利用効率の向上を実現することができる。
さらに、「割り当て済」の状態に遷移してしまっていた場合においては、タスク再割り当て要求を発行することにより、無駄なキャッシュデータ再構築処理を回避することにより復旧時間を短縮することができる。
図13を用いて、障害処理におけるキャッシュ管理テーブル1213、ローカルキャッシュ管理テーブル5122、及びコピーデータ管理テーブル5123のデータ配置更新処理(SP504〜SP506、SP509〜SP511)の具体例について述べる。図13は、ワーカーノード5(W1)に障害が発生し、それを検知したワーカーノード5(W2、W3)及びマスタノード2のデータ配置情報を更新する例である。
(1)まず、ワーカーノード5(W1)の障害を検知したワーカーノード5(W2)は、コピーデータ管理テーブル5123を参照することにより、ワーカーノード5(W1)が保持していたデータD2(M2)が消失したために、自身が保持するデータC2をマスタ昇格させ、データD2として扱う必要があることを判定する。
(2)マスタ昇格処理が必要と判断したワーカーノード5(W2)は、コピーデータ管理テーブル5123のD2の行の状態欄51234のうち、M2の値をマスター(M)からスレーブ(S)に、C2の値をスレーブ(S)からマスタ(M)に更新することにより、データC2をデータD2のマスタデータとして扱うように変更し、データ配置の変更が発生したことをワーカーノード5(W2)のデータ配置管理部5113にイベント通知する。
なお、ワーカーノード5(W1)の障害発生を検知したワーカーノード5(W3)も同様に、コピーデータ管理テーブル5123を更新することにより、ワーカーノード5(W2)にデータ配置変更が発生したことを検知する。この更新処理は、ワーカーノード5(W1)の障害を検知したタイミングで実施、または、マスタ昇格処理を行ったワーカーノード5(W2)からのマスタ昇格イベント通知を受けて更新を実施するとしてもよい。
また、障害発生によりワーカーノード5(W1)のデータを引き継いだワーカーノード5(W2)は、障害によって消失したデータの管理だけでなく、メモリ容量そのものの管理も引き継ぐ。すなわち、新たなデータD5のキャッシュ要求を受け取った際に、ワーカーノード5(W2)自身が管理するメモリ領域は容量を超えるが、ワーカーノード5(W1)のコピーデータの格納領域として管理している領域には格納可能だった場合、コピーデータの格納領域に対するデータ格納処理として、データD5のコピーデータ識別子であるM5の配置先をワーカーノード5(W1)とし、データD5のコピーデータ識別子であるC5の配置先をワーカーノード5(W2)とし、C5の状態をマスタ(M)とするように実行する。
(3)データ配置変更イベントを受け取ったワーカーノード5(W2)のデータ配置管理部5113は、データ配置更新処理として、同じくワーカーノード5(W2)で動作しているローカルキャッシュ管理部5112にデータD2が新たにワーカーノード5(W2)に配置されたことを通知する。
通知を受け取ったローカルキャッシュ管理部5112は、ローカルキャッシュ管理テーブル5122のデータ識別子51221欄にデータD2を追加し、その結果をマスタノード2のキャッシュ管理部2113に通知する。通知を受け取ったキャッシュ管理部2113は、キャッシュ管理テーブル2123のデータD2のワーカーノード識別子欄21222をW2に更新する。
以上の一連の処理結果により、マスタノード5(W2)及び他のすべてのワーカーノード5が、ワーカーノード5(W1)の障害によって消失したデータD2がワーカーノード5(W2)上に配置されたことを検知することができる。
次に、図14を用いて、障害処理におけるデータ配置更新処理よりも前に、タスクが再配置されてしまった場合(SP307〜SP311、SP401〜SP406)のデータ削除処理(SP513〜SP515)の具体例について述べる。
図14は、図13で例示したワーカーノード5(W1)の障害発生によるデータD2のデータ配置更新処理よりも前に、データD2を入力とするタスクT3が別のワーカーノード5上で処理を開始してしまった場合のワーカーノード5(W2、W3)及びマスタノード2のデータ配置情報を更新する例である。
(1)まず、マスタノード2のスケジュール管理部2111は、タスク配置管理部2112を介してワーカーノード5(W3)に対するタスクT3の処理要求を発行し、タスクT3の状態を「処理中」に更新する。
タスクT3の処理要求を受け取ったワーカーノード5(W3)は、タスクT3をローカルタスク管理テーブル5121に登録した後、タスクT3の入力データ欄51213を参照しデータD2が必要であることを検知し、さらに、ローカルキャッシュ管理テーブル5122を参照し、自身のメモリ上にデータD2がないことを検知する。
(2)入力データD2がメモリ上にないことを検知したデータ配置管理部5113は、ストレージ装置7からデータD2を取得し、データ保管部5114にデータD2の登録要求を発行する。要求を受け取ったデータ保管部5114は、データD2を新たに登録し、マスタデータをワーカーノード5(W3)に、コピーデータをワーカーノード5(W1)に配置する。なお、コピーデータの配置先は、障害で停止しているワーカーノード5(W1)を除外して正常動作しているワーカーノード5から選択するとしてもよい。
データ登録の完了を確認したデータ配置管理部5113は、ローカルキャッシュ管理部5112にデータD2のキャッシュ登録要求を発行し、要求を受け取ったローカルキャッシュ管理部5112は、ローカルキャッシュ管理テーブル5122のデータ識別子51221欄にデータD2を追加し、その結果をマスタノード2のキャッシュ管理部2113に通知する。通知を受け取ったキャッシュ管理部2113は、キャッシュ管理テーブル2123のデータD2のワーカーノード識別子欄21232をW3に更新する。
この状態で図13に示したデータ配置更新処理におけるマスタ昇格が完了すると、データD2のマスタデータがワーカーノード5(W2、W3)の2つ存在することになるが、マスタノード2のキャッシュ管理テーブル2123のワーカーノード識別子欄21232欄には1つのワーカーノード5しか登録できないため、どちらか一方は、使用されないデータとなってしまう。そこで、処理中のタスクT3を中断させないために、ワーカーノード5(W2)上に配置されたデータD2を削除する。
(3)ワーカーノード5(W2)で処理中のデータ配置更新処理におけるタスク確認処理において、マスタノードのタスク管理テーブル2121を参照すると、マスタ昇格したデータD2を入力とするタスクT3が処理中、すなわちデータD2はすでに他のワーカーノード5上に配置されていると判定することができる。
(4)したがって、マスタ昇格したデータD2のデータ削除処理として、データ保管部5114に、データD2の削除要求を発行する。要求を受け取ったデータ保管部5114は、コピーデータ管理テーブル5123のワーカーノード識別子欄51233及び状態欄51234を参照し、自身すなわちワーカーノード5(W2)がマスタとなっているD2としてデータC2を管理していることを特定し、メモリ上からデータC2を削除した後、他のワーカーノード5に対して、D2に関連するコピーデータの削除要求を発行する。
以上の一連の処理結果により、障害処理におけるデータ配置更新処理よりも前にタスクが再配置されてしまった場合においても、マスタノード2と各ワーカーノード5のデータ配置情報の整合性を保ちつつ、無駄なデータを削除し、メモリ領域を効率よく使用することができる。
図15は、ワーカーノード復旧の処理フローの例を示す図である。まず、復旧したワーカーノード5上で動作するタスク実行部5111は、起動時にタスク配置管理部2112に対し復旧通知を発行し(SP601)、通知を受信したタスク配置管理部2112は、自身の管理対象として復旧したワーカーノード5を登録する(SP602)。
また、復旧したワーカーノード5上で動作するデータ保管部5114は、他のワーカーノード5上で動作するデータ保管部5114に対し復旧通知を発行し、他のワーカーノード5のデータ保管部5114は復旧を検知する(SP604)。復旧したワーカーノード5のデータ保管部5114は、障害発生前に自身が担当していたキャッシュデータを他のワーカーノード5から収集するデータ転送処理を行う(SP605)。
このデータ転送処理で障害発生前のデータ配置に戻すことにより、復旧したワーカーノード5も含めたワーカーノード5のメモリ使用量を素早く均等にすることができる。なお、担当していたキャッシュデータがストレージ装置7上に配置されていた場合は、ストレージ装置7から取得してもよい。
次に、ステップSP606〜SP616の処理を実行するが、それぞれ、図12におけるステップSP505〜SP515と同様の処理であるため、その詳細については説明を省略する。
以上で説明したように、コピーデータの管理をワーカーノード5のローカルキャッシュ管理部5112にオフロードしマスタノード2への負荷を低減することにより定常時のアプリケーション213の応答性能を維持しつつ、ワーカーノード5の障害発生時に、コピーデータの配置をマスタノード2のキャッシュ管理部2113に通知しキャッシュデータを引き継ぐことにより、障害発生時のシステム停止及び性能劣化を抑止することができる。
また、障害からの復旧時間は、障害検知時間(SP504)、系切り替え処理時間(SP505〜506)、イベント通知時間(SP509〜SP511)等を含む。ここで、障害検知時間は、データ保管部5114が、SP504で障害が発生したワーカーノード5を検知するのに要する時間である。障害検知時間は、監視周期などの設定値に依存して変動するが、システム稼働後は一定となる値である。一方、SP505やSP506の実行に要する系切り替え処理時間や、SP509〜SP511の実行に要するイベント通知時間、またデータ復旧のための他の処理の実行に要する時間は、障害検知時間(SP504)に対して、十分小さい値となる。したがって、復旧時間は、主にシステム稼働後に一定となる障害検知時間となる。
一般に、障害時にデータ再構築する場合、障害により消失したデータを再計算又はディスク装置から再取得するため、データ再構築時間は、タスクを再実行する時間(タスク実行時間)やデータサイズに依存して変動する時間になり、復旧時間が増加する要因となっていた。これに対し、本実施形態では、図11のキャッシュ登録処理のSP403において、コピーデータを別ワーカーノード5に配置しておくので、図12の障害タスク復旧処理において、データ配置更新のイベント通知(SP509〜SP511)を実行すれば良く、データ再構築時間を削減可能となる。本実施形態の復旧時間は、データサイズやタスク実行時間に依存せず、主にシステム稼働後に一定となる障害検知時間となるため、所定の時間内とすることが可能である。
実施例2は、ワーカーノード5のデータ保管部5114とコピーデータ管理テーブル5123をワーカーノード5以外の装置に含め、その装置をワーカーノード5とストレージ装置7(ストレージスイッチ6)との間に配置する構成とした点で実施例1とは異なる。以下の実施例2の説明において、実施例1と同じ構成、同じ処理に関しては同一の符号を付してその説明を省略し、実施例1と異なる点について説明する。
図16は、実施例2における分散処理システムの構成の例を示す図である。また、図17、図18のそれぞれは、実施例2におけるワーカーノード5、データノード8の構成の例を示す図である。図16〜図18からも明らかなように、実施例1において説明したデータ配置管理部5113とデータ保管部5114を分離し、データ保管部5114をデータノード8のデータ保管部8111とすることにより、データコピー処理の負荷がワーカーノード5におけるタスク実行処理に影響を与えず、通常時のタスク処理性能を向上するものである。
まず、図16を参照して、分散処理システムの構成について説明する。マスタノード2及びクライアント端末3がネットワークスイッチ4を介して複数のワーカーノード5と接続され、複数のワーカーノード5がネットワークスイッチ9を介し複数のデータノード8と接続されると共に、マスタノード2及び各データノード8がそれぞれストレージスイッチ6を介してストレージ装置7と接続されることにより構成されている。なお、ネットワークスイッチ4とネットワークスイッチ9は共用であって、1つのネットワークスイッチであってもよい。
ワーカーノード5は、図17に示すように、メモリ51内に制御プログラム群511として、タスク実行部5111、ローカルキャッシュ管理部5112、及びデータ配置管理部5113を有する。これらの各部はプログラムであり、説明の分かり易さのために分けてあるが、一つに纏めて実現されても良いし、実装上の都合により任意に分けてもよい。また、ワーカーノード5は、ネットワークスイッチ9と接続するためのネットワークインタフェース55を有する。ネットワークインタフェース55はネットワークインタフェース53と共用されてもよい。
ワーカーノード5は、メモリ51内に管理テーブル群512として、ローカルタスク管理テーブル5121、ローカルキャッシュ管理テーブル5122を有する。ワーカーノード5の各構成については、既に説明したとおりであるが、データ保管部5114とコピーデータ管理テーブル5123がなく、ローカルキャッシュ管理部5112とデータ配置管理部5113はインタフェース55を介してデータノード8と通信可能に構成されている。
データノード8は、図18に示すように、メモリ81内に制御プログラム群811としてデータ保管部8111を有する。データ保管部8111はデータノード8という物理的な格納場所が異なるため、異なる符号を付しているが、データ保管部5114と同じ処理をするためのプログラムである。実施例1におけるローカルキャッシュ管理部5112及びデータ配置管理部5113とデータ保管部5114との間のやり取りを、実施例2のデータ保管部8111はネットワークインタフェース83経由でワーカーノード5と通信する。
また、メモリ81内に管理テーブル群812としてコピーデータ管理テーブル8121を有する。コピーデータ管理テーブル8121もデータノード8という物理的な格納場所が異なるため、異なる符号を付しているが、コピーデータ管理テーブル5123と同じ構成の情報を格納する。
以上で説明したように、ワーカーノード5上にデータ配置管理部5113を配置し、ワーカーノード5とは物理的に異なるデータノード8上にデータ保管部8111を分離して配置し、ネットワークを介してデータ配置制御させることにより、データコピー処理の負荷をデータノード8が担うことができるようになり、ワーカーノード5におけるタスク実行処理に影響を与えないため、通常時のタスク処理性能を向上させることができる。
実施例3は、データをキャッシュとしてメモリ上に登録する際に、キャッシュデータを生成したワーカーノード5とは別のワーカーノード5に登録する点において、実施例1及び実施例2とは異なる。以下では、このキャッシュ登録処理に絞って詳細に説明する。なお、実施例3の説明において、実施例1あるいは実施例2と同じ構成、同じ処理に関しては同一の符号を付してその説明を省略する。
図19は、実施例3におけるキャッシュ登録の処理フローの例を示す図である。既に説明したワーカーノード5のキャッシュ登録処理において、メモリ容量不足によりキャッシュデータをメモリ上に配置できない場合に、別のワーカーノード5上にキャッシュデータを配置することにより、ストレージ装置7へのアクセス数の低減し、通常時のタスク処理性能を向上するものである。
図19に示した処理フローは、図11を用いて説明したキャッシュ登録処理フローにおけるSP401に該当する。データ配置管理部5113は、自身が動作するワーカーノード5に搭載されているメモリ容量、現在の使用量、登録要求で指定されたデータのサイズを比較することにより、データの登録可否を判定する(SP701)。
ステップSP701の判定において登録可能だった場合、データ配置管理部5113は、同一ワーカーノード5上で動作するローカルキャッシュ管理部5112を介してデータ保管部5114にキャッシュ登録要求を送付し(SP702)、キャッシュ登録の処理を終了する。これにより、自身の動作するワーカーノード5のメモリ上にキャッシュデータを配置する。なお、この処理により得られる結果は、図19を用いて説明した結果と同一の内容になる。
ステップSP701の判定において登録不可だった場合、データ配置管理部5113は、別のワーカーノード5上で動作するデータ配置管理部5113に対して、データ登録可否の情報の要求を送信し、取得した情報に基づいて別のワーカーノード5のメモリを融通できるか、すなわち別のワーカーノード5でデータ登録可能かを判定する(SP703)。
ステップSP703の判定において登録可能なワーカーノード5が1または複数存在した場合、データ配置管理部5113は、その中の1つを配置先として選択し、スケジュール管理部2111に対して、これから登録するキャッシュデータを使用するタスクの再配置要求を送付する(SP704)。
そして、選択されたワーカーノード5上で動作するローカルキャッシュ管理部5112を介してデータ保管部5114にキャッシュ登録要求を送付し(SP705)、キャッシュ登録の処理を終了する。これにより、選択されたワーカーノード5のメモリがリモートメモリとなり、リモートメモリ上にキャッシュデータが配置される。
なお、配置先のワーカーノード5を選択する際、下記のように選択してもよい
・メモリの空き容量が最も多いものを選択
・CPU負荷が最も低いものを選択
・ローカルタスク管理テーブル5121に登録されているタスク数が
最も少ないものを選択
また、1つの選択では1つのワーカーノード5を決定できない場合、他の選択との組合せに基づいて選択してもよい。
ステップSP703の判定において、登録可能なワーカーノード5が存在しなかった場合、データ配置管理部5113は、同一ワーカーノード5上で動作するローカルキャッシュ管理部5112を介し、ストレージ装置7に対してデータ配置要求を発行し(SP706)、キャッシュ登録の処理を終了する。これにより、ストレージ装置7のディスク装置71上にデータを配置する。
以上で説明したように、ワーカーノード5におけるキャッシュ登録処理において、メモリ容量不足によりキャッシュデータをメモリ上には配置できない場合であっても、別のワーカーノード5上にキャッシュデータを配置可能となり、ストレージ装置7のディスク装置71へのアクセス数の低減を可能とし、通常時のタスク処理性能を向上させることができる。
なお、以上の実施例1〜3において、ダウンタイムに関するSLA要件を管理し、障害発生時の復旧処理において要件の厳しいデータから復旧処理を実行してもよい。また、キャッシュ対象のデータを圧縮及びまたは分割して管理するとしてもよい。
2 マスタノード
2111 スケジュール管理部
2112 タスク配置管理部
2113 キャッシュ管理部
2121 タスク管理テーブル
2122 タスク配置管理テーブル
2123 キャッシュ管理テーブル
5 ワーカーノード
5111 タスク実行部
5112 ローカルキャッシュ管理部
5113 データ配置管理部
5114、8111 データ保管部
5121 ローカルタスク管理テーブル
5122 ローカルキャッシュ管理テーブル
5123、8121 コピーデータ管理テーブル
8 データノード

Claims (13)

  1. それぞれにワーカーノード識別子が設定され、それぞれがデータをキャッシュするメモリを有する複数のワーカーノードを含む分散処理システムは、
    前記ワーカーノード識別子の中の第1のワーカーノード識別子が設定され、第1のタスクの実行結果の第1の出力データを、キャッシュ要求に応じて自ワーカーノードに有される第1のメモリにキャッシュし、他ワーカーノードへ前記第1の出力データをコピーさせる、前記複数のワーカーノードの中の第1のワーカーノードと、
    前記ワーカーノード識別子の中の第2のワーカーノード識別子が設定され、前記第1の出力データのコピーを、自ワーカーノードに有される第2のメモリにキャッシュする、前記複数のワーカーノードの中の第2のワーカーノードと、
    前記第1のワーカーノード識別子の情報を有し、前記第1の出力データを入力する第2のタスクを割り当てるワーカーノードを前記第1のワーカーノードであると、前記第1のワーカーノード識別子の情報に基づき選択するマスタノードと
    を備えたことを特徴とする分散処理システム。
  2. 前記マスタノードは、
    前記第1の出力データと前記第1のワーカーノードの識別子の情報を管理するキャッシュ管理部と、
    アプリケーションからのタスクを含む処理要求を登録し、
    前記管理された情報に基づき前記第1の出力データが前記第1のワーカーノードにキャッシュされているかを判定し、キャッシュされていると判定した場合は、前記第1のワーカーノードを選択し、キャッシュされていないと判定した場合は、任意のワーカーノードを選択し、
    前記タスクの処理状態を登録し、
    前記処理要求に含まれる全てのタスクの前記処理状態が処理済みとなるまで、前記選択と前記登録を繰り返し、全てのタスクが処理済みとなると前記アプリケーションへ応答する
    スケジュール管理部と、
    前記選択されたワーカーノードへ前記第1の出力データを入力とする第2のタスクの実行を要求し、
    前記選択されたワーカーノードと前記第2のタスクとを関連付けて登録し、
    前記第1のワーカーノードの障害を検知して、タスクの再実行が必要かを判定し、
    前記第1のワーカーノードの復旧通知を受けて、前記第1のワーカーノードに関する情報を登録する
    タスク配置管理部と、
    を有し、
    前記第1のワーカーノードは、
    出力データを格納するストレージ装置へのインタフェースと、
    前記タスク配置管理部の前記第2のタスクの実行の要求を受け付けて登録し、
    前記第1の出力データを取得し、
    前記第2のタスクを実行し、
    前記第2のタスクの実行結果の第2の出力データをキャッシュするか判定し、
    前記第2の出力データを前記ストレージ装置へ格納させ、
    前記タスク配置管理部へ前記第2のタスクの実行の完了を通知し、
    前記第1のワーカーノードの復旧時に前記復旧通知を送る
    タスク実行部と、
    前記第1の出力データの取得として、前記第1の出力データが前記第1のワーカーノードにキャッシュされているか判定し、キャッシュされていないと判定した場合は、前記ストレージ装置から前記第1の出力データを取得し、
    前記第2の出力データをキャッシュすると判定した場合は、前記第2の出力データが前記第1のメモリの残容量未満であると、前記第2の出力データをキャッシュ登録処理するデータ配置管理部と、
    前記キャッシュ登録処理に対応して、前記第1の出力データまたは前記第2の出力データを前記第1のメモリへキャッシュし、
    前記第1の出力データまたは前記第2の出力データのコピー要求を発行する
    データ保管部と、
    前記キャッシュ登録処理に対応して前記第1のメモリへキャッシュされた前記第1の出力データまたは前記第2の出力データの情報を登録する
    ローカルキャッシュ管理部と
    を有し、
    前記第2のワーカーノードは、
    前記第1のワーカーノードのデータ保管部からのコピー要求に基づいて前記第1の出力データまたは前記第2の出力データのコピーを前記第2のメモリへキャッシュし、
    前記第1のワーカーノードの障害を検知し、前記第1の出力データのコピーの情報を前記第1の出力データの情報として登録し、前記第1の出力データの情報の登録をデータ配置管理部へ通知し、
    前記第1の前記第2のメモリにキャッシュしたコピーデータのマスタへの変更又は削除する
    データ保管部と、
    前記第1の出力データの情報の登録通知を受信し、前記スケジュール管理部から前記第2のタスクの前記処理状態を取得して判定し、前記処理状態が処理中か処理済みの場合は、前記第1の出力データのコピーを削除処理、前記処理状態が処理中と処理済みのいずれでもない場合は、前記第1の出力データのコピーの情報を前記第1の出力データの情報として登録するよう前記データ保管部に要求する
    データ配置管理部と、
    前記第1の出力データのコピーの情報を前記第1の出力データの情報として登録し、前記第1の出力データの情報と前記第2のワーカーノードの識別子の情報を前記キャッシュ管理部へ更新要求する
    ローカルキャッシュ管理部と、
    を有すること
    を特徴とする請求項1に記載の分散処理システム。
  3. 前記マスタノードは、
    前記選択された前記第1のワーカーノードへ前記第2のタスクの実行を要求し、
    前記第1のワーカーノードは、
    前記第2のタスクの実行の要求に応じて、前記第2のタスクを実行し、前記第2のタスクの実行結果の第2の出力データをキャッシュすると判定した場合、前記第2の出力データを前記第1のメモリにキャッシュし、他ワーカーノードへ前記第2の出力データをコピーさせ、前記第1のワーカーノードで前記第2の出力データをキャッシュしたことを前記マスタノードへ通知すること
    を特徴とする請求項1に記載の分散処理システム。
  4. 前記第1のワーカーノードは、
    コンシステントハッシングによる選択、ラウンドロビンによる選択、ランダムによる選択、あるいはメモリ容量使用率が少ないワーカーノードを選択のいずれかにより、前記複数のワーカーノードの中から前記第2の出力データのコピー先である他ワーカーノードを選択し、前記選択した他ワーカーノードへ前記第2の出力データをコピーさせること
    を特徴とする請求項3に記載の分散処理システム。
  5. 前記第1のワーカーノードは、
    前記第2のタスクの実行の要求に応じて、キャッシュされた前記第1の出力データを前記第1のメモリから取得し、前記取得した第1の出力データを入力として前記第2のタスクを実行すること
    を特徴とする請求項4に記載の分散処理システム。
  6. 前記第1のワーカーノードは、
    前記第2のタスクの実行結果の第2の出力データをキャッシュすると判定した場合、前記第2の出力データのサイズが前記第1のメモリの残容量未満であるとさらに判定して、前記第2の出力データを前記第1のメモリにキャッシュすること
    を特徴とする請求項5に記載の分散処理システム。
  7. 前記第2のワーカーノードは、
    他ワーカーノードの障害を監視し、前記第1のワーカーノードの障害を検知した場合、前記第2のメモリにキャッシュした前記第1の出力データのコピーの属性をスレーブからマスタへ更新し、前記第2のタスクが処理中であると登録されるより前の状態であることを判定し、前記マスタノードが有する前記第1のワーカーノード識別子の情報を前記第2のワーカーノードの識別子の情報へ更新する要求を前記マスタノードへ発行し、
    前記マスタノードは、
    前記第2のワーカーノードからの前記更新する要求に応じて、前記マスタノードが有する前記第1のワーカーノード識別子の情報を前記第2のワーカーノードの識別子の情報へ更新すること
    を特徴とする請求項6に記載の分散処理システム。
  8. 前記マスタノードは、
    前記第1のワーカーノード識別子の情報に基づき前記第1のワーカーノードを選択し、前記第1のワーカーノードの障害を検知すると、第3のワーカーノードへ前記第2のタスクの実行要求を発行し、前記第2のタスクが処理中であると登録し、
    前記第2のワーカーノードは、
    前記第1のワーカーノードの障害を検知し、前記第2のタスクが前記第3のワーカーノードで処理中であると登録されていると、前記第2のメモリに格納している前記第1の出力データを削除すること
    を特徴とする請求項7に記載の分散処理システム。
  9. 前記マスタノードは、
    前記第1のワーカーノードの障害を検知し、前記第1のワーカーノード以外のワーカーノードへ前記第2のタスクの実行の要求を発行すること
    を特徴とする請求項8に記載の分散処理システム。
  10. ワーカーノードは、
    実行の要求される第1のタスクの識別子と、前記第1のタスクに入力される第1のデータの識別子を受け付け、
    前記受け付けた第1のデータの識別子に基づき、前記ワーカーノードのメモリに前記第1のデータがキャッシュされているかを判定し、
    前記キャッシュされているかを判定した結果がキャッシュされていると判定された場合、前記第1のデータを前記メモリから取得し、
    前記取得した第1のデータを入力として前記第1のタスクを実行し、
    前記第1のタスクの実行結果の第2のデータをキャッシュするかを判定し、
    前記キャッシュするかを判定した結果がキャッシュすると判定された場合、前記第2のデータを前記メモリにキャッシュして前記ワーカーノードで前記第2のデータをキャッシュしたことを通知し、他ワーカーノードへ前記第2のデータをコピーさせること
    を特徴とするワーカーノードのタスク処理方法。
  11. 前記ワーカーノードは、
    他ワーカーノードの障害を検知し、
    前記障害の検知された他ワーカーノードでキャッシュされたデータのコピーである第3のデータを有する場合、前記第3のデータを入力とする第3のタスクの実行状態の情報を取得し、
    前記取得した実行状態の情報を判定し、前記実行状態の情報が実行中である情報と判定した場合、前記第3のデータを前記メモリから削除し、
    前記実行状態の情報が実行前である情報と判定した場合、前記ワーカーノードで前記第3のデータをキャッシュしたことを通知すること
    を特徴とする請求項10に記載のワーカーノードのタスク処理方法。
  12. CPUを有するワーカーノードのプログラムを格納する記憶媒体は、
    前記CPUが
    実行の要求される第1のタスクの識別子と、前記第1のタスクに入力される第1のデータの識別子を受け付け、
    前記受け付けた第1のデータの識別子に基づき、前記ワーカーノードのメモリに前記第1のデータがキャッシュされているかを判定し、
    前記キャッシュされているかを判定した結果がキャッシュされていると判定された場合、前記第1のデータを前記メモリから取得し、
    前記取得した第1のデータを入力として前記第1のタスクを実行し、
    前記第1のタスクの実行結果の第2のデータをキャッシュするかを判定し、
    前記キャッシュするかを判定した結果がキャッシュすると判定された場合、前記第2のデータを前記メモリにキャッシュして前記ワーカーノードで前記第2のデータをキャッシュしたことを通知し、他ワーカーノードへ前記第2のデータをコピーさせるプログラムを格納したこと
    を特徴とする記憶媒体。
  13. 前記CPUが、
    他のワーカーノードの障害を検知し、
    前記障害の検知された他のワーカーノードでキャッシュされたデータのコピーである第3のデータを有する場合、前記第3のデータを入力とする第3のタスクの実行状態の情報を取得し、
    前記取得した実行状態の情報を判定し、前記実行状態の情報が実行中である情報と判定した場合、前記第3のデータを前記メモリから削除し、
    前記実行状態の情報が実行前である情報と判定した場合、前記ワーカーノードで前記第3のデータをキャッシュしたことを通知するプログラムをさらに格納したこと
    を特徴とする請求項12に記載の記憶媒体。
JP2017512128A 2015-04-15 2015-04-15 分散処理システム、タスク処理方法、記憶媒体 Active JP6434131B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/061594 WO2016166844A1 (ja) 2015-04-15 2015-04-15 分散処理システム、タスク処理方法、記憶媒体

Publications (2)

Publication Number Publication Date
JPWO2016166844A1 true JPWO2016166844A1 (ja) 2018-01-11
JP6434131B2 JP6434131B2 (ja) 2018-12-05

Family

ID=57125705

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017512128A Active JP6434131B2 (ja) 2015-04-15 2015-04-15 分散処理システム、タスク処理方法、記憶媒体

Country Status (3)

Country Link
US (1) US10298715B2 (ja)
JP (1) JP6434131B2 (ja)
WO (1) WO2016166844A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11403144B2 (en) * 2015-07-09 2022-08-02 Telecom Italia S.P.A. Method and system of information and communication technology services provisioning using a distributed operating system
US11240305B2 (en) * 2016-07-28 2022-02-01 At&T Intellectual Property I, L.P. Task allocation among devices in a distributed data storage system
JP6546235B2 (ja) * 2017-09-15 2019-07-17 株式会社日立製作所 ストレージシステム
CA3078478C (en) * 2017-10-31 2023-03-07 Ab Initio Technology Llc Managing a computing cluster interface
JP7080033B2 (ja) * 2017-11-07 2022-06-03 株式会社日立製作所 タスク管理システム、タスク管理方法、及びタスク管理プログラム
US10771584B2 (en) * 2017-11-30 2020-09-08 Cisco Technology, Inc. Provisioning using pre-fetched data in serverless computing environments
WO2019110609A1 (en) * 2017-12-05 2019-06-13 Koninklijke Philips N.V. Multiparty computations
CN110650172B (zh) * 2018-06-27 2022-04-19 阿里巴巴(中国)有限公司 流式任务处理方法、装置及服务器
CN111342986B (zh) * 2018-12-19 2022-09-16 杭州海康威视系统技术有限公司 分布式节点管理方法及装置、分布式系统、存储介质
CN111193804B (zh) * 2020-01-02 2022-09-09 深圳市网心科技有限公司 分布式存储方法及装置、网络节点及存储介质
US11989051B2 (en) 2021-06-08 2024-05-21 Salesforce, Inc. Time alignment in director-based database system for transactional consistency
US20220391291A1 (en) * 2021-06-08 2022-12-08 Salesforce.Com, Inc. History information in director-based database system for transactional consistency

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012073975A (ja) * 2010-09-30 2012-04-12 Hitachi Ltd 計算機システム及びそのデータ処理方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047195B2 (en) * 2012-07-05 2015-06-02 Hitachi, Ltd. Computer system with virtualization mechanism and management table, cache control method and computer program
US9454485B2 (en) * 2013-08-01 2016-09-27 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Sharing local cache from a failover node
US9491239B2 (en) * 2014-01-31 2016-11-08 Comcast Cable Communications, Llc Methods and systems for processing data requests
US10013362B2 (en) * 2016-05-13 2018-07-03 Verizon Digital Media Services Inc. Deterministic multifactor cache replacement
US10372559B2 (en) * 2016-06-07 2019-08-06 International Business Machines Corporation Managing a redundant computerized database using a replicated database cache
US10356175B2 (en) * 2016-08-16 2019-07-16 Verizon Digital Media Services Inc. Request multiplexing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012073975A (ja) * 2010-09-30 2012-04-12 Hitachi Ltd 計算機システム及びそのデータ処理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BU, YINGYI ET AL.: "HaLoop: Efficient Iterative Data Processing on Large Clusters", PROCEEDINGS OF THE VLDB ENDOWMENT, vol. Vol. 3, Issue 1-2, JPN7018003514, September 2010 (2010-09-01), pages 285 - 296, ISSN: 0003898115 *

Also Published As

Publication number Publication date
US10298715B2 (en) 2019-05-21
US20180041600A1 (en) 2018-02-08
WO2016166844A1 (ja) 2016-10-20
JP6434131B2 (ja) 2018-12-05

Similar Documents

Publication Publication Date Title
JP6434131B2 (ja) 分散処理システム、タスク処理方法、記憶媒体
JP6791834B2 (ja) 記憶システム及び制御ソフトウェア配置方法
US11226777B2 (en) Cluster configuration information replication
US11816063B2 (en) Automatic archiving of data store log data
US9229645B2 (en) Storage management method and storage system in virtual volume having data arranged astride storage devices
CN104965850B (zh) 一种基于开源技术的数据库高可用实现方法
WO2017022002A1 (ja) ストレージ装置、ストレージシステム、ストレージシステムの制御方法
JP6186787B2 (ja) データ転送装置、データ転送システム、データ転送方法及びプログラム
JP4920248B2 (ja) サーバの障害回復方法及びデータベースシステム
US9984139B1 (en) Publish session framework for datastore operation records
WO2014080492A1 (ja) 計算機システム、クラスタ管理方法、及び管理計算機
US7849264B2 (en) Storage area management method for a storage system
JP4813975B2 (ja) 無共有型データベースシステムの構成変更方法、管理サーバ及び無共有型データベースシステム
US20170206027A1 (en) Management system and management method of computer system
WO2014102997A1 (ja) 計算機、計算機システムの制御装置及び記録媒体
US10552342B1 (en) Application level coordination for automated multi-tiering system in a federated environment
Liu et al. masfs: File system based on memory and ssd in compute nodes for high performance computers
JP6007340B2 (ja) 計算機システム、計算機システム管理方法及びプログラム
JP7057408B2 (ja) 記憶システム及びその制御方法
US20230185632A1 (en) Management system, data rebalancing management method, and recording medium
WO2013073022A1 (ja) 計算機システム及び障害検出方法
WO2018061158A1 (ja) 計算機システムおよび計算機システム制御方法
JP5890452B2 (ja) クラスタシステムのサーバ装置およびそのプログラム
CN113973138A (zh) 用于使用数据访问网关优化对数据集群的数据节点的访问的方法和系统
CN113973137A (zh) 用于使用数据访问网关和投标计数器优化对数据集群的数据节点的访问的方法和系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180612

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180718

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181107

R150 Certificate of patent or registration of utility model

Ref document number: 6434131

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150