[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP6951846B2 - 計算機システム及びタスクの割当方法 - Google Patents

計算機システム及びタスクの割当方法 Download PDF

Info

Publication number
JP6951846B2
JP6951846B2 JP2017042896A JP2017042896A JP6951846B2 JP 6951846 B2 JP6951846 B2 JP 6951846B2 JP 2017042896 A JP2017042896 A JP 2017042896A JP 2017042896 A JP2017042896 A JP 2017042896A JP 6951846 B2 JP6951846 B2 JP 6951846B2
Authority
JP
Japan
Prior art keywords
task
data
computers
processor
database
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
JP2017042896A
Other languages
English (en)
Other versions
JP2018147301A (ja
JP2018147301A5 (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
Priority to JP2017042896A priority Critical patent/JP6951846B2/ja
Priority to US15/870,896 priority patent/US20180260463A1/en
Publication of JP2018147301A publication Critical patent/JP2018147301A/ja
Publication of JP2018147301A5 publication Critical patent/JP2018147301A5/ja
Application granted granted Critical
Publication of JP6951846B2 publication Critical patent/JP6951846B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • 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
    • 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
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、分散データベースを有する計算機システムにおけるタスクの割当方法に関する。
近年、データを分析等するために大量のデータを分散処理する場合、分散KVS(Key Value Store)等の分散データベースが用いられる。KVSには、Hash値として与えられたKey及び実際のデータであるValueから構成されるキーバリューペアが格納される。
KVSでは、Keyを検索キーとして用いた場合、高速にデータを検索できるが、Valueを検索キーとして用いた場合、データの検索速度が遅くなるという特徴を持つ。そのため、Valueを検索キーとして用いてデータを取得し、取得したデータを分析する場合、検索エンジン及びKVSを組み合わせたシステムが用いられる。
また、データの分散配置と同様に、タスクを分散配置するシステムも用いられる。タスクを実行するノードの処理負荷が小さくなるため、データ分析処理を高速化できる。例えば、特許文献1には、ノード間の距離情報に基づいて効率的に負荷を分散させる技術が開示されている。
米国特許出願公開2014/0372611号明細書
特許文献1に記載の技術では、データの位置情報(索引情報)を管理するノードのスケールアウトが困難であるため、データの有無を問い合わせるデータ問合せの負荷が集中した場合、ボトルネックになるという問題がある。
前述のノードのスケールアウトができたと仮定した場合、データ問合せを分散できるが、データを管理するノードと索引情報を管理するノードとが別々であるため、管理が複雑になる。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、複数の計算機を有する計算機システムであって、前記複数の計算機が有する記憶領域を用いて構成され、第1検索キー及びデータ値を含むデータを格納するキーバリューストア型のデータベースを有し、前記複数の計算機は、プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続されるネットワークインタフェースを有し、前記複数の計算機の少なくとも一つの計算機が有する前記プロセッサは、前記データベースを構成する複数の計算機の各々に、前記第1検索キー及び前記データ値に関連する第2検索キーのいずれかを用いて、前記データベースを構成する複数の計算機の各々が前記データベースに割り当てている自記憶領域に格納されるデータを検索するための索引情報の生成を指示する第1の処理と、第1のタスクの実行要求を受け付けた場合、前記第1のタスクが使用するデータを特定し、前記データベースを構成する複数の計算機の各々に、前記第1のタスクが使用するデータの前記第2検索キーを含み、前記第1のタスクが使用するデータの有無を問い合わせるデータ問合せを行い、前記データ問合せに対する第1の応答に基づいて、前記第1のタスクが使用するデータを保持する計算機を特定し、前記特定された計算機に前記第1のタスクを割り当てる、第2の処理と、を実行することを特徴とする。
本発明によれば、処理(タスク)を割り当てる場合に、データ問合せが特定の計算機に集中しないため、ボトルネックを解消することができる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
実施例1の計算機システムの構成例を示す図である。 実施例1のタスク管理ノードが保持するノード管理情報の一例を示す図である。 実施例1の索引管理モジュールが実行する処理の一例を示すフローチャートである。 実施例1のタスク割当モジュールが実行する処理の一例を説明するフローチャートである。
以下、本発明の実施形態について図面を用いて説明する。以下では、全図を通じて同一の構成に対しては同一の符号を付与して重複する説明を省略する。
図1は、実施例1の計算機システムの構成例を示す図である。
実施例1の計算機システムは、タスク管理ノード100及び複数のタスク処理ノード200から構成される。
タスク管理ノード100は、ネットワーク300を介して各タスク処理ノード200と接続する。ネットワーク300は、LAN(Local Area Network)及びWAN(Wide Area Network)等が考えられる。また、ネットワーク300の接続方式は無線又は有線のいずれでもよい。また、タスク管理ノード100は、直接、各タスク処理ノード200と接続してもよい。
タスク処理ノード200は、分散データベースを構築する計算機であり、また、分散データベースに格納されるデータ221を用いてタスクを実行する。分散データベースは、タスク処理ノード200が提供する記憶領域を用いて構成される。
本実施例は、分散データベースとしてKVSを想定する。KVSにはキーバリューペアがデータ221として格納される。なお、本発明は、KVSに限定されるものではない。様々な分散データベースでも同様の効果を奏する。
タスク管理ノード100は、タスク処理ノード200に対するタスクの割当を管理する。より具体的には、タスク管理ノード100は、クライアント端末等からタスク処理の実行要求を受信した場合、各タスク処理ノード200に対して、タスクで使用するデータの有無を問い合わせるデータ問合せを行う。また、タスク管理ノード100は、データ問合せに対する応答に基づいて、タスクを割り当てるタスク処理ノード200を決定する。
ここで、タスク管理ノード100及びタスク処理ノード200のハードウェア構成及びソフトウェア構成について説明する。まず、タスク管理ノード100の構成について説明する。
タスク管理ノード100は、CPU101、メモリ102、及びネットワークインタフェース103を有する。
CPU101は、メモリ102に格納されるプログラムを実行する。CPU101は、プログラムにしたがって処理を実行することによって所定の機能を実現するモジュールとして動作する。以下の説明では、モジュールを主語に説明する場合、CPU101が当該モジュールを実現するプログラムを実行していることを示す。
メモリ102は、CPU101が実行するプログラム及び当該プログラムによって使用される情報を格納する。また、メモリ102は、プログラム等が一時的に使用するワークエリアを含む。メモリ102に格納されるプログラム及び情報は後述する。
ネットワークインタフェース103は、ネットワーク300を介して他の装置と通信するためのインタフェースである。
ここで、メモリ102に格納されるプログラム及び情報について説明する。本実施例のメモリ102は、タスク管理モジュール111を実現するプログラム、ノード管理情報112、及び絞込み情報113を格納する。
タスク管理モジュール111は、タスクの実行要求を受け付け、タスクの実行要求を解析して当該タスクが使用するデータを特定し、データ問合せを行う。本実施例では、タスク管理モジュール111は、データ問合せを行う前に、当該問合せの対象のタスク処理ノード200を特定し、特定されたタスク処理ノード200に対してデータ問合せを行う。
また、タスク管理モジュール111は、データ問合せの結果に基づいてタスクを割り当てるタスク処理ノード200を選択し、選択されたタスク処理ノード200にタスクを割り当てる。
タスク管理モジュール111は、索引管理モジュール131、タスク割当モジュール132、及び検索問合せモジュール133を含む。
索引管理モジュール131は、各タスク処理ノード200に、索引情報222の生成又は更新を指示する。また、索引管理モジュール131は、絞込み情報113を生成する。
タスク割当モジュール132は、タスクの実行要求を解析し、解析結果及び絞込み情報113に基づいて、データ問合せの対象のタスク処理ノード200を特定し、その後、検索問合せモジュール133を呼び出す。また、タスク割当モジュール132は、データ問合せに対する応答に基づいて、タスクを割り当てるタスク処理ノード200を選択し、選択されたタスク処理ノード200にタスクを割り当てる。
検索問合せモジュール133は、タスク割当モジュール132によって選択されたタスク処理ノード200に対してデータ問合せを行う。
ノード管理情報112は、タスク処理ノード200の構成及び稼働状態を管理する情報である。ノード管理情報112の詳細は、図2を用いて説明する。なお、ノード管理情報は、計算機管理情報と呼ばれてもよい。
絞込み情報113は、データ問合せの対象のタスク処理ノード200を特定するための指標となる情報である。絞込み情報113としては、例えば、Bloom Filterにおけるビット配列が考えられる。また、タスク処理ノード200の識別情報と、データ221のValueとを対応付けたリスト形式の絞込み情報113も考えられる。
なお、問合せ方法を指定するアルゴリズムは予め設定されているものとする。Bloom Filterを用いた問合せ方法以外の方法としては、シーケンシャルにタスク処理ノード200へ問い合わせる方法、全てのタスク処理ノード200へ同時に問い合わせる方法等が考えられる。
次に、タスク処理ノード200の構成について説明する。
タスク処理ノード200は、CPU201、メモリ202、記憶装置203、及びネットワークインタフェース204を有する。CPU201、メモリ202、及びネットワークインタフェース204は、CPU101、メモリ102、及びネットワークインタフェース103と同様のものであるため説明を省略する。
記憶装置203は、データを永続的に格納する。記憶装置203は、例えば、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等が考えられる。本実施例では、記憶装置203の記憶領域を用いて分散データベースが構築される。なお、メモリ202の記憶領域を用いて分散データベースが構築されてもよい。また、メモリ202及び記憶装置203のそれぞれの記憶領域を用いて分散データベースが構築されてもよい。
メモリ202は、検索エンジン211及びデータ管理モジュール212を実現するプログラムを格納する。
検索エンジン211は、索引情報222を用いてデータを検索する。検索エンジン211は、索引情報222の生成及び更新を行う。検索エンジン211は、タスク管理ノード100からデータ問合せを受け付けた場合、データ221を参照して、対象のデータの有無を判定し、また、判定結果を含む応答をタスク管理ノード100に送信する。また、検索エンジン211は、タスクが割り当てられた場合、索引情報222を用いて対象のデータを取得し、当該データを用いて割り当てられたタスクを実行する。
なお、タスクを実行する機能は、検索エンジン211に含めなくてもよい。例えば、タスク実行モジュールとして実現してもよい。
データ管理モジュール212は、分散データベースを管理する。より具体的には、データ管理モジュール212は、分散データベースに格納されるデータ221に対するアクセスを制御する。
記憶装置203は、データ221及び索引情報222を格納する。
データ221は、分散データベースに格納されるデータである。索引情報222は、検索エンジン211が分散データベースに格納されるデータ221を検索するための情報である。本実施例では、検索エンジン211が稼働するタスク処理ノード200が管理するデータ221を検索するための索引情報222が生成される。
なお、索引情報222は、Key、Value、データの名称、データの種別、及びデータの範囲等を検索キーとして用いてデータを検索できるような情報である。例えば、検索キー(インデックス)と、URL又はディレクトリ名等のデータ221の格納場所とを対応付けたリスト形式の索引情報222が考えられる。
図2は、実施例1のタスク管理ノード100が保持するノード管理情報112の一例を示す図である。
ノード管理情報112は、ノード名301、IPアドレス302、負荷303、ネットワーク304、及び距離305から構成されるエントリを含む。一つのエントリが一つのタスク処理ノード200に対応する。なお、エントリは、前述以外のフィールドを含んでもよい。例えば、タスク処理ノード200が有するCPU201及びメモリ202の性能を示す値を格納するフィールドが含まれてもよい。
ノード名301は、タスク処理ノード200の識別情報である。IPアドレス302は、タスク処理ノード200に割り当てられたIPアドレスである。
負荷303は、タスク処理ノード200の処理負荷を示す情報である。本実施例では、負荷303には、CPU201の使用率が格納される。なお、負荷303には、メモリ使用量及び実行しているタスク数等の値が格納されてもよい。
ネットワーク304は、タスク処理ノード200の通信負荷を示す情報である。本実施例では、ネットワーク304には通信の遅延時間が格納される。なお、ネットワーク304には、ジッタ及びパケット廃棄率等の値が格納されてもよい。
距離305は、タスク管理ノード100とタスク処理ノード200との間の物理的な距離を示す情報である。本実施例では、距離305には、タスク処理ノード200の配置場所を示す情報が格納される。
図3は、実施例1の索引管理モジュール131が実行する処理の一例を示すフローチャートである。
索引管理モジュール131は、索引情報222の生成/更新要求を受け付けた場合、以下で説明する索引情報222の生成/更新処理を開始する(ステップS101)。ここでは、索引管理モジュール131は、複数のタスク処理ノード200の中からターゲットタスク処理ノード200を一つ選択する。
なお、索引情報222の生成/更新要求は、タスク処理ノード200が追加された場合、分散データベースにデータ221が追加された場合、又は、周期的に、タスク管理モジュール111によって発行される。
索引管理モジュール131は、ターゲットタスク処理ノード200に索引情報222の生成/更新指示を送信する(ステップS102)。索引管理モジュール131は、ターゲットタスク処理ノード200からの応答を受信するまで待ち状態に移行する。
ターゲットタスク処理ノード200の検索エンジン211は、当該指示を受信した場合、データ221を参照して、索引情報222を生成し、又は、更新する。索引情報222を生成又は更新した後、処理の完了を通知する応答をタスク管理ノード100に送信する。
本実施例では、ターゲットタスク処理ノード200は、絞込み情報113を生成するための情報として、ターゲットタスク処理ノード200が保持するデータ221に関する情報も合わせて送信する。例えば、Bloom Filterを適用した場合、データ221を入力とするハッシュ関数の値が送信される。また、データ221のメタデータが送信されてもよい。
索引管理モジュール131は、ターゲットタスク処理ノード200から応答を受信した場合(ステップS103)、全てのタスク処理ノード200について処理が完了したか否かを判定する(ステップS104)。
全てのタスク処理ノード200について処理が完了していないと判定された場合、索引管理モジュール131は、ステップS101に戻り、新たなターゲットタスク処理ノード200を選択する。
全てのタスク処理ノード200について処理が完了したと判定された場合、索引管理モジュール131は、絞込み情報113を生成する(ステップS105)。その後、索引管理モジュール131は、処理を終了する。
例えば、Bloom Filterを適用した場合、索引管理モジュール131は、各タスク処理ノード200から受信したハッシュ関数の値に基づいて、ビット配列を絞込み情報113として生成する。
図1で説明したように、本実施例では、ローカリティを考慮して、各タスク処理ノード200は、自身の記憶領域に格納されるデータ221を検索するための索引情報222を作成する。これによって、ローカリティを考慮したタスクの割当を実現できる。また、索引情報222のサイズは小さいため、高速にデータを検索でき、また、記憶領域の有効活用が可能となる。
図4は、実施例1のタスク割当モジュール132が実行する処理の一例を説明するフローチャートである。
タスク割当モジュール132は、クライアント端末からタスクの実行要求を受信した場合、以下で説明する処理を開始する。なお、タスクの実行要求には、データの名称、種別、及び値の範囲等、タスクが使用するデータ221を特定するための情報が含まれる。以下の説明では、タスクが使用するデータ221をターゲットデータ221とも記載する。
タスク割当モジュール132は、データ問合せの対象のタスク処理ノード200を特定する(ステップS201)。
具体的には、タスク割当モジュール132は、タスクの実行要求を解析し、ターゲットデータ221を特定するための情報を取得する。タスク割当モジュール132は、当該情報及び絞込み情報113を用いて、ターゲットデータ221を保持すると予測されるタスク処理ノード200を、データ問合せの対象のタスク処理ノード200として特定する。例えば、タスク処理ノード200の識別情報と、データ221のValueとを対応付けたリスト形式の絞込み情報113の場合、タスク割当モジュール132は、絞込み情報113を参照し、データ221のValueに対応付けられたタスク処理ノード200の識別情報を取得する。これによって、タスク処理ノード200を特定できる。
絞込み情報113を用いることによって、データ問合せの対象のタスク処理ノード200の数を削減できる。これによって、当該問合せに伴うシステムの負荷を低減及び処理の高速化を実現できる。
なお、タスク割当モジュール132は、ターゲットデータ221を特定するための情報及び絞込み情報113の他に、ノード管理情報112を考慮して、データ問合せの対象のタスク処理ノード200を特定してもよい。
タスク割当モジュール132は、問合せ処理を開始する(ステップS202)。ここでは、特定されたタスク処理ノード200の中からターゲットタスク処理ノード200を一つ選択する。
タスク割当モジュール132は、ターゲットタスク処理ノード200に、データ問合せを行う(ステップS203)。なお、当該データ問合せには、ターゲットデータ221を特定するための情報が含まれる。
タスク処理ノード200の検索エンジン211は、データ問合せを受信した場合、ターゲットデータ221を特定するための情報に基づいて索引情報222を参照して、ターゲットデータ221を検索する。例えば、検索エンジン211は、索引情報222を参照し、Value、データの名称、データの種類、又はデータの範囲に一致するレコードを検索する。検索エンジン211は、検索結果を含む応答をタスク管理ノード100に送信する。検索結果には、少なくとも、ターゲットデータの有無を示す情報が含まれる。なお、検索されたターゲットデータに関する情報を含んでもよい。例えば、保持するターゲットデータ221の数を示す情報、及び保持するターゲットデータ221の種別を示す情報等が検索結果に含まれてもよい。
タスク割当モジュール132は、ターゲットタスク処理ノード200から応答を受信した場合(ステップS204)、特定された全てのタスク処理ノード200について処理が完了したか否かを判定する(ステップS205)。
特定された全てのタスク処理ノード200について処理が完了していないと判定された場合、タスク割当モジュール132は、ステップS202に戻り、新たなターゲットタスク処理ノード200を選択する。
特定された全てのタスク処理ノード200について処理が完了したと判定された場合、タスク割当モジュール132は、ノード管理情報112を参照し(ステップS206)、タスクを割り当てるタスク処理ノード200を選択する(ステップS207)。例えば、以下のような処理が考えられる。
タスク割当モジュール132は、ターゲットデータ221を保持するタスク処理ノード200が複数存在する場合、CPU使用率の低い順に所定の数のタスク処理ノード200を選択する。また、別の方法としては、ネットワーク遅延が所定の閾値より小さいタスク処理ノード200を選択する方法も考えられる。すなわち、ターゲットデータ221を保持するタスク処理ノード200の中から、タスクの処理負荷が小さいタスク処理ノード200又はタスクの処理時間が短いタスク処理ノード200が選択される。
タスク割当モジュール132は、ターゲットデータ221を保持するタスク処理ノード200の処理負荷が高い場合、CPU使用率が低いタスク処理ノード200、物理的距離が近いタスク処理ノード200、又はネットワーク遅延が小さいタスク処理ノード200を選択する。すなわち、ターゲットデータ221を保持しないタスク処理ノード200の中から、タスクの処理負荷が小さいタスク処理ノード200又はタスクの処理時間が短いタスク処理ノード200が選択される。
この場合、選択されたタスク処理ノード200には、ターゲットデータ221を保持するタスク処理ノード200の識別情報を含む情報が送信される。これによって、選択されたタスク処理ノード200は、データ問合せを行うことなく、ターゲットデータ221を取得することができる。
本実施例では、タスク割当モジュール132は、ノード管理情報112に基づいて、タスク実行するタスク処理ノード200が偏らないように、タスク処理ノード200にタスクを割り当てる。これによって、一つのタスク処理ノード200にタスクが集中することによって発生するボトルネックを解消できる。
なお、選択基準及び選択数は、予め設定されているものとする。ただし、選択基準及び選択数は、適宜更新できる。以上がステップS207の処理の一例である。
タスク割当モジュール132は、選択されたタスク処理ノード200にタスクを割当て(ステップS208)、処理を終了する。
なお、タスク割当モジュール132は、ターゲットデータ221を保持する旨の応答を受信した場合、ループ処理を終了してもよい。この場合、データ問合せを行っていないタスク処理ノード200は、ターゲットデータ221を保持していないものとして扱われる。また、ステップS206及びステップS207の処理は省略され、ステップS208では、タスク割当モジュール132は、前述の応答を送信したタスク処理ノード200にタスクを割り当てる。
なお、タスク割当モジュール132は、複数のタスク処理ノード200にタスクを割り当てる場合、同一内容のタスクを割り当ててもよいし、処理内容が異なるタスクを割り当ててもよい。
なお、選択されたタスク処理ノード200がタスクを実行できない場合も考えられる。そこで、タスク割当モジュール132は、ステップS207において選択されなかったタスク処理ノード200の識別情報を含むタスク転送情報を送信してもよい。タスクが割り当てられたタスク処理ノード200がタスクを実行できない場合、タスク転送情報に基づいて、他のタスク処理ノード200にタスクを割り当てる。これによって、タスク割当モジュール132は、再度、問合せ処理を実行する必要がない。
実施例1によれば、各タスク処理ノード200が索引情報222を保持するため、各タスク処理ノード200にデータ問合せを行うことができる。そのため、タスク割当時における索引情報222へのアクセスを分散できる。また、タスク処理ノード200のスケールアウトによって、データ問合せの負荷を削減できる。
タスク処理ノード200が追加された場合、当該タスク処理ノード200のみが索引情報222を作成すればよい。各タスク処理ノード200が保持する索引情報222は依存関係を有さないため、タスク処理ノード200間で索引情報222を送受信する必要ない。したがって、タスク処理ノード200の追加に伴う通信量の増加を抑制でき、スケールアウトも容易にできる。データが追加された場合も同様にタスク処理ノード200間の通信量の増加を抑制できる。
また、データ221を管理するノード及び索引情報222を管理するノードが同一であるため、管理も容易となる。
また、データを保持するタスク処理ノード200にタスクが割り当てられるため、タスク処理ノード200間の通信の発生が抑制される。これによって、タスクの実行に伴うタスク処理ノード200間の通信量を削減できる。
実施例2では、タスク管理ノード100が有する機能を各タスク処理ノード200に含める。以下、実施例1との差異を中心に実施例2について説明する。実施例1と共通する構成、情報、及び処理の説明は省略する。
実施例2の計算機システムはタスク管理ノード100を含まない。各タスク処理ノード200が、タスク管理モジュール111、ノード管理情報112、及び絞込み情報113を保持する。タスク処理ノード200の他の構成は、実施例1のタスク処理ノード200と同一である。
実施例2では、各タスク処理ノード200は、タスク管理ノード100の機能を有する。そのため、各タスク処理ノード200は、クライアント端末からタスクの実行要求を受け付けることができる。
実施例2の索引管理モジュール131が実行する処理は、実施例1で示した処理と同一である。なお、各タスク処理ノード200の索引管理モジュール131が処理を実行できるため、検索エンジン211は、索引情報222の生成/更新指示を前回受信しから所定時間経過していない場合には、索引情報222を生成又は更新しなくてもよい。
実施例2のタスク割当モジュール132が実行する処理は、実施例1で示した処理と同一である。
実施例2の計算機システム、実施例1の計算機システムと同様の効果を奏する。
特許請求の範囲に記載した以外の発明の観点の代表的なものとして、次のものがあげられる。
(1)データベースを構成する複数の計算機を管理する管理計算機が実行するプログラムであって、
前記管理計算機は、プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続されるネットワークインタフェースを有し、
第1の処理の実行要求を受け付けた場合、前記第1の処理が使用するデータを特定する第1の手順と、
前記データベースを構成する複数の計算機の各々に、前記第1の処理が使用するデータの有無を問い合わせるデータ問合せを行う第2の手順と、
前記データ問合せに対する第1の応答に基づいて、前記第1の処理が使用するデータを保持する計算機を特定する第3の手順と、
前記特定された計算機に前記第1の処理を割り当てる第4の手順と、前記管理計算機に実行させることを特徴とするプログラム。
(2)(1)に記載のプログラムであって、
前記管理計算機は、前記データ問合せの対象の計算機を特定するための絞込み情報を保持し、
前記第1の手順では、前記絞込み情報に基づいて前記データ問合せの対象の計算機を特定することを特徴とするプログラム。
(3)(2)に記載のプログラムであって、
前記データベースを構成する複数の計算機に、前記データベースに割り当てられる記憶領域に格納されるデータを検索するための索引情報の生成を指示する手順と、
前記データベースを構成する複数の計算機から、前記データベースに割り当てられる記憶領域に格納されるデータに関する情報を含む第2の応答を受信する手順と、
前記第2の応答に基づいて、前記絞込み情報を生成する手順と、を前記管理計算機に実行させることを特徴とするプログラム。
(4)(3)に記載のプログラムであって、
前記管理計算機は、前記データベースを構成する複数の計算機の状態を管理する状態管理情報を保持し、
前記第4の手順は、
前記第1の処理が使用するデータを保持する計算機が複数存在する場合、前記状態管理情報を参照する手順と、
前記第1の処理が使用するデータを保持する複数の計算機の中から、前記第1の処理の負荷が小さい又は前記第1の処理の処理時間が短い計算機を選択する手順と、
前記選択された計算機に前記第1の処理を割り当てる手順と、を含むことを特徴とするプログラム。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるCPUが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納し、コンピュータが備えるCPUが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
100 タスク管理ノード
101、201 CPU
102、202 メモリ
103、204 ネットワークインタフェース
111 タスク管理モジュール
112 ノード管理情報
113 絞込み情報
131 索引管理モジュール
132 タスク割当モジュール
133 検索問合せモジュール
200 タスク処理ノード
203 記憶装置
211 検索エンジン
212 データ管理モジュール
221 データ
222 索引情報

Claims (9)

  1. 複数の計算機を有する計算機システムであって、
    前記複数の計算機が有する記憶領域を用いて構成され、第1検索キー及びデータ値を含むデータを格納するキーバリューストア型のデータベースを有し、
    前記複数の計算機は、プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続されるネットワークインタフェースを有し、
    前記複数の計算機の少なくとも一つの計算機が有する前記プロセッサは、
    前記データベースを構成する複数の計算機の各々に、前記第1検索キー及び前記データ値に関連する第2検索キーのいずれかを用いて、前記データベースを構成する複数の計算機の各々が前記データベースに割り当てている自記憶領域に格納されるデータを検索するための索引情報の生成を指示する第1の処理と、
    第1のタスクの実行要求を受け付けた場合、前記第1のタスクが使用するデータを特定し、
    前記データベースを構成する複数の計算機の各々に、前記第1のタスクが使用するデータの前記第2検索キーを含み、前記第1のタスクが使用するデータの有無を問い合わせるデータ問合せを行い、
    前記データ問合せに対する第1の応答に基づいて、前記第1のタスクが使用するデータを保持する計算機を特定し、
    前記特定された計算機に前記第1のタスクを割り当てる、第2の処理と、を実行することを特徴とする計算機システム。
  2. 請求項1に記載の計算機システムであって、
    前記複数の計算機の少なくとも一つの計算機は、前記データ問合せの対象の計算機を選択するための絞込み情報を保持し、
    前記第2の処理において、前記複数の計算機の少なくとも一つの計算機が有するプロセッサは、前記絞込み情報に基づいて、前記データ問合せの対象の計算機を特定することを特徴とする計算機システム。
  3. 請求項2に記載の計算機システムであって、
    前記第1の処理において、前記複数の計算機の少なくとも一つの計算機が有するプロセッサは、
    前記データベースを構成する複数の計算機の各々に前記索引情報の生成を指示した後、前記データベースを構成する複数の計算機から、前記自記憶領域に格納されるデータに関する情報を含む第2の応答を受信し、
    前記第2の応答に基づいて、前記絞込み情報を生成し、
    前記第1の処理において、前記データベースを構成する複数の計算機の各々が有するプロセッサは、
    前記索引情報の生成の指示を受け付けた場合、前記索引情報を生成し、
    前記第2の応答を送信し、
    前記第2の処理において、前記データベースを構成する複数の計算機の各々が有するプロセッサは、
    前記第1のタスクが割り当てられた場合、前記索引情報に基づいて、前記自記憶領域に格納されるデータを検索し、
    前記検索されたデータを用いて前記第1のタスクを実行することを特徴とする計算機システム。
  4. 請求項3に記載の計算機システムであって、
    前記複数の計算機の少なくとも一つの計算機は、前記データベースを構成する複数の計算機の構成及び稼働状態を管理する計算機管理情報を保持し、
    前記第2の処理において、前記複数の計算機の少なくとも一つの計算機が有するプロセッサは、
    前記第1のタスクが使用するデータを保持する計算機が複数存在する場合、前記計算機管理情報を参照し、
    前記第1のタスクが使用するデータを保持する複数の計算機の中から、前記第1のタスクの負荷が小さい又は前記第1のタスクの処理時間が短い計算機を選択し、
    前記選択された計算機に前記第1のタスクを割り当てることを特徴とする計算機システム。
  5. 複数の計算機を有する計算機システムにおけるタスクの割当方法であって、
    前記複数の計算機が有する記憶領域を用いて構成され、第1検索キー及びデータ値を含むデータを格納するキーバリューストア型のデータベースを有し、
    前記複数の計算機は、プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続されるネットワークインタフェースを有し、
    前記タスクの割当方法は、
    前記複数の計算機の少なくとも一つの計算機が有する前記プロセッサが、前記データベースを構成する複数の計算機の各々に、前記第1検索キー及び前記データ値に関連する第2検索キーのいずれかを用いて、前記データベースを構成する複数の計算機の各々が前記データベースに割り当てている自記憶領域に格納されるデータを検索するための索引情報の生成を指示する第1のステップと、
    前記複数の計算機の少なくとも一つの計算機が有する前記プロセッサが、第1のタスクの実行要求を受け付けた場合、前記データベースを構成する複数の計算機に前記第1のタスクを割り当てる第2のステップと、を含み、
    前記第2のステップは、
    前記複数の計算機の少なくとも一つの計算機が有する前記プロセッサが、前記第1のタスクが使用するデータを特定する第のステップと、
    前記複数の計算機の少なくとも一つの計算機が有する前記プロセッサが、前記データベースを構成する複数の計算機の各々に、前記第1のタスクが使用するデータの前記第2検索キーを含み、前記第1のタスクが使用するデータの有無を問い合わせるデータ問合せを行う第のステップと、
    前記複数の計算機の少なくとも一つの計算機が有する前記プロセッサが、前記データ問合せに対する第1の応答に基づいて、前記第1のタスクが使用するデータを保持する計算機を特定する第のステップと、
    前記複数の計算機の少なくとも一つの計算機が有する前記プロセッサが、前記特定された計算機に前記第1のタスクを割り当てる第のステップと、
    を含むことを特徴とするタスクの割当方法。
  6. 請求項5に記載のタスクの割当方法であって、
    前記複数の計算機の少なくとも一つの計算機は、前記データ問合せの対象の計算機を選択するための絞込み情報を保持し、
    前記第のステップは、前記複数の計算機の少なくとも一つの計算機が有するプロセッサが、前記絞込み情報に基づいて、前記データ問合せの対象の計算機を特定するステップを含むことを特徴とするタスクの割当方法。
  7. 請求項6に記載のタスクの割当方法であって
    前記第1のステップは、
    前記データベースを構成する複数の計算機の各々が有するプロセッサが、前記索引情報の生成の指示を受け付けた場合、前記索引情報を生成するステップと、
    前記データベースを構成する複数の計算機の各々が有するプロセッサが、前記自記憶領域に格納されるデータに関する情報を含む第2の応答を送信するステップと、
    前記複数の計算機の少なくとも一つの計算機が有するプロセッサが、前記データベースを構成する複数の計算機から、前記第2の応答を受信するステップと、
    前記複数の計算機の少なくとも一つの計算機が有するプロセッサが、前記第2の応答に基づいて、前記絞込み情報を生成するステップと、を含み
    前記第のステップは、
    前記データベースを構成する複数の計算機の各々が有するプロセッサが、前記第1のタスクが割り当てられた場合、前記索引情報に基づいて、前記自記憶領域に格納されるデータを検索するステップと、
    前記データベースを構成する複数の計算機の各々が有するプロセッサが、前記検索されたデータを用いて前記第1のタスクを実行するステップと、
    を含むことを特徴とするタスクの割当方法。
  8. 請求項7に記載のタスクの割当方法であって、
    前記複数の計算機の少なくとも一つの計算機は、前記データベースを構成する複数の計算機の構成及び稼働状態を管理する計算機管理情報を保持し、
    前記第のステップは、
    前記複数の計算機の少なくとも一つの計算機が有するプロセッサが、前記第1のタスクが使用するデータを保持する計算機が複数存在する場合、前記計算機管理情報を参照するステップと、
    前記複数の計算機の少なくとも一つの計算機が有するプロセッサが、前記第1のタスクが使用するデータを保持する複数の計算機の中から、前記第1のタスクの負荷が小さい又は前記第1のタスクの処理時間が短い計算機を選択するステップと、
    前記複数の計算機の少なくとも一つの計算機が有するプロセッサが、前記選択された計算機に前記第1のタスクを割り当てるステップと、
    を含むことを特徴とするタスクの割当方法。
  9. 第1検索キー及びデータ値を含むデータを格納するキーバリューストア型のデータベースを構成する複数のタスク処理ノード及び前記タスク処理ノードにタスクを割り当てるタスク管理ノードを備える計算機システムであって、
    前記タスク処理ノードは、第1のプロセッサ、前記第1のプロセッサに接続される第1のメモリ、前記第1のプロセッサに接続される記憶装置、及び前記第1のプロセッサに接続される第1のネットワークインタフェースを有し、
    前記タスク管理ノードは、第2のプロセッサ、前記第2のプロセッサに接続される第2のメモリ、及び前記第2のプロセッサに接続される第2のネットワークインタフェースを有し、
    前記タスク処理ノードは、
    前記データベースに対するデータの入出力を制御するデータ管理モジュールと、
    前記データベースからデータを検索する検索エンジンと、を有し、
    前記タスク管理ノードは、
    前記タスク処理ノードへのタスクの割当てを制御するタスク管理モジュールを有し、
    前記タスク処理ノードの状態を管理するノード管理情報と、
    タスクが使用するデータの有無を問い合わせるタスク処理ノードを選択するための絞込み情報と、を保持し、
    前記タスク管理モジュールは、
    前記複数のタスク処理ノードの各々に、前記第1検索キー及び前記データ値に関連する第2検索キーのいずれかを用いて、前記複数のタスク処理ノードの各々が前記データベースに割り当てている自記憶領域に格納されるデータを検索するための索引情報の生成を指示し、
    第1のタスクの実行要求を受け付けた場合、前記第1のタスクの実行要求を解析することによって、前記第1のタスクが使用するデータを特定し、
    前記絞込み情報に基づいて、前記第1のタスクが使用するデータの前記第2検索キーを含み、前記第1のタスクが使用するデータの有無を問い合わせるデータ問合せの対象のタスク処理ノードを特定し、
    前記特定されたタスク処理ノードに前記データ問合せを行い、
    前記データ問合せに対する応答を受信し、
    前記応答及び前記ノード管理情報に基づいて、前記第1のタスクを割り当てるタスク処理ノードを選択し、
    前記選択されたタスク処理ノードに前記第1のタスクを割り当て、
    前記検索エンジンは、
    前記タスク管理モジュールからの指示を受信した場合、前記索引情報を生成し、
    前記第1のタスクが割り当てられた場合、前記索引情報に基づいて、前記自記憶領域に格納されるデータの中から、前記第1のタスクが使用するデータを検索し、
    前記検索されたデータを用いて前記第1のタスクを実行することを特徴とする計算機システム。
JP2017042896A 2017-03-07 2017-03-07 計算機システム及びタスクの割当方法 Active JP6951846B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017042896A JP6951846B2 (ja) 2017-03-07 2017-03-07 計算機システム及びタスクの割当方法
US15/870,896 US20180260463A1 (en) 2017-03-07 2018-01-13 Computer system and method of assigning processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017042896A JP6951846B2 (ja) 2017-03-07 2017-03-07 計算機システム及びタスクの割当方法

Publications (3)

Publication Number Publication Date
JP2018147301A JP2018147301A (ja) 2018-09-20
JP2018147301A5 JP2018147301A5 (ja) 2020-03-12
JP6951846B2 true JP6951846B2 (ja) 2021-10-20

Family

ID=63446419

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017042896A Active JP6951846B2 (ja) 2017-03-07 2017-03-07 計算機システム及びタスクの割当方法

Country Status (2)

Country Link
US (1) US20180260463A1 (ja)
JP (1) JP6951846B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110728363B (zh) * 2018-06-29 2022-11-18 华为技术有限公司 任务处理方法和装置
JP7372221B2 (ja) * 2020-09-30 2023-10-31 Kddi株式会社 Ai処理分散方法およびシステム
CN113094391B (zh) * 2021-04-22 2022-08-26 浪潮通用软件有限公司 一种支持缓存的数据汇总的计算方法、装置及设备
CN113535730A (zh) * 2021-07-21 2021-10-22 挂号网(杭州)科技有限公司 搜索引擎的索引更新方法及系统、电子设备、存储介质
CN118277456B (zh) * 2024-06-03 2024-09-20 天津南大通用数据技术股份有限公司 一种mpp分布式系统中的发起节点输出方法

Also Published As

Publication number Publication date
US20180260463A1 (en) 2018-09-13
JP2018147301A (ja) 2018-09-20

Similar Documents

Publication Publication Date Title
JP6951846B2 (ja) 計算機システム及びタスクの割当方法
JP7046172B2 (ja) シャード・データベースのシャード・テーブルにレコードを記憶するためのコンピュータ実装方法、コンピュータ・プログラム製品、およびシステム、シャード・データベースのシャード・テーブルからレコードを検索するためのコンピュータ実装方法、コンピュータ・プログラム製品、およびシステム、ならびにシャード・データベースを記憶するためのシステム
CN111597148B (zh) 用于分布式文件系统的分布式元数据管理方法
US10904316B2 (en) Data processing method and apparatus in service-oriented architecture system, and the service-oriented architecture system
US10394782B2 (en) Chord distributed hash table-based map-reduce system and method
US10908834B2 (en) Load balancing for scalable storage system
CN106682215B (zh) 一种数据处理方法和管理节点
CN104954468A (zh) 资源的分配方法及装置
US20170228422A1 (en) Flexible task scheduler for multiple parallel processing of database data
CN109196807B (zh) 网络节点以及操作网络节点以进行资源分发的方法
CN113760847A (zh) 日志数据处理方法、装置、设备及存储介质
JP2018147301A5 (ja)
CN111857539A (zh) 用于管理存储系统的方法、设备和计算机程序产品
JP6268116B2 (ja) データ処理装置、データ処理方法およびコンピュータプログラム
JP5371656B2 (ja) ファイル検索システム
US20220342888A1 (en) Object tagging
JP6189266B2 (ja) データ処理装置、データ処理方法及びデータ処理プログラム
KR100983479B1 (ko) 분산 스페이스를 이용하여 분산 프로그래밍 환경을 제공하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
JP5626937B1 (ja) リソース提供装置、リソース提供方法、およびリソース提供システム
US8832176B1 (en) Method and system for processing a large collection of documents
JP6233846B2 (ja) 可変長ノンスの生成
JP6607044B2 (ja) サーバー装置、分散ファイルシステム、分散ファイルシステム制御方法、および、プログラム
KR101648401B1 (ko) 데이터 관리 및 분석을 위한 데이터베이스 장치, 스토리지 유닛 및 그 방법
JP6349837B2 (ja) スケジューラ装置及びそのスケジューリング方法、演算処理システム、並びにコンピュータ・プログラム
JP2022014633A (ja) 分散処理システム、分散処理装置、データベース管理装置及び方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200131

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200131

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210209

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210326

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210927

R150 Certificate of patent or registration of utility model

Ref document number: 6951846

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150