JP6280237B2 - 計算機システム及びデータ処理方法 - Google Patents

計算機システム及びデータ処理方法 Download PDF

Info

Publication number
JP6280237B2
JP6280237B2 JP2016559707A JP2016559707A JP6280237B2 JP 6280237 B2 JP6280237 B2 JP 6280237B2 JP 2016559707 A JP2016559707 A JP 2016559707A JP 2016559707 A JP2016559707 A JP 2016559707A JP 6280237 B2 JP6280237 B2 JP 6280237B2
Authority
JP
Japan
Prior art keywords
processing
request
batch
time
computer
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
JP2016559707A
Other languages
English (en)
Other versions
JPWO2016079786A1 (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 JPWO2016079786A1 publication Critical patent/JPWO2016079786A1/ja
Application granted granted Critical
Publication of JP6280237B2 publication Critical patent/JP6280237B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • 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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • 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]
    • 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/5038Allocation 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 the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition

Description

本発明は、概して、処理要求のデータの処理に関する。
処理要求のデータの処理に関し、例えば特許文献1に開示の装置が知られている。特許文献1に開示の装置は、トランザクションを所定のブロック毎に分割して処理する。
特開2000−207265号公報
ところで、ビッグデータ等のデータの処理のための分散システムが知られている。分散システムは、一般に、複数の物理計算機(例えば物理サーバ)を有する。
分散システムは、複数の処理要求を処理するが、処理(処理要求)の優先順位(例えば処理に要する時間の制約)が同じとは限らない。例えば、オンライン処理とバッチ処理がある。オンライン処理は、レイテンシ性能の求められる処理であり、例えば、オンラインで受けた処理要求(例えばデータI/O要求)の処理である。一方、バッチ処理は、比較的長い処理時間が許容される処理であり、例えば、複数データに対する纏まった処理を一括して実行するような処理(具体的には、例えば、物理計算機の追加又は削除によるデータマイグレーション、物理計算機内のデータの集計、又は、複数データの消去)である。従って、一般的に、オンライン処理はバッチ処理よりも優先順位が高い。
安定したオンライン処理性能を維持する方法として、特許文献1のトランザクション分割技術に基づきバッチ処理を分割して行う方法が考えられる。
しかし、特許文献1は、単一の装置でのトランザクション分割を開示しているものの、複数の物理計算機の各々でのデータ処理を開示も示唆もしていない。2以上の物理計算機においてデータの一貫性を保つことが必要な環境において、2以上の物理計算機の各々が独立してバッチ処理を分割して行うと、データの一貫性を必ずしも保てない。
この種の問題は、オンライン処理とバッチ処理以外の優先順位の異なる複数の処理についても存在し得る。また、この種の問題は、複数の物理計算機で構成された分散システムに限らず、複数のプロセスの各々が処理要求のデータを処理する他種のシステムにも存在し得る。
計算機システムが、処理要求を実行する複数のプロセスと、制御部と、全順序配信部とを備える。制御部は、第一の処理要求より優先順位の低い第二の処理要求の実行を決定したとき、予め定められた分割サイズに従い第二の処理要求を基に分割第二処理要求を作成する。全順序配信部は、1以上の第二の処理要求に対応した1以上の分割第二処理要求と1以上の第一の処理要求とのうちの少なくとも1つを含んだ1以上の処理要求の実行順序を決定し、複数のプロセスに、それぞれ、決定された実行順序で1以上の処理要求を実行させる。
「プロセス」は、物理計算機でもよいし、仮想計算機でもよいし、物理計算機又は仮想計算機内のプロセッサでもよいし、プロセッサにより実行されるプログラムでもよい。
制御部及び全順序配信部は、複数のプロセスのうちの少なくとも1つの各々に含まれていてもよいし(例えば、全てのプロセスの各々が、制御部及び全順序配信部を有していてよいし)、複数のプロセス以外(例えば、複数のプロセス以外のプロセス)に存在してもよい。
「分割サイズ」は、ユーザ(例えば管理者)から指定されたサイズでもよいし、分割前に所定の情報を基に算出されたサイズでもよい。
複数のプロセスの各々で、1以上の第二の処理要求に対応した2以上の分割第二処理要求と2以上の第一の処理要求とを含んだ複数の処理要求が、同じ実行順序で実行される。これにより、複数のプロセスで同じ結果が得られ、故に、データの一貫性が保証される。
実施形態に係る情報システムの構成を示す。 第一サーバ計算機及び第二サーバ計算機において行われる処理の概要を示す。 比較例と実施形態との比較の概要の一例を示す。 比較例と実施形態との比較の具体例を示す。 データストアの構成を示す。 分割バッチ要求の構成を示す。 分割バッチ履歴テーブルの構成を示す。 バッチ管理テーブルの構成を示す。 バッチ実行中画面の一例である。 バッチ実行結果画面の一例である。 要求制御部の動作のフローチャートである。 分割部の動作のフローチャートである。 全順序配信部の動作のフローチャートである。 分割サイズ決定の第一の観点を示す。 分割サイズ決定の第二の観点を示す。 バッチ終了時刻が入力された場合に行われる処理の一例を示す。
以下、プロセスとしてサーバ計算機(物理計算機の一例)を例に取り、一実施形態を説明する。
なお、以下の説明では、「kkkテーブル」の表現にて情報を説明することがあるが、情報は、テーブル以外のデータ構成で表現されていてもよい。データ構成に依存しないことを示すために「kkkテーブル」のうちの少なくとも1つを「kkk情報」と呼ぶことができる。各テーブルの構成は一例であり、2以上のテーブルが1つのテーブルにまとめられたり、1つのテーブルが複数のテーブルに分割されたりしてもよい。
また、以下の説明では、「kkk部」の表現にて処理部(機能)を説明することがあるが、処理部は、コンピュータプログラムがプロセッサ(例えばCPU(Central Processing Unit)によって実行されることで実現されてもよいし、ハードウェア回路(例えばFPGA(Field Programmable Gate Array)又はASIC(Application Specific Integrated Circuit))によって実現されてもよい。プログラムがプロセッサによって処理部が実現される場合、定められた処理が、適宜に記憶資源(例えばメモリ)及び/又は通信インターフェイスデバイス(例えば通信ポート)等を用いながら行われるため、処理部はプロセッサの少なくとも一部とされてもよい。処理部を主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。また、プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースからプロセッサにインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機または計算機が読み取り可能な記憶メディアであってもよい。各処理部の説明は一例であり、複数の処理部が1つの処理部にまとめられたり、1つの処理部が複数の処理部に分割されたりしてもよい。
図1は、実施形態に係る情報システムの構成を示す。
情報システム100は、計算機システムの一例であるサーバシステム101と、サーバシステム101に通信ネットワーク171を介して接続されたクライアントシステム103と、サーバシステム101の管理システム112とを有する。
クライアントシステム103は、複数(又は1つ)のクライアント計算機113である。本実施形態では、クライアント計算機113は、物理計算機であるが、仮想計算機であってもよい。クライアント計算機113は、アプリケーション181と、データ送受信部183とを有する。アプリケーション181が、データ送受信部183を介して、サーバシステム101に処理要求をオンラインで送信する。以下、オンラインで送信された処理要求を、「オンライン要求」と言う。サーバシステム101は、オンライン要求を処理し、処理結果(例えば、ライト処理の結果、又は、リード処理の結果(例えば、リード処理に従い読み出されたデータを含む))を、オンライン要求の応答としてクライアント計算機113に返す。
管理システム112は、1以上の計算機で構成されたシステムであり、例えば、管理計算機、又は、管理計算機と管理計算機から出力された表示用情報が表す情報を表示する表示用計算機との組合せである。すなわち、管理システム112は、少なくとも1つの計算機が表示デバイスを有し、サーバシステム101からの情報を表示デバイスに表示する。
サーバシステム101は、複数のサーバ計算機111で構成されている。本実施形態では、サーバシステム101は、分散key-valueストア(分散KVS)でありPaxosアルゴリズムに従い処理を行う分散合意システムである。サーバシステム101は、そのような分散システムに代えて、他種の分散システムでもよいし、他種の計算機システムでもよい。
各サーバ計算機111は、ネットワークI/F(通信インターフェースデバイス)122、主記憶デバイス124、補助記憶デバイス123、それらに接続されたプロセッサ121を有する。主記憶デバイス124及び補助記憶デバイス123が、記憶資源の一例である。以下、複数のサーバ計算機111のうちの任意の1つのサーバ計算機111を「第一サーバ計算機111A」と言い、第一サーバ計算機111Aを例に取る。そして、第一サーバ計算機111Aとの間でデータの一貫性を保つべき1以上の他の計算機を、それぞれ、「第二サーバ計算機111B」と言う。第二サーバ計算機111Bは、例えば、第一サーバ計算機111Aが保存するkey-value(キーとそれに属する値)セットと同一のkey-valueセット(第一サーバ計算機111Aが保存するkey-valueの複製)を保存する計算機である。なお、各サーバ計算機111は、第一サーバ計算機111Aになることもあれば第二サーバ計算機111Bになることもあり得る。
ネットワークI/F122は、通信ネットワーク171を介してクライアントシステム103(クライアント計算機113)からオンライン要求を受信する。補助記憶デバイス123は、HDD(Hard Disk Drive)又はSSD(Solid State Drive)のような不揮発性の記憶デバイスである。補助記憶デバイス123は、例えば、データストア(複数のkey-value)を有する。プロセッサ121は、主記憶デバイス124にロードされたコンピュータプログラムを実行することにより処理部を実現する。処理部として、例えば、制御部132(要求制御部151及び分割部152を含む)、モニタ部131、全順序配信部133、入力部134及び出力部135がある。また、主記憶デバイス124は、分割履歴テーブル141及びバッチ管理テーブル142(後述)を記憶する。分割履歴テーブル141及びバッチ管理テーブル142は、いずれかの処理部に含まれていてもよい。
要求制御部151は、オンライン要求及びバッチ要求を受け付ける。オンライン要求は、第一の処理要求の一例であり、クライアント計算機113からネットワークI/F122を介して受信された処理要求(例えばデータの入出力(I/O)要求)である。バッチ要求は、第一の処理要求より優先順位の低い第二の処理要求の一例であり、バッチで処理されるデータの処理要求である。本実施形態は、オンライン処理性能の低下を軽減するために、オンライン要求がバッチ要求より優先される。以下、オンライン要求の処理対象のデータを、「オンラインデータ」と言い、1つのオンライン要求の処理(1つのオンライン要求に対応したオンラインデータの処理)を「オンライン処理」と言う。また、以下、バッチ要求の処理対象のデータを「バッチデータ」と言い、バッチデータの処理を「バッチ処理」と言う。オンライン要求のソースは、クライアント計算機113のようなネットワーク上のノード(サーバシステム101と通信可能な計算機)でよく、バッチ要求のソースは、クライアント計算機113、サーバシステム101の管理計算機(図示せず)、サーバ計算機111内部のプログラム等でよい。要求制御部151は、オンライン要求を受けた場合、そのオンライン要求を全順序配信部133に送る。要求制御部151は、バッチ要求を受け付けた場合、分割部152に分割バッチ要求の作成を依頼する。要求制御部151は、その依頼に応答して作成された分割バッチ要求を、全順序配信部133に送る。なお、要求制御部151は、バッチ要求の分割を必ずしも分割部152に依頼しないでもよい。
分割部152は、モニタ部131からのモニタ結果情報を基にバッチの分割サイズを決定する。分割部152は、要求制御部151からの依頼に応答して、決定した分割サイズに従いバッチ要求を基に分割バッチ要求を作成する。1つの分割バッチ要求は、1つのバッチ要求の処理対象のバッチデータを構成する分割データ(バッチデータ部分)に対応している。分割データのサイズは、例えば、分割サイズと同じサイズである。分割サイズは、1つのバッチ要求につき固定であってもよいし可変であってもよい。分割サイズの決定(変更)は、要求制御部151からの分割依頼の都度に行われてもよいし、要求制御部151からの分割依頼無しに(例えば定期的に)行われてもよい。分割部152は、分割バッチ要求が作成される都度に分割バッチ要求を要求制御部151へ送る。なお、分割部152は、必ずしもバッチ要求を分割しないでもよい。
モニタ部131は、処理要求の実行及びサーバ負荷状況等を監視する。モニタ部131は、モニタ結果を示す情報であるモニタ結果情報を出力する。モニタ結果情報は、例えば、処理要求毎の進捗を示す情報と、サーバ負荷状況を示す情報とを含んでよい。処理要求毎の進捗は、例えば、処理要求毎のステータス(未実行、実行中、完了等)、処理要求毎の開始時刻及び終了時刻を含んでよい。サーバ負荷状況は、例えば、少なくとも第一サーバ計算機111Aの負荷状況(例えば、第一サーバ計算機111A(及び第二サーバ計算機111B)のリソース使用率(例えばプロセッサ使用率))を含む。このようなモニタ結果情報又はそれの蓄積から、空き時間、オンライン処理所要時間、オンライン処理間隔等の検出又は算出が可能である。モニタ結果情報は、主記憶デバイス124及び補助記憶デバイス123の少なくとも1つを含む記憶資源に蓄積されてよい。なお、「空き時間」は、オンライン処理が行われていない期間、具体的には、例えば、オンライン処理間隔又は許容レイテンシ時間とオンライン処理所要時間との差分である。「オンライン処理所要時間」は、1つのオンライン処理(1つのオンライン要求の処理)にかかる時間である。「オンライン処理間隔」は、N番目(Nは1以上の整数)のオンライン処理の開始から(N+1)番目のオンライン処理の開始までの時間である。「許容レイテンシ時間」は、オンライン処理所要時間の許容値である。モニタ結果情報の出力先は、少なくとも1つの処理部であってもよいし、少なくとも1つの処理部が参照可能な記憶資源(例えば主記憶デバイス124又は補助記憶デバイス123)でもよい。
全順序配信部133は、要求制御部151からの複数の処理要求(1以上のバッチ要求に対応した2以上の分割バッチ要求と、2以上のオンライン要求とを含む)の実行順序を決定する。例えば、全順序配信部133は、例えばFIFO(First-In First-Out)形式のキューを管理しており、全順序配信部133が要求制御部151からの処理要求(例えばオンライン要求又は分割バッチ要求)を受信した順番通りにキューに投入することで、複数の処理要求の実行順序が決まってよい。或いは、全順序配信部133は、要求制御部151からの処理要求を所定数又は一定期間蓄積し、蓄積されている複数の処理要求の実行順序を、後述のポリシ(例えばバッチ要求の終了時刻)及びモニタ結果情報のうちの少なくとも一部を基に決定してよい。これにより、ポリシを満たすような実行順序を決定することができる。全順序配信部133は、制御部132(例えば要求制御部151)と第二サーバ計算機111Bとに、決定した実行順序で複数の処理要求を実行させる。具体的には、例えば、全順序配信部133は、Paxosアルゴリズムに従い、複数の処理要求とそれの実行順序とを表す情報を含んだ提案を、第二サーバ計算機111Bに送信する。全順序配信部133は、一定数以上の第二サーバ計算機111Bから、送信した提案に対して合意を受けた場合に、複数の処理要求を決定した実行順序で実行することを制御部132(要求制御部151)及び第二サーバ計算機111Bに指示する。なお、全順序配信部133は、提案を受けた場合には、その提案に合意するか否かを判定し、合意か否かを、提案の送信元に回答するようになっている。また、全順序配信部133は、提案に記述の実行順序で複数の処理要求を実行する指示を提案の送信元から受けた場合には、その複数の処理要求をその実行順序通りに制御部132(要求制御部151)に実行させるようになっている。
入力部134は、ポリシを含む情報の入力を受ける。ポリシは、バッチ処理及びオンライン処理要求のうちの少なくとも1つについての処理性能に関わる目標値(例えばバッチ要求の終了時刻)を含む。ポリシを含む情報は、例えば、管理者から管理システム112経由で入力され、記憶資源(主記憶デバイス124及び補助記憶デバイス123の少なくとも1つ)に格納されてよい。
出力部135は、モニタ部131からのモニタ結果情報(例えば制御部132を介して受けたモニタ結果情報)の少なくとも一部を表す情報を出力する。また、出力部135(又は制御部132)は、モニタ結果情報の少なくとも一部を基に、バッチ処理の現在の進捗、バッチ処理の今後の進捗、オンライン処理の遅延時間等を算出する。出力部135は、算出された情報を出力する。出力部135は、例えば、情報を管理システム112に出力し、管理システム112により、その情報が表示されてよい。
制御部132(要求制御部151及び分割部152)、モニタ部131、全順序配信部133、入力部134及び出力部135のうちの少なくとも1つは、複数のサーバ計算機111の各々に含まれることに代えて、サーバシステム101に含まれる第三のサーバ計算機(複数のサーバ計算機111以外のサーバ計算機であり複数のサーバ計算機111に接続されたサーバ計算機)のみに含まれてもよい。第三のサーバ計算機の全順序配信部133が、2以上のサーバ計算機111の各々に、決定した順序でオンライン要求のデータ及びバッチ要求の分割されたデータを送信してよい。
図2は、第一サーバ計算機111A及び第二サーバ計算機111Bにおいて行われる処理の概要を示す。以下、混同を避けるため、以下の説明において、第一サーバ計算機111Aの要素には、参照符号の末尾に「A」を付し、第二サーバ計算機111Bの要素には、参照符号の末尾に「B」を付すことがある。なお、第一サーバ計算機111Aと第二サーバ計算機111Bのどちらも、オンライン要求及びバッチ要求を受け付けてもよいが、以下の説明では、第一サーバ計算機111Aが、オンライン要求及びバッチ要求を受け付けるサーバ計算機でよい。第一サーバ計算機111Aに障害が発生した場合に2以上の第二サーバ計算機111Bのうちのいずれかが第一サーバ計算機111Aになってもよい。
第一サーバ計算機111Aにおいて、要求制御部151Aが、複数の処理要求(2以上のオンライン要求及び2以上の分割バッチ要求を含む)の各々を実行しているとする。また、モニタ部131Aが、その複数の処理要求の実行状況を監視しモニタ結果情報を出力しているとする。また、入力部134Aを介してポリシが入力済みであるとする。このような環境において、出力部135Aは、バッチ処理の実行中又はバッチ処理の完了後等に、管理者から表示要求を受け付ける。出力部135A(又は制御部132A)は、表示要求を受けた場合に、モニタ結果情報を基に、その表示要求における指定に従う内容(例えば、バッチ処理の進捗状況、オンライン処理の遅延時間等)を算出し、出力部135Aが、算出された内容を表示する。
さて、第一サーバ計算機111Aにおいて、要求制御部151Aが、新たにオンライン要求を受信したとする。要求制御部151Aは、受信したオンライン要求を全順序配信部133Aに送る。そのオンライン要求は、例えばキューに蓄積される。この段階では、そのオンライン要求は未実行の状態である。
また、第一サーバ計算機111Aにおいて、要求制御部151Aが、新たにバッチ要求を受信したとする。要求制御部151Aは、そのバッチ要求の実行を決定する。例えば、要求制御部151Aは、モニタ部131Aからのモニタ結果情報が、いずれのオンライン要求も実行されていない(いずれのオンライン処理も実行されていない)ことを示す場合に、そのバッチ要求の実行を決定する。要求制御部151Aは、バッチ要求の実行を決定したとき、そのバッチ要求の分割を分割部152Aに依頼する。分割部152Aは、その分割依頼に応答して、分割サイズに従いバッチ要求を基に分割バッチ要求を作成し、作成した分割バッチ要求を要求制御部151Aに送る。要求制御部151Aは、バッチ要求の分割が未だ途中であれば(受けた分割バッチ要求が1つのバッチ要求から作成された最後の分割バッチ要求で無ければ)、分割依頼を分割部152Aに出すことで分割バッチ要求が新たに作成されるようにする。分割サイズは、ポリシ及びモニタ結果情報(具体的には、例えば、分割の依頼を受けたときのポリシ及びモニタ結果情報)のうちの少なくとも一部に基づいて分割部152Aにより決定され、その決定された分割サイズに従って分割バッチ要求が作成されてよい。要求制御部151Aは、分割バッチ要求が得られる都度に分割バッチ要求を全順序配信部133Aに送る。送られた分割バッチ要求は、例えばキューに蓄積される。この段階では、その分割バッチ要求は、未実行の状態である。
第一サーバ計算機111Aにおいて、全順序配信部133Aが、蓄積されている複数の処理要求(2以上のオンライン要求と2以上の分割バッチ要求を含む)の実行順序を決定する。その複数の処理要求の各々は、未実行状態の処理要求である。全順序配信部133Aは、ポリシ(例えばバッチ要求終了時刻等の目標値)及びモニタ結果情報のうちの少なくとも一部を基に、ポリシが守られるような実行順序を決定することができる。全順序配信部133Aは、処理対象の複数の処理要求に関する情報(例えば複数の処理要求それ自体)と決定した実行順序とを含んだ提案を、第二サーバ計算機111Bに送信する。第二サーバ計算機111Bにおいて、全順序配信部133Bが、提案を受信し、提案に合意するか否かを所定の情報に基づいて決定し、決定した回答(合意又は拒絶)を、提案の送信元(第一サーバ計算機111Aにおける全順序配信部133A)に返す。
第一サーバ計算機111Aにおいて、全順序配信部133Aが、一定数以上の第二サーバ計算機111Bから合意を受けた場合、合意された提案通りの処理を実行すること(処理対象の複数の処理要求を決定された実行順序通りに実行すること)を、第一サーバ計算機111A内の制御部132(要求制御部151)と第二サーバ計算機111Bとに指示する。その指示に応答して、第一サーバ計算機111Aでは、要求制御部151Aが、複数の処理要求を決定された実行順序通りに実行する。また、その指示に応答して、第二サーバ計算機111Bでは、全順序配信部133Bが、複数の処理要求を決定された実行順序通りに実行することを要求制御部151Bに指示し、要求制御部151Bが、その複数の処理要求をその実行順序通りに実行する。
これにより、複数のサーバ計算機111(第一サーバ計算機111A及び1以上の第二サーバ計算機111B)において同一順序で同一の複数の処理要求が実行される。結果として、複数のサーバ計算機111においてデータの一貫性が保証される。
図3は、分割サイズ及び実行順序が第一及び第二サーバ計算機111A及111Bの各々において独立している比較例と、分割サイズ及び実行順序が第一及び第二サーバ計算機111A及び111Bにおいて同一であることが保証される本実施形態との比較の概要の一例を示す。図4は、分割サイズが第一及び第二サーバ計算機111A及び111Bの各々において独立している比較例と、分割サイズが第一及び第二サーバ計算機111A及び111Bにおいて同一であることが保証される本実施形態との比較の具体例を示す。図3及び図4から分かるように、第一及び第二サーバ計算機111A及び111Bの各々が独立してバッチ要求を任意の分割サイズに基づき分割したり処理要求の実行順序を決定したりすると、サーバ計算機111A及び111B間でデータの一貫性が崩れる。本実施形態によれば、第一及び第二サーバ計算機111A及び111Bの各々の全順序配信部133A及び113Bにより、同一の複数の処理要求が同一実行順序で実行されることになるので、データの一貫性が保証される。
以上のように、本実施形態では、全順序配信部133が複数のサーバ計算機111の各々に設けられることで、処理要求がシリアルに処理されることになる。このため、オンライン処理とバッチ処理が並列に実行されることが無い。また、2以上の処理要求の処理結果が処理要求の実行順序に依存しない結果であるとしても、複数の処理要求のうちの2以上が並列に実行されることが無い。複数の処理要求はシリアルに(順次に)実行される。このような構成が前提となっているため、後述するように、分割サイズ、及び、分割バッチ要求の実行タイミング、のうちの少なくとも1つが適切であることが望ましい。
以下、第一サーバ計算機111Aを例に取り、本実施形態をより詳細に説明する。
図5は、データストアの構成を示す。
データストア501は、複数のkey-valueの蓄積である。このようなデータストアは、サーバ計算機111の主記憶デバイス124及び補助記憶デバイス123のうちの少なくとも一方に設けられるが(例えば、データストア501の全部又は一部が主記憶デバイス124に設けられ残りが補助記憶デバイス123に設けられるが)、サーバ計算機111がアクセス可能な外部ストレージ装置に設けられてもよい。サーバ計算機111毎にデータストアが存在する。
図6は、分割バッチ要求の構成を示す。
分割バッチ要求は、分割ID601、バッチID602、分割サイズ603及びシーケンス番号604を含む。分割ID601は、分割バッチ要求のIDである。バッチID602は、分割バッチ要求のソースとしてのバッチ要求のIDである。分割サイズ603は、そのバッチ要求の分割の基になった分割サイズである。シーケンス番号604は、この分割バッチ要求の実行順番を表す番号である。
分割バッチ要求が作成されたときは、実行順序が決まっていないのでシーケンス番号604は分割バッチ要求に記述されない(例えばNull)。全順序配信部133により実行順序が決められた場合に、シーケンス番号604(分割バッチ要求の実行順番)が、例えば全順序配信部133(又は制御部132)により分割バッチ要求に記述される。なお、全順序配信部133から要求制御部151へのオンライン要求にも、決定された実行順序に従うシーケンス番号が記述されてよい。
図7は、分割履歴テーブル141の構成を示す。
分割履歴テーブル141は、バッチ要求の分割の履歴に関する情報を有する。分割履歴テーブル141は、例えば分割部152が有してもよい。分割履歴テーブル141は、バッチ要求毎にレコードを有し、各レコードが、バッチID701、バッチ格納先702、分割サイズ703、想定分割数704、平均実行時間705及び平均実行間隔706を記憶する。
バッチID701は、バッチ要求のIDである。バッチ格納先702は、バッチデータの格納先領域の情報(例えばアドレス)である。分割サイズ703は、バッチ要求の分割のための分割サイズである。想定分割数704は、対応するバッチ要求を基に現在の分割サイズ(登録されている分割サイズ703)に従い今後得られると予測される分割バッチ要求の数である。平均実行時間705は、1つの分割バッチ要求に対応した分割バッチ処理(バッチ処理部分)にかかった時間の平均値である。平均実行間隔706は、分割バッチ処理間隔(分割バッチ処理の開始から次の分割バッチ処理の開始までの時間)の平均値である。
なお、バッチID701、バッチ格納先702、分割サイズ703、想定分割数704、平均実行時間705及び平均実行間隔706のうち少なくとも想定分割数704は分割履歴テーブル141に無くてもよい。
図8は、バッチ管理テーブル142の構成を示す。
バッチ管理テーブル142は、バッチ処理に関する情報を有する。バッチ管理テーブル142は、例えば要求制御部151が有してよい。バッチ管理テーブル142は、バッチ要求毎にレコードを有し、各レコードが、バッチID801、バッチ名802、開始時刻803、終了時刻804、位置805、総数806及び分割数807を記憶する。
バッチID801は、バッチ要求のIDである。バッチ名802は、バッチ要求の表示名である。開始時刻803は、バッチ要求の実行開始時刻(最初の分割バッチ要求の実行開始時刻)を表す。終了時刻804は、バッチ要求の実行終了時刻(最後の分割バッチ要求の実行終了時刻)を表す。位置805は、バッチデータを構成するデータ(例えばバッチデータのうちの1つのデータ=1つのkey-value)のうち処理されたデータの数を表す。総数806は、バッチデータを構成するデータの数を表す。分割数807は、バッチ要求を基に得られた分割バッチ要求の数を表す。
以上のような分割履歴テーブル141及びバッチ管理テーブル142のうちの少なくとも1つを基に、処理の効率化が期待できる。
例えば、バッチ要求について一度決定された分割サイズが、分割履歴テーブル141に分割サイズ703として登録される。分割部152は、そのバッチ要求を基に新たに分割バッチ要求を作成する際は、その登録されている分割サイズ703に従い分割バッチ要求を作成する。これにより、分割バッチ要求の作成の都度に、分割サイズ703を決定する(例えばモニタ結果情報を新たに参照する)必要が無い。
具体的には、例えば、分割履歴テーブル141に登録される分割サイズ703は、効果のある期間(効率的にバッチ処理を実行できる時間)において決定された分割サイズである。例えば、効果の無い期間(非効率的にバッチ処理を実行した時間)において決定され分割履歴テーブル141に登録された分割サイズ703は、効果のある期間において決定された分割サイズに更新される。なお、「効果のある期間」とは、オンライン処理への悪影響が無い期間、例えば、平均レイテンシ時間が所定時間未満であり、且つ、オンライン遅延率が所定率未満の期間である。一方、「効果の無い期間」とは、オンライン処理への悪影響がある期間、例えば、平均レイテンシ時間が所定時間以上である、又は、オンライン遅延率が所定率以上である期間である。
或いは、例えば、1つのバッチ要求について一旦決定され分割履歴テーブル141に登録された分割サイズ703は、そのバッチ要求について少なくとも一定期間は変更されない。
また、例えば、バッチ要求についての平均実行時間705を基に、出力部135又は他の処理部(例えば制御部132)により、例えば下記計算式に従い、バッチ予測終了時刻を算出することができる。
残りのバッチ処理時間(例えば秒)=想定分割数704×(平均実行時間705+ 平均実行間隔706)
バッチ予測終了時刻=現在時刻+残りのバッチ処理時間
なお、想定分割数704は、例えば、下記計算式に従い、出力部135又は他の処理部(例えば制御部132)により算出することができる。
想定分割数704=(総数806−位置805)/分割サイズ703
次に、出力部135により表示される画面の例を、図9及び図10を参照して説明する。
図9は、バッチ実行中画面の一例である。
バッチ実行中画面900は、実行中のバッチ要求についての画面であり、実行中のバッチ要求毎の情報を有する。例えば、バッチ実行中画面900は、バッチ要求毎に、バッチ名911、バッチ処理進捗グラフ912、進捗913、開始時刻914、経過時間915及び予測終了時刻916を有する。バッチ名911は、バッチ名802と同じである。バッチ処理進捗グラフ912及び進捗913は、位置805及び総数806に基づき表示される。開始時刻914は、開始時刻803と同じである。経過時間915は、開始時刻803と現在時刻とに基づき表示される。予測終了時刻916は、上記バッチ予測終了時刻の計算式に従い算出された値である。
バッチ実行中画面900の表示の目的は、例えば下記のうちの少なくとも1つである。
(X):バッチ処理キャンセル。管理者が、バッチ処理をキャンセルするか否かを判定できるようにする。
(Y):分割サイズ変更。管理者が、分割サイズ703を変更すべきか否かを判定できるようにする。
(X)(バッチ処理キャンセル)について言えば、例えば次の通りである。管理者又はいずれかの処理部が、現在時刻から予測終了時刻までの時間が所定時間以上に長く進捗が所定率未満であれば、バッチ処理のキャンセル要求を出してよい。キャンセル要求は、キャンセル対象のバッチ要求のバッチIDを含んでよい。キャンセル要求が出た場合、バッチ処理が中断されバッチ実行前の初期状態に戻されることになる。具体的には、例えば下記の通りである。
(1)制御部132(要求制御部151)が、分割バッチ要求に従いデータストア501を更新する場合、更新前のデータストア501と更新後のデータストア501との差分を管理するようになっている。例えば、制御部132は、新たなバッチ要求について最初の分割バッチ要求を実行する場合、更新前のデータストア501のスナップショットを確保しておく。これにより、バッチ処理がキャンセルされた場合、バッチ要求に従う更新対象のデータストア501を、確保されているスナップショットを基に更新前のデータストア501に戻すことができる。
(2)制御部132(要求制御部151)が、キャンセル対象のバッチ要求に対応した分割バッチ要求を記憶資源(例えば主記憶デバイス124)から破棄する。
(3)制御部132(要求制御部151)が、キャンセル要求を、第二サーバ計算機111Bに転送する。転送先の第二サーバ計算機111Bにおいて、制御部132B(例えば要求制御部151B)が、キャンセル対象のバッチ要求に対応した分割バッチ要求を記憶資源(例えば主記憶デバイス124B)から破棄し、且つ、バッチ要求に従う更新対象のデータストア501Bを、確保されているスナップショットを基に更新前のデータストア501Bに戻す。
なお、出力部135は、(A)バッチ処理のキャンセル処理を開始可能な時刻と、(B)バッチ処理のキャンセル処理に対する予測終了時刻とを算出してよい。出力部135は、(A)及び(B)の少なくとも1つを、例えば、(a)データストアを更新前のデータストアに戻すまでにかかる時間と、(b)1つのバッチ要求に対応した総数806と、位置805のうちの少なくとも1つに基づき算出してよい。出力部135は、算出された時刻を、バッチ実行中画面900に表示してよい。これにより、管理者にとって、バッチ処理をキャンセルするか否かを判定し易くなることが期待できる。
また、(Y)(分割サイズ変更)について言えば、例えば次の通りである。管理者が、変更後の分割サイズとバッチIDとを指定した分割サイズ設定要求を出し、制御部132(例えば分割部152)が、その要求を入力部134を介して受信し、その要求で指定されている分割サイズを、その要求が含むバッチIDに対応した分割サイズ703に上書きしてよい。なお、出力部135は、バッチ要求毎に、現在の分割サイズ703をバッチ実行中画面900に表示してよい。管理者は、その分割サイズを参考に、変更後の分割サイズを決定できる。
図10は、バッチ実行結果画面の一例である。
バッチ実行結果画面1000は、1つのバッチ要求についての画面であり、例えばバッチ要求の実行が終了したことを契機に表示される。例えば、バッチ実行結果画面1000は、実行が完了したバッチ要求について、バッチ名1001、開始時刻1002、終了時刻1003、トータル実行時間1004、分割数1005、平均レイテンシ時間1006、オンライン遅延率1007、効果のある期間1008及び効果の無い期間1009を有する。バッチ名1001は、バッチ名802と同じである。開始時刻1002及び終了時刻1003は、開始時刻803及び終了時刻804と同じであり、トータル実行時間1004は、開始時刻803及び終了時刻804との差分である。分割数1005は、分割数807と同じである。平均レイテンシ時間1006、オンライン遅延率1007、効果のある期間1008及び効果の無い期間1009は、モニタ結果情報に基づきそれぞれ表示される。
管理者は、バッチ実行結果画面1000を基に、次回以降のバッチ要求の実行開始タイミング(入力タイミング)を決定することができる。なお、効果のある期間1008及び効果の無い期間1009のうちの少なくとも1つについて、最も効果のある(最も効果の無い)期間だけが表示されてもよいし、効果のある(効果の無い)期間に該当する期間が所定数表示されてもよい。
以下、要求制御部151、分割部152及び全順序配信部133の各々の動作を説明する。
図11は、要求制御部151の動作のフローチャートである。
要求制御部151は、処理要求を特定する(S1101)。S1101について、処理要求は、例えば、受信したオンライン要求、受信したバッチ要求、分割中のバッチ要求、及び、受信した分割バッチ要求のいずれかである。なお、複数種類の処理要求が存在する場合、要求制御部151は、オンライン要求を特定してから一定期間(例えばオンライン処理実行期間又は許容レイテンシ時間)のうちはオンライン要求を特定しないでもよい。
S1101で特定した処理要求の送信元が全順序配信部133であれば(S1102:YES)、要求制御部151は、特定した処理要求を実行する(S1111)。要求制御部151は、バッチ要求が完了したのであれば(S1112:YES)、そのバッチ要求についてバッチ実行結果画面を出力部135により表示させる(S1113)。
S1101で特定した処理要求の送信元が全順序配信部133でなければ(S1102:NO)、要求制御部151は、特定した処理要求がバッチ要求か否かを判定する(S1103)。
S1103の判定結果が否定であれば(S1103:NO)、つまり、特定した処理要求がオンライン要求であれば、要求制御部151は、オンライン要求を全順序配信部133に送る(S1104)。
S1103の判定結果が肯定であれば(S1103:YES)、要求制御部151は、バッチ処理実行可能か否かを判定する(S1105)。S1105の判定は、例えば、モニタ部131からのモニタ結果情報がいずれのオンライン処理も実行されていないことを示すか否か等でよい。S1105の判定結果が否定の場合(S1105:NO)、要求制御部151は、バッチ要求を一時保持して別の処理要求を受けられるよう一旦終了し、一定時間後等の所定のタイミングで、その一時保持したバッチ要求(分割中のバッチ要求)がS1101で特定されてよい。なお、S1105の判定が、モニタ部131からのモニタ結果情報がいずれのオンライン処理も実行されていないことを示すか否かの判定であり、この判定の結果が肯定の場合に、後述のように分割バッチ要求の作成が行われる。このため、サーバ計算機111の負荷が比較的低い場合に分割バッチ要求を作成するようにできる。
S1105の判定結果が肯定の場合(S1105:YES)、要求制御部151は、受信したバッチ要求の分割を分割部152に依頼する。(S1106)、その依頼は、バッチ要求のバッチIDを含んでよい。要求制御部151は、その依頼に応答して、そのバッチ要求を基に作成された分割バッチ要求を受け、その分割バッチ要求を全順序配信部133に送る(S1107)。
要求制御部151は、S1107で送った分割バッチ要求が、S1101で受けたバッチ要求についての最後の分割バッチ要求であれば(S1108:YES)、終了する。
一方、要求制御部151は、S1107で送った分割バッチ要求が、S1101で受けたバッチ要求についての最後の分割バッチ要求でなければ(S1108:NO)、S1105に戻る。S1105の判定結果が肯定の場合、同一のバッチ要求についてS1106及びS1107が行われる。S1105の判定結果が否定の場合(例えば、S1105〜S1108で構成されたループが一定回数繰り返された場合)、要求制御部151は、終了する。この場合、バッチ要求の分割途中であるため、要求制御部151は、バッチ要求を一時保持して、一定時間後等の所定のタイミングで、、その一時保持したバッチ要求(分割中のバッチ要求)がS1101で特定されてよい。どこからバッチ処理(分割バッチ要求の作成)を再開すべきかは、例えばバッチ管理テーブルの位置805などの情報を利用することで判断する。
図12は、分割部152の動作のフローチャートである。
分割部152は、要求制御部151からの分割依頼内のバッチIDと、分割履歴テーブル141とを基に、その分割依頼対象のバッチ要求が初めて分割対象とされたバッチ要求であるか否かを判定する(S1201)。分割依頼内のバッチIDと同一のバッチID701が分割履歴テーブル141に無ければ、分割対象のバッチ要求は、初めて分割対象とされたバッチ要求である(S1201:YES)。この場合、分割部152は、分割依頼内のバッチIDを含んだレコードを分割履歴テーブル141(及びバッチ管理テーブル142)に追加する。
S1201:NO又はS1202の後、分割部152は、モニタ部131からのモニタ結果情報を参照し(S1203)、そのモニタ結果情報(及びポリシ)のうちの少なくとも一部を基に分割サイズを決定する(S1204)。S1204で決定された分割サイズが、分割履歴テーブル141に登録される。分割履歴テーブル141に既に分割サイズ703が登録されている場合、その分割サイズ703は、S1204で決定された分割サイズに変更される。なお、S1203及びS1204に代えて、分割履歴テーブル141に登録されている分割サイズ703が、使用する分割サイズとして決定されてもよい。
分割部152は、決定した分割サイズに従い、分割対象のバッチ要求を基に分割バッチ要求を作成する(S1205)。分割部152は、作成した分割バッチ要求を、要求制御部151へ送る(S1206)。
図13は、全順序配信部133の動作のフローチャートである。
全順序配信部133は、要求制御部151から処理要求(オンライン要求又は分割バッチ要求)を受信する(S1301)。全順序配信部133は、未実行の処理要求の数が所定数以上等の提案作成条件が満たされていない場合(S1302:NO)、終了する。
全順序配信部133は、提案作成条件が満たされている場合(S1302:YES)、提案を作成し、その提案を、第二サーバ計算機111Bに送信する。提案の作成とは、複数の処理要求の実行順序の決定である。ただし、全順序配信部133は、複数の処理要求に限らず一つの処理要求だけで提案を作成してもよい。例えば、全順序配信部133は、定期的に提案を作成するよう構成されていて、提案を作成するタイミングで処理要求が1つだけの場合は、その1つの処理要求についての提案を作成してよい。実行順序は、ポリシ及びモニタ結果情報の少なくとも一部に基づき決定されてよい。
全順序配信部133は、一定数以上の第二サーバ計算機111Bから合意を得らなかった場合(S1304:NO)、S1303に戻る。これにより、別の提案が作成され送信されることになる。
全順序配信部133は、一定数以上の第二サーバ計算機111Bから合意を得られた場合(S1304:YES)、S1303で作成した提案(処理対象の複数の処理要求を決定した実行順序通りに実行すること)を、第一サーバ計算機111A内の要求制御部151A、及び、第二サーバ計算機111Bの全順序配信部133Bに指示する。これにより、第一サーバ計算機111Aでは、要求制御部151Aが、複数の処理要求を決定された実行順序通りに実行する。第二サーバ計算機111Bでは、全順序配信部133Bが、複数の処理要求を決定された実行順序通りに実行することをその第二サーバ計算機111B内の要求制御部151Bに指示し、その要求制御部151Bが、その複数の処理要求をその実行順序通りに実行する。
以上が、要求制御部151、分割部152及び全順序配信部133の各々の動作である。
以下、分割部152による分割サイズ決定の幾つかの観点を説明する。
図14は、分割サイズ決定の第一の観点を示す。
第一の観点によれば、特定オンライン処理間隔が特定オンライン処理所要時間よりも長い。特定オンライン処理間隔及び特定オンライン処理所要時間のうちの少なくとも1つが、例えば分割部152によりモニタ結果情報(又はその蓄積)から算出される。
「特定オンライン処理間隔」は、1以上のオンライン処理間隔に基づいて決定された値、例えば、1以上のオンライン処理間隔の平均値、最大値又は最小値である。本実施形態では、平均値が採用される。「オンライン処理間隔」は、N番目(Nは1以上の整数)のオンライン処理の開始から(N+1)番目のオンライン処理の開始までの時間である。
「特定オンライン処理所要時間」は、1以上のオンライン処理所要時間に基づいて決定された値、例えば、1以上のオンライン処理所要時間の平均値、最大値又は最小値である。本実施形態では、平均値が採用される。「オンライン処理所要時間」は、1つのオンライン処理(1つのオンライン要求の処理)にかかる時間である。
第一の観点によれば、分割サイズは、平均オンライン処理所要時間から平均オンライン処理間隔を引いた値である。
図15は、分割サイズ決定の第二の観点を示す。
第二の観点によれば、平均オンライン処理間隔(特定オンライン処理間隔の一例)が平均オンライン処理所要時間(特定オンライン処理所要時間の一例)以下である。「許容レイテンシ時間」は、平均オンライン処理所要時間の許容値である。許容レイテンシ時間は、例えば入力部134を介して管理者から入力された情報でよい。
第二の観点によれば、分割サイズは、許容レイテンシ時間から平均オンライン処理所要時間を引いた値である。
以上が、分割サイズ決定の幾つかの観点の説明である。いずれの観点においても、適切な分割サイズを決定することができる。いずれの観点においても、決定された分割サイズに従い作成された分割バッチ要求に対応したデータのサイズが、その分割サイズと同じサイズでよい。
なお、いずれの観点も、分割サイズ決定に代えて又は加えて、実行間隔の制御(変更)にも適用できる。「実行間隔」の「実行」は、(実行1)分割部152が分割バッチ要求を作成すること(言い換えれば、要求制御部151が分割依頼を分割部152に出すこと)、及び、
(実行2)全順序配信部133が実行順序を決定すること、のいずれでもよい。従って、「実行間隔の制御」とは、実行1のタイミング(間隔)の制御、及び、実行2のタイミング(間隔)の制御、のうちのいずれでもよい。実行間隔の制御について、例えば以下の具体例(A)〜(E)がある。実行間隔の制御により、オンライン性能の低下を軽減できる。
(A)入力部134経由等で指定された時間間隔(パラメタ)が、実行1の間隔又は実行2の間隔である。
(B)入力部134経由等で指定されたオンライン要求数(パラメタ)と同数のオンライン要求が実行されたタイミングが、実行1又は実行2のタイミングである。
(C)モニタ結果情報を基に特定されたオンライン処理負荷が閾値(許容レイテンシ時間など)未満である間における時点、又は、モニタ結果情報を基に特定されたオンライン遅延率が閾値未満である間における時点が、実行1又は実行2のタイミングである。
(D)モニタ結果情報を基に特定されるバッチ処理進捗状況と、入力部134経由等で指定された目標終了時刻(バッチ処理の目標終了時刻)とに基づいて制御部132又は全順序配信部133により決定された間隔(タイミング)が、実行1又は実行2の間隔である。
(E)バッチ処理が通信ネットワーク171経由のデータ転送を必要とする処理(例えばデータコピー処理)の場合、データ転送にはネットワーク負荷がかかる。このため、モニタ部131がネットワーク帯域使用量を監視する。モニタ結果情報を基に特定されたネットワーク帯域使用量が閾値未満である間における時点が、実行1又は実行2のタイミングである。
以上、一実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実行することが可能である。
例えば、複数のプロセス(例えば仮想計算機)から構成された分散システムが物理計算機において構築されていて、その物理計算機内の記憶資源(例えばメモリ)に、複数のプロセスがそれぞれアクセスする複数のデータストアがあり(例えばいわゆるインメモリ)、プロセス間で複数の処理要求の実行順序が同一とされてよい。
また、例えば、図16に例示する処理が行われてよい。すなわち、入力部134が、管理者からバッチID及びバッチ終了時刻(目標値)の指定を受け(S1601)、制御部132(例えば要求制御部151)が、指定されたバッチIDに対応したバッチ要求のバッチ処理を、入力されたバッチ終了時刻までに完了できるかどうかを判定する(S1602)。例えば、制御部132は、分割履歴テーブル141(例えば平均実行時間705、平均実行間隔706、分割サイズ703等)及びバッチ管理テーブル142(例えば、開始時刻803、位置805、総数806等)を基に、S1602の判定を行う。S1602の判定結果が否定の場合、制御部132又は出力部135が、分割履歴テーブル141(例えば平均実行時間705、平均実行間隔706、分割サイズ703等)及びバッチ管理テーブル142(例えば、開始時刻803、位置805、総数806等)を基に、S1601で指定されたバッチ要求のバッチ予測終了時刻を算出し、出力部135が、そのバッチ予測終了時刻を出力(例えば表示)する。これにより、管理者は、指定したバッチ終了時刻までにバッチ処理が終わらないとの判定結果の場合には、予測されたバッチ終了時刻を知ることができる。
101:サーバシステム(分散システム)

Claims (12)

  1. それぞれ処理要求を実行する複数の計算機を備え、
    前記複数の計算機は、
    前記複数の計算機のうちのいずれかの計算機である第一計算機と、
    前記第一計算機との間でデータの一貫性を保つべき1以上の計算機である1以上の第二計算機と
    を含み、
    前記第一計算機は、
    第一の処理要求より優先順位の低い第二の処理要求の実行を決定したとき、予め定められた分割サイズに従い前記第二の処理要求を基に分割第二処理要求を作成し、
    1以上の第二の処理要求に対応した1以上の分割第二処理要求と1以上の第一の処理要求の実行順序を決定し、
    前記決定した実行順序を含む提案を前記1以上の第二計算機に送信し
    一定数以上の前記第二計算機から前記提案に対する合意を受けた後、前記第一計算機と前記1以上の第二計算機との各々は、
    前記合意を受けた前記提案に含まれる前記実行順序で前記1以上の分割第二処理要求と前記1以上の第一の処理要求を実行する、
    計算機システム。
  2. 前記第一計算機は、データ処理の実行状況を監視するようになっており
    前記第一計算機は、監視結果を示すモニタ結果情報が、いずれの第一の処理要求も実行されていないことを示す場合に、前記第二の処理要求の実行を決定する、
    請求項1に記載の計算機システム。
  3. 前記モニタ結果情報は、第一の処理要求のデータが実行される時間に関する情報である第一処理時間情報を含み、
    前記第一計算機は、前記第一処理時間情報に基づいて、前記分割サイズを変更する、
    請求項2に記載の計算機システム。
  4. 前記モニタ結果情報は、第一の処理要求のデータが実行される時間に関する情報である第一処理時間情報を含み、
    前記第一処理時間情報に基づいて、分割第二処理要求を作成する間隔と実行順序を決定する間隔とのうちの少なくとも一方が変更される、
    請求項2に記載の計算機システム。
  5. 前記第一計算機は、第一の処理要求の実行遅延に関する情報であり前記モニタ結果情報を基に算出された遅延情報を出力する
    請求項3又は4に記載の計算機システム。
  6. 前記モニタ結果情報は、第一の処理要求の実行状況に関する情報である第一処理状況情報を含み、
    前記第一計算機は、
    前記第二の処理要求の終了時刻に関する情報を受け付け、
    前記第一処理状況情報を基に、入力部が受けた終了時刻までに前記第二の処理要求を完了できるかどうかを判定し、
    前記第二の処理要求を前記終了時刻までに完了できないと判定した場合、前記第二の処理要求の予測終了時刻を出力する、
    請求項5に記載の計算機システム。
  7. 前記第一の処理要求は、オンラインで受けた処理要求であり、
    前記第二の処理要求は、バッチで処理することの処理要求である、
    請求項1乃至6のうちのいずれか1項に記載の計算機システム。
  8. 前記2以上の分割第二処理要求は、それぞれ、複数の空き時間において行われ、
    各空き時間は、第一の処理要求についてのデータ処理が行われていない時間である、
    請求項1乃至7のうちのいずれか1項に記載の計算機システム。
  9. 特定第一処理間隔が特定第一処理所要時間よりも長い場合、前記空き時間は、前記特定第一処理間隔と前記特定第一処理所要時間との差分であり、
    前記特定第一処理間隔が前記特定第一処理所要時間以下の場合、前記空き時間は、許容レイテンシ時間と前記特定第一処理所要時間との差分であり、
    前記特定第一処理所要時間は、1以上の第一処理所要時間に基づいて決定された値であり、第一処理所要時間は、前記第一の処理要求の実行にかかる時間であり、
    前記特定第一処理間隔は、1以上の特定第一処理間隔に基づいて決定された値であり、第一処理間隔は、前記第一の処理要求についてのデータ処理の開始から次の第一の処理要求についてのデータ処理の開始までの時間であり、
    前記許容レイテンシ時間は、前記特定第一処理所要時間の許容値であり、
    前記第一計算機は、前記空き時間に基づいて前記分割サイズを決定する、
    請求項に記載の計算機システム。
  10. 分割第二処理要求を作成する間隔と実行順序を決定する間隔とのうちの少なくとも一方が、データ処理の実行状況と指定されたパラメタとのうちの少なくとも1つに基づき変更される、
    請求項1乃至8のうちのいずれか1項に記載の計算機システム。
  11. それぞれ処理要求を実行する複数の計算機のうちのいずれかの計算機である第一計算機が、第一の処理要求より優先順位の低い第二の処理要求の実行を決定したとき、予め定められた分割サイズに従い前記第二の処理要求を基に分割第二処理要求を作成し、
    前記第一計算機が、1以上の第二の処理要求に対応した1以上の分割第二処理要求と1以上の第一の処理要求との実行順序を決定し、
    前記第一計算機が、前記決定した実行順序を含む提案を、前記第一計算機との間でデータの一貫性を保つべき1以上の計算機である1以上の第二計算機に送信し
    一定数以上の前記第二計算機から前記提案に対する合意を受けた後、前記第一計算機と前記1以上の第二計算機との各々が、前記合意を受けた前記提案に含まれる前記実行順序で前記1以上の分割第二処理要求と前記1以上の第一の処理要求を実行する、
    データ処理方法。
  12. 外部の計算機に接続された計算機であって、
    第一の処理要求より優先順位の低い第二の処理要求の実行を決定したとき、予め定められた分割サイズに従い前記第二の処理要求を基に分割第二処理要求を作成する制御部と、
    1以上の第二の処理要求に対応した1以上の分割第二処理要求と1以上の第一の処理要求との実行順序を決定し、前記決定した実行順序を含む提案を、前記計算機との間でデータの一貫性を保つべき前記外部の計算機に送信し、一定数以上の前記外部の計算機から前記提案に対する合意を受けた後、前記制御部と前記外部の計算機に、それぞれ、前記合意を受けた前記提案に含まれる前記実行順序で前記1以上の分割第二処理要求と前記1以上の第一の処理要求を実行させる全順序配信部と
    を備える計算機。
JP2016559707A 2014-11-17 2014-11-17 計算機システム及びデータ処理方法 Active JP6280237B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/080354 WO2016079786A1 (ja) 2014-11-17 2014-11-17 計算機システム及びデータ処理方法

Publications (2)

Publication Number Publication Date
JPWO2016079786A1 JPWO2016079786A1 (ja) 2017-04-27
JP6280237B2 true JP6280237B2 (ja) 2018-02-14

Family

ID=56013402

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016559707A Active JP6280237B2 (ja) 2014-11-17 2014-11-17 計算機システム及びデータ処理方法

Country Status (3)

Country Link
US (1) US10795726B2 (ja)
JP (1) JP6280237B2 (ja)
WO (1) WO2016079786A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7047027B2 (ja) * 2020-07-30 2022-04-04 株式会社日立製作所 計算機システム、構成変更制御装置、および構成変更制御方法
US20220066821A1 (en) * 2020-09-02 2022-03-03 Samsung Electronics Co., Ltd. Systems and method for batching requests in computational devices

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2723068B2 (ja) * 1995-02-20 1998-03-09 日本電気株式会社 ジョブ再実行方式
JP3774075B2 (ja) 1999-01-18 2006-05-10 富士通株式会社 トランザクション分割・連携装置および記録媒体
JP4190476B2 (ja) * 2004-09-22 2008-12-03 株式会社ソニー・コンピュータエンタテインメント グラフィックプロセッサ、制御用プロセッサおよび情報処理装置
US7562035B2 (en) * 2005-01-12 2009-07-14 International Business Machines Corporation Automating responses by grid providers to bid requests indicating criteria for a grid job
JP4580845B2 (ja) * 2005-08-24 2010-11-17 パナソニック株式会社 タスク実行装置
JP2008198153A (ja) * 2007-02-16 2008-08-28 Nomura Research Institute Ltd オンライン処理を継続させながらバッチ処理を行う連続運用システム
US20080320097A1 (en) * 2007-06-22 2008-12-25 Tenoware R&D Limited Network distributed file system
JP5458681B2 (ja) * 2009-06-05 2014-04-02 横河電機株式会社 データ送信装置、データ送信方法
US9563470B2 (en) * 2013-12-23 2017-02-07 International Business Machines Corporation Backfill scheduling for embarrassingly parallel jobs
US9626120B1 (en) * 2015-12-28 2017-04-18 Veritas Technologies Systems and methods for dynamically adjusting batch request sizes

Also Published As

Publication number Publication date
JPWO2016079786A1 (ja) 2017-04-27
US10795726B2 (en) 2020-10-06
WO2016079786A1 (ja) 2016-05-26
US20170068569A1 (en) 2017-03-09

Similar Documents

Publication Publication Date Title
US11593404B2 (en) Multi-cluster warehouse
US10817497B2 (en) Migration flow control
CN109804354B (zh) 用于消息队列的消息高速缓存管理
US20160231928A1 (en) Dynamic Storage Tiering Based on Performance SLAs
US20130263142A1 (en) Control device, control method, computer readable recording medium in which program is recorded, and distributed processing system
JP6233413B2 (ja) タスク割り当て判定装置、制御方法、及びプログラム
US20170010919A1 (en) Dynamic weight accumulation for fair allocation of resources in a scheduler hierarchy
US9514072B1 (en) Management of allocation for alias devices
US8799534B2 (en) Storage apparatus and method for controlling same
US20170220383A1 (en) Workload control in a workload scheduling system
US9135064B2 (en) Fine grained adaptive throttling of background processes
JP6280237B2 (ja) 計算機システム及びデータ処理方法
CN109815204A (zh) 一种基于拥塞感知的元数据请求分发方法及设备
JP2018063672A (ja) メッセージ実行サーバー、制御方法、およびプログラム
US11003360B2 (en) IO request processing according to processing sorting indexes
JP6279816B2 (ja) ストレージ監視システムおよびその監視方法
US20230244522A1 (en) Detached Global Scheduler
JP5472885B2 (ja) プログラム、ストリームデータ処理方法及びストリームデータ処理計算機
KR20150047396A (ko) 분산 파일 시스템 관리 장치, 그것을 포함하는 분산 컴퓨팅 시스템, 및 분산 파일 시스템의 작동 방법
RU2749649C2 (ru) Способ и система для планирования обработки операций ввода/вывода
WO2013065151A1 (ja) 計算機システム、データ転送方法、および、データ転送プログラム
US20190179571A1 (en) Computer, computer system, and data quantity restriction method
WO2013082743A1 (zh) 提高分布式对象存储***的并发性能的方法和装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170802

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171208

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180118

R150 Certificate of patent or registration of utility model

Ref document number: 6280237

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150