JP2009037439A - リクエスト処理装置、リトライ制御方法、及びリクエスト処理装置用プログラム - Google Patents

リクエスト処理装置、リトライ制御方法、及びリクエスト処理装置用プログラム Download PDF

Info

Publication number
JP2009037439A
JP2009037439A JP2007201521A JP2007201521A JP2009037439A JP 2009037439 A JP2009037439 A JP 2009037439A JP 2007201521 A JP2007201521 A JP 2007201521A JP 2007201521 A JP2007201521 A JP 2007201521A JP 2009037439 A JP2009037439 A JP 2009037439A
Authority
JP
Japan
Prior art keywords
request
retry
unit
receiving unit
processing
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.)
Pending
Application number
JP2007201521A
Other languages
English (en)
Inventor
Atsushi Watanabe
淳 渡邉
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.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno 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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2007201521A priority Critical patent/JP2009037439A/ja
Publication of JP2009037439A publication Critical patent/JP2009037439A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 リトライ処理によりリクエスト処理の処理性能が低下するという問題を解決したリクエスト処理装置を提供する。
【解決手段】 リクエスト処理装置100のリクエスト受信部300は、リクエスト送信部200から受信したリクエスト501が処理できない場合、リトライ情報を含むリトライ要求502をリクエスト送信部200に送信する。リクエスト送信部200は、リトライ要求502に含まれるリトライ情報をもとにリクエスト受信部300がリトライを処理可能となるタイミングを求め、リトライのリクエスト501をリクエスト受信部300に送信する。
【選択図】 図1

Description

本発明はリトライ処理を備えたリクエスト処理装置、リトライ制御方法、及びリクエスト処理装置用プログラムに関する。
共有リソースや共有装置へのアクセスにおいて、競合が発生した場合に、アクセス元からのリトライのタイミングを制御する方法として、リトライ間隔に固定時間を設定する方法や、リトライ間隔をランダムに変化させる方法が知られている。例えば、特許文献1に開示された技術においては、複数のスレーブ装置に優先順位が最も高いスレーブ装置の装置番号を通知し、各スレーブ装置が自装置の番号と通知された装置番号をもとにマスタ装置へのアクセス競合が発生した場合のリトライ間隔を決定する。特許文献2に開示された技術においては、プログラムから共有リソースへのアクセス競合が発生し、リトライでもアクセスに成功しない場合は、リトライ間隔を一定の演算により変化させて、リトライを行う。また、特許文献3に開示された技術においては、CPUが共有メモリへのアクセスのリトライを行う場合、リトライ間隔が徐々に長くなるように制御する。
特開平8−65320号公報 特開2001−312413号公報 特開2002−149480号公報
しかしながら、上述したリトライ制御方法においては、リトライ間隔は、リトライ待ちの他のリクエストの数や競合状態の解消時間をもとに決められるものではない。このため、リトライ間隔が長すぎることにより共用リソースに空き時間が発生したり、リトライ間隔が短すぎることによりリトライが繰り返され、リクエスト処理の処理性能が低下するという問題があった。
(本発明の目的)
本発明の目的は、上述した課題である、リトライ処理によりリクエスト処理の処理性能が低下するという問題を解決したリクエスト処理装置、リトライ制御方法、及びリクエスト処理装置用プログラムを提供することである。
本発明のリクエスト処理装置は、リクエスト受信部、及び、リクエスト送信部を含むリクエスト処理装置であって、前記リクエスト送信部から受信したリクエストが処理できない場合、前記リクエストに対してリトライ情報を含むリトライ要求を前記リクエスト送信部に送信する前記リクエスト受信部と、前記リクエスト受信部から受信した前記リトライ要求に含まれる前記リトライ情報をもとに前記リクエスト受信部が前記リクエストのリトライを処理可能となるタイミングを求め、前記リクエストのリトライを前記リクエスト受信部に送信する前記リクエスト送信部とを備えたことを特徴とする。
本発明のリトライ制御方法は、リクエスト受信部が、リクエスト送信部から受信したリクエストが処理できない場合、前記リクエストに対してリトライ情報を含むリトライ要求を前記リクエスト送信部に送信するリトライ要求送信ステップと、前記リクエスト送信部が、前記リクエスト受信部から受信した前記リトライ要求に含まれる前記リトライ情報をもとに前記リクエスト受信部が前記リクエストのリトライを処理可能となるタイミングを求め、前記リクエストのリトライを前記リクエスト受信部に送信するリトライ送信ステップとを含むことを特徴とする。
本発明のリクエスト処理装置用プログラムは、リクエスト受信部、及び、リクエスト送信部を含むリクエスト処理装置を、前記リクエスト送信部から受信したリクエストが処理できない場合、前記リクエストに対してリトライ情報を含むリトライ要求を前記リクエスト送信部に送信する前記リクエスト受信部と、前記リクエスト受信部から受信した前記リトライ要求に含まれる前記リトライ情報をもとに前記リクエスト受信部が前記リクエストのリトライを処理可能となるタイミングを求め、前記リクエストのリトライを前記リクエスト受信部に送信する前記リクエスト送信部として機能させることを特徴とする。
本発明の効果は、リクエスト処理装置においてリトライが発生した場合に、リトライを効率的に行うことができることである。
(第一の実施の形態)
次に、本発明の第一の実施の形態について図面を参照して詳細に説明する。図1に本発明の第一の実施の形態におけるリクエスト処理装置100の構成を示す。図1を参照すると、本発明の第一の実施の形態におけるリクエスト処理装置100は、リクエスト送信部200(200a、200b)とリクエスト受信部300より構成される。リクエスト処理装置100は、プログラムによって動作する情報処理装置であってもよい。
ここで、リクエスト送信部200は、リクエスト受信部300に対し、コマンドや命令等のリクエスト501を送信する。また、リクエスト送信部200は、送信したリクエスト501に対して、リクエスト受信部300からリトライ要求502を受信した場合、リトライ要求502に含まれるリトライ情報551をもとに待ち時間を求める。リクエスト送信部200は、求めた待ち時間経過後、リクエスト501のリトライ(再送)を行う。
リクエスト受信部300は、リクエスト送信部200からリクエスト501を受信し、リクエスト501の処理を行う。また、リクエスト受信部300は、リクエスト501の処理ができない場合、リクエスト送信部200に対して、リトライ情報551を含むリトライ要求502を送信する。
次に本発明の第一の実施の形態の動作について図面を参照して詳細に説明する。
図2は、第一の実施の形態の動作を示すフローチャートである。また、図3及び図4は、第一の実施の形態における動作の例を示すタイムチャートである。ここでは、2つのリクエスト送信部200a、200bが、それぞれタイミング2、3(以降、T2、T3と記載する)において、リクエスト受信部300にリクエスト501(RQ1、RQ2)を送信する場合を例に説明する。リクエスト受信部300は、T2、T3において、他のリクエスト501を処理中であるものとする。また、リクエスト受信部300が各リクエスト501を処理するために必要なリクエスト処理時間を4時刻(以降、4Tと記載する)とし、リクエスト送信部200a、200bには、当該リクエスト処理時間が予め設定されているものとする。
はじめに、リクエスト送信部200は、リクエスト受信部300にリトライでない新規のリクエスト501を送信する(ステップA101)。ここで、リクエスト送信部200aは、リクエスト501に、リトライ情報551を付加する。リトライ情報551は、リクエスト501がリトライかどうか示すリトライフラグ552、整理番号553、及び実行番号554より構成される。
リトライフラグ552は、1がリトライ、0がリトライではない通常のリクエスト501であることを示す。
リトライフラグ552が0(リトライでない)の場合、整理番号553と実行番号554は無効とする(ここでは、1を設定しておくものとする)。
リトライフラグ552が1(リトライ)の場合、整理番号553と実行番号554には、リクエスト受信部300がリトライ要求502にて指定した整理番号553と実行番号554が設定される。
整理番号553と実行番号554は、リクエスト受信部300により生成、保持されている。整理番号553は、リトライ対象となったリクエスト501のリトライの処理順番を示す。実行番号554は、次に実行されるリトライの整理番号553を示す。リクエスト受信部300は、リトライ要求502を送信する際に、保持している整理番号553と実行番号554をリトライ要求502のリトライ情報551に設定してリクエスト送信部200に送信する。リクエスト送信部200は、リトライのリクエスト501を送信する際に、リトライ要求502で受信した整理番号553と実行番号554をリトライのリクエスト501のリトライ情報551に設定してリクエスト送信部200に送信する。
図3、図4のタイムチャートにおいては、リクエスト501、リトライ要求502の括弧により囲まれた3つの数字がリトライ情報551(左から、リトライフラグ552、整理番号553、及び実行番号554)を示す。例えば、リクエスト送信部200aは、T2において、リクエスト501(RQ1(0,1,1))をリクエスト受信部300に送信する。同様に、リクエスト送信部200bは、T3において、リクエスト501(RQ2(0,1,1))をリクエスト受信部300に送信する。
リクエスト受信部300は、リクエスト送信部200からリクエスト501を受信する(ステップB101)。リクエスト受信部300は、リクエスト501を処理するか、リトライ要求502を送信するかを判定する。リクエスト受信部300は、受信したリクエスト501がリトライでない場合は(リトライフラグ552=0)、「他のリクエストを処理中でない」かつ「未処理のリトライ(リクエスト送信部200にリトライ要求502を送信したリトライのうち、リクエスト送信部200よりリトライのリクエスト501を受信していないもの)がない(リクエスト受信部300が保持する整理番号553と実行番号554が同一である)」という条件を満たすとき、リクエスト501を処理する(ステップB102、B103)。この条件を満たさない(リクエスト501を処理できない)ときは、リクエスト受信部300は、リトライ要求502を送信する。ここで、リクエスト501を処理する条件として、「未処理のリトライがない」ことが含まれている理由は、リクエスト501の処理順番を保証するためである。
例えば、リクエスト受信部300は、T2において、リクエスト送信部200aからリクエスト501(RQ1)を受信する。リクエスト受信部300は、「他のリクエストを処理中である」ため、リトライ要求502の送信と判定する。同様に、リクエスト受信部300は、T3において受信したリクエスト501(RQ2)についても、リトライ要求502の送信と判定する。
リクエスト受信部300は、リトライ要求502をリクエスト送信部200に送信する(ステップB104)。ここで、リクエスト受信部300は、リトライ要求502に、リトライ情報551を付加する。リクエスト受信部300は、リトライ情報551のリトライフラグ552に1(リトライ)を、整理番号553と実行番号554に保持している値を設定する。リクエスト受信部300は、リトライ要求502を送信するごとに、整理番号553に1を加算する(ステップB105)。なお、整理番号553と実行番号554の初期値は1であるものとする。
例えば、リクエスト受信部300は、T3において、リトライ要求502(RQ1(1,1,1))をリクエスト送信部200aに送信する。リクエスト受信部300は、リトライ要求502(RQ1)を送信すると、保持している整理番号553に1を加算して2とする。同様に、リクエスト受信部300は、T4において、リトライ要求502(RQ2(1,2,1))をリクエスト送信部200bに送信する。リクエスト受信部300は、リトライ要求502(RQ2)を送信すると、整理番号553に1を加算して3とする。
リクエスト送信部200は、リクエスト受信部300からリトライ要求502を受信する(ステップA102)。リクエスト送信部200は、リトライ要求502のリトライ情報551に含まれる整理番号553と実行番号554から待ち時間を求める(ステップA103)。待ち時間は、整理番号553、実行番号554から、当該リトライの処理される順番(=整理番号553−実行番号554+1)を求め、求めた順番とリクエスト処理時間を乗じることにより求められる。
例えば、リクエスト送信部200aは、T3において、リトライ要求502(RQ1(1,1,1))を受信する。リトライ要求502(RQ1)のリトライ情報551は、整理番号553=1、実行番号554=1であるため、このリトライはリクエスト受信部300において1番目に処理を行うリトライとなる。したがって、処理される順番(1)と、リクエスト処理時間(4T)を乗じて、待ち時間を4Tとする。また、リクエスト送信部200bは、T4において、リトライ要求502(RQ2(1,2,1))を受信する。リトライ要求502(RQ2)のリトライ情報551は、整理番号553=2、実行番号554=1であるため、このリトライはリクエスト受信部300において2番目に処理を行うリトライとなる。したがって、処理される順番(2)と、リクエスト処理時間(4T)を乗じて、待ち時間を8Tとする。
リクエスト送信部200は、1Tごとに待ち時間をカウント(減算)し(ステップA104)、0となるタイミングで、リトライのリクエスト501をリクエスト受信部300に送信する(ステップA105、A106)。ここで、リクエスト受信部300は、リクエスト501のリトライ情報551に、リトライフラグ552=1(リトライ)とリトライ要求502にて指定された整理番号553、実行番号554を付加する。
例えば、リクエスト送信部200aは、T8において、リクエスト501(RQ1(1,1,1))をリクエスト受信部300に送信する。また、リクエスト送信部200bは、T13において、リクエスト501(RQ2(1,2,1))をリクエスト受信部300に送信する。
リクエスト受信部300は、リクエスト送信部200からリトライのリクエスト501を受信する(ステップB101)。リクエスト受信部300は、リクエスト501を処理するか、リトライ要求502を送信するかを判定する。リクエスト受信部300は、受信したリクエスト501がリトライの場合は(リトライフラグ552=1)、「他のリクエストを処理中でない」かつ「受信したリトライが次に実行するリトライである(リクエスト501のリトライ情報551に含まれる整理番号553と、リクエスト受信部300が保持する実行番号554が一致)」という条件を満たすとき、当該リトライのリクエスト501を処理する(ステップB102、B106、B107)。ここで、リトライのリクエスト501を処理する条件として、「要求されたリトライが次に実行するリトライである」が含まれている理由は、リトライの処理順番を保証するためである。リクエスト受信部300は、リトライのリクエスト501の処理を開始すると、実行番号554に1を加算する(ステップB108)。
例えば、リクエスト受信部300は、T8において、リクエスト送信部200aからリクエスト501(RQ1(1,1,1))を受信する。T8においては、最初にリクエスト501(RQ1)を受信したT2の時点で処理中であった、他のリクエスト501は終了している。T8においては、「他のリクエストを処理中でない」かつ「要求されたリトライが次に実行するリトライである(リクエスト501のリトライ情報551に含まれる整理番号553(=1)と、リクエスト受信部300が保持する実行番号554(=1)が一致)」であるため、リクエスト受信部300は、T9から、リクエスト501(RQ1)の処理を開始する。リクエスト受信部300は、リクエスト501(RQ1)の処理を開始すると、実行番号554に1を加算して2とする。同様に、リクエスト受信部300は、T13において、リクエスト送信部200bからリクエスト501(RQ2(1,2,1))を受信する。T13においては、最初にリクエスト501(RQ2(0,1,1))を受信したT3の時点で処理中であった、他のリクエスト501、及び、リクエスト501(RQ1)は終了している。T13においても、「他のリクエストを処理中でない」かつ「要求されたリトライが次に実行するリトライである(リクエスト501のリトライ情報551に含まれる整理番号553(=2)と、リクエスト受信部300が保持する実行番号554(=2)が一致)」であるため、リクエスト受信部300は、T14から、リクエスト501(RQ2)の処理を開始する。リクエスト受信部300は、リクエスト501(RQ2)の処理を開始すると、実行番号554に1を加算して3とする。
なお、ステップB106において、リトライのリクエスト501を処理する条件が満たされない場合、リクエスト受信部300は、リクエスト送信部200にエラー応答や、再度、同じリトライ要求502を送信する等のエラー処理をするようにしてもよい(ステップB109)。
また、リクエスト501とリトライ要求502に関して、リクエスト受信部300は、リトライ要求502を送信する際、受信したリクエスト501のリトライ情報551のみを上述の手順で設定したものをリトライ要求502としてリクエスト送信部200に送信し、リクエスト送信部200は、当該リトライ要求502をそのまま保持し、リトライ時にリトライのリクエスト501として、そのままリクエスト受信部300に送信するようにしてもよい。
また、リクエスト送信部200における待ち時間の算出は、リトライ情報551に含まれる整理番号553、実行番号554とリクエスト送信部200に設定されたリクエスト処理時間を用いて行っているが、リクエスト受信部300がリトライのリクエスト501を処理可能となるタイミングを求めることができれば、どのような情報を用いてもよい。例えば、リクエスト受信部300が、リトライ要求502を送信する時点からの当該リトライの処理順番を求め、整理番号553、実行番号554の代わりにリトライ情報551としてリクエスト送信部200に送信するようにし、リクエスト送信部200は、当該処理順番とリクエスト処理時間を用いて待ち時間を算出してもよい。 なお、リクエスト送信部200、リクエスト受信部300の各処理のタイミング、リクエスト送信部200とリクエスト受信部300間のリクエスト501、リトライ要求502の送受信のタイミングについては、図3、図4のタイミングで動作するものとして説明したが、各処理間や、リクエスト501、リトライ要求502の送受信に、さらに遅延がある場合、当該遅延時間を待ち時間から適宜減ずることにより、同様のタイミングでリトライが実行できることは言うまでもない。
以上により、本発明の第一の実施の形態の動作が完了する。
本発明の第一の実施の形態によれば、リクエスト処理装置においてリトライが発生した場合に、リトライを効率的に行うことができる。その理由は、リクエスト送信部200が、リトライ要求502のリトライ情報551をもとに、リクエスト受信部300がリクエスト501を処理可能となるタイミングを求め、リトライのリクエスト501をリクエスト受信部300に送信するためである。
(第二の実施の形態)
次に、本発明の第二の実施の形態について図面を参照して詳細に説明する。図5に本発明の第二の実施の形態におけるリクエスト処理装置100の構成を示す。本発明の第二の実施の形態において、第一の実施の形態(図1)と同一の符号を有する構成要素は、特に説明のない限り、第一の構成要素と同一であるものとする。図5を参照すると、本発明の第二の実施の形態におけるリクエスト処理装置100は、リクエスト送信部200(200a、200b、200c)とリクエスト受信部300より構成される。
リクエスト送信部200は、リクエスト生成部210、リトライ待ち制御部220、及びリクエスト送信制御部260より構成される。リクエスト生成部210は、リクエスト受信部300に対するリクエスト501を生成する。リトライ待ち制御部220は、リクエスト受信部300から受信したリトライ要求502を処理する。リクエスト送信制御部260は、リクエスト生成部210からのリトライでない新規のリクエスト501とリトライ待ち制御部220からのリトライのリクエスト501を選出し、リクエスト受信部300へリクエスト501を送信する。
リトライ待ち制御部220は、リトライ格納部250、待ち時間算出部230、及び待ち時間カウント部240から構成される。リトライ格納部250は、リクエスト受信部300からのリトライ要求502に対し、リトライのリクエスト501を格納する。待ち時間算出部230は、リトライ要求502のリトライ情報551をもとに、リトライを行うまでの待ち時間を算出する。待ち時間カウント部240は、待ち時間算出部230で求めた時間をカウントし、リトライ格納部250からリトライのリクエスト501を送出するタイミングを制御する。
リクエスト受信部300は、リクエスト受信制御部320、リクエスト処理部360、及びリトライ要求発行部310より構成される。
リクエスト受信制御部320は、リクエスト送信部200から受信したリクエスト501を処理するか、リクエスト送信部200にリトライ要求502を送信するかを判定する。リクエスト処理部360は、リクエスト受信制御部320からのリクエスト501の処理を行う。また、リクエスト処理部360は、リクエスト501の処理中は、リトライ指示信号361により、リクエスト501の処理中であることをリクエスト受信制御部320に通知する。リトライ要求発行部310は、リトライ要求502を生成し、リクエスト送信部200へ送信する。
リクエスト受信制御部320は、リクエスト選出部350、整理番号生成部330、及び実行番号生成部340より構成される。リクエスト選出部350は、リクエスト処理部360からのリトライ指示信号361をもとに、リクエスト501を処理するか、リトライ要求502を送信するかを判定する。リクエスト選出部350は、リクエスト501を処理すると判断した場合、リクエスト501をリクエスト処理部360に送る。また、リクエスト選出部350は、リトライ要求502を送信すると判断した場合、リトライ要求リクエスト信号351により、リトライ要求502の生成をリトライ要求発行部310に指示する。整理番号生成部330は整理番号553を保持し、整理番号信号331によりリトライ要求発行部310に通知する。実行番号生成部340は実行番号554を保持し、実行番号信号341によりリトライ要求発行部310に通知する。
次に本発明の第二の実施の形態の動作について図面を参照して詳細に説明する。
第二の実施の形態の動作を示すフローチャートについては、第一の実施の形態の動作を示すフローチャート(図2)と同一となる。図6、図7、及び図8は、第二の実施の形態における動作の例を示すタイムチャートである。ここでは、リクエスト送信部200aから2つのリクエスト501、リクエスト送信部200b、及びリクエスト送信部200cからそれぞれ1つのリクエスト501を発行し、4つのリクエスト501全てがリトライとなる動作について説明する。また、第一の実施の形態と同様に、リクエスト受信部300が各リクエスト501を処理するために必要なリクエスト処理時間を4Tとし、リクエスト送信部200a、200b、及び200cには、当該リクエスト処理時間が予め設定されているものとする。また、整理番号生成部330は、整理番号553の初期値として1を、実行番号生成部340も、実行番号554の初期値として1を保持しているものとする。
リクエスト送信部200のリクエスト送信制御部260は、リクエスト生成部210にて生成された、リトライでない新規のリクエスト501をリクエスト受信部300に送信する(ステップA101)。
例えば、リクエスト送信部200aのリクエスト送信制御部260aは、T2において、リクエスト501(RQ1−1(0,1,1))を、T3において、リクエスト501(RQ1−2(0,1,1))をリクエスト受信部300に送信する。また、リクエスト送信部200bのリクエスト送信制御部260bは、T4においてリクエスト501(RQ2−1(0,1,1))をリクエスト受信部300に送信する。リクエスト送信部200cのリクエスト送信制御部260cは、T7において、リクエスト501(RQ3−1(0,1,1))をリクエスト受信部300に送信する。
リクエスト受信部300のリクエスト選出部350は、リクエスト送信部200からリクエスト501を受信する(ステップB101)。リクエスト受信部300は、リクエスト501を処理するか、リトライ要求502を送信するかを判定する。リクエスト選出部350は、受信したリクエスト501がリトライでない場合は(リトライフラグ552=0)、「他のリクエストを処理中でない(リトライ指示信号361=0)」かつ「未処理のリトライ(リクエスト送信部200にリトライ要求502を送信したリトライのうち、リクエスト送信部200よりリトライのリクエスト501を受信していないもの)がない(整理番号生成部330が保持する整理番号553と実行番号生成部340が保持する実行番号554が同一である)」という条件を満たすとき、リクエスト501をリクエスト処理部360へ送る(ステップB102、B103)。この条件を満たさない(リクエスト501を処理できない)ときは、リクエスト選出部350は、リトライ要求リクエスト信号351により、リトライ要求502の生成をリトライ要求発行部310に指示する。
例えば、リクエスト選出部350は、T2において、リクエスト501(RQ1−1(0,1,1))を受信する。リクエスト選出部350は、「他のリクエストを処理中(リトライ指示信号361=1)」であるため、リトライ要求リクエスト信号351により、リトライ要求502の生成を指示する。同様に、リクエスト選出部350は、T3、及びT4において受信したリクエスト501(RQ1−2(0,1,1))、及びリクエスト501(RQ2−1(0,1,1))についても、リトライ要求502の生成を指示する。また、リクエスト選出部350は、T7において受信した(RQ3−1(0,1,1))については、「他のリクエストを処理中ではない(リトライ指示信号361=0)」が、「未処理のリトライがある(整理番号生成部330が保持する整理番号553(=4)と実行番号生成部340が保持する実行番号554(=1)が同一でない)」ため、リトライ要求502の生成を指示する。
リトライ要求発行部310は、リトライ要求リクエスト信号351によるリトライ要求502の生成指示を受信すると、リトライ要求502を生成し、リクエスト送信部200に送信する(ステップB104)。ここで、リトライ要求発行部310は、リトライ要求502に、リトライ情報551を付加する。リトライ要求発行部310は、リトライ情報551に、リトライフラグ552=1(リトライ)、整理番号生成部330から取得した整理番号553、実行番号生成部340から取得した実行番号554を設定する。
例えば、リトライ要求発行部310は、T3において、リトライ要求502(RQ1−1(1,1,1))を、T4において、リトライ要求502(RQ1−2(1,2,1))をリクエスト送信部200aに送信する。同様に、リトライ要求発行部310は、T5において、リトライ要求502(RQ2−1(1,3,1))を、リクエスト送信部200bに送信する。また、リトライ要求発行部310は、T8において、リトライ要求502(RQ3−1(1,4,1))を、リクエスト送信部200cに送信する。
整理番号生成部330は、リトライ要求502が送信されると、保持している整理番号553に1を加算する(ステップB105)。
例えば、整理番号生成部330は、T3において、保持している整理番号553(=1)に1を加算し、2とする。同様に、整理番号生成部330は、T4、T5、及びT8において、整理番号553に1を加算し、それぞれ、3、4、5とする。
リクエスト送信部200のリトライ待ち制御部220は、リトライ要求502を受信し、リトライ格納部250に格納する(ステップA102)。待ち時間算出部230は、リトライ要求502のリトライ情報551に含まれる整理番号553と実行番号554から待ち時間を求める(ステップA103)。
例えば、リクエスト送信部200aは、T3において、リトライ要求502(RQ1−1(1,1,1))を受信し、待ち時間算出部230aは、整理番号553=1、実行番号554=1であることから、待ち時間を4Tとする。また、リクエスト送信部200aは、T4において、リトライ要求502(RQ1−2(1,2,1))を受信し、待ち時間算出部230aは、待ち時間を8Tとする。リクエスト送信部200bは、T5において、リトライ要求502(RQ2−1(1,3,1))を受信し、待ち時間算出部230bは、待ち時間を12Tとする。リクエスト送信部200cは、T8において、リトライ要求502(RQ3−1(1,4,1))を受信し、待ち時間算出部230cは、待ち時間を16Tとする。
待ち時間カウント部240は、待ち時間算出部230において求めた待ち時間を、リトライ格納部250に格納されたリトライごとに、1Tごとにカウント(減算)する(ステップA104)。待ち時間カウント部240は、待ち時間のカウンタが0となるタイミングで、リトライ格納部250に格納された当該リトライのリクエスト501をリクエスト送信制御部260に送る(ステップA105)。ここで、当該リトライのリクエスト501におけるリトライ情報551には、リトライフラグ552=1(リトライ)とリトライ要求502にて指定された整理番号553、実行番号554が付加される。リクエスト送信制御部260は、リトライのリクエスト501をリクエスト受信部300に送信する(ステップA106)。
例えば、リクエスト送信部200aのリクエスト送信制御部260aは、T8において、リクエスト501(RQ1−1(1,1,1))を、T13において、リクエスト501(RQ1−2(1,2,1))を、リクエスト受信部300に送信する。また、リクエスト送信部200bのリクエスト送信制御部260bは、T18において、リクエスト501(RQ2−1(1,3,1))をリクエスト受信部300に送信する。リクエスト送信部200cのリクエスト送信制御部260cは、T25において、リクエスト501(RQ3−1(1,4,1))をリクエスト受信部300に送信する。
リクエスト受信部300のリクエスト選出部350は、リクエスト送信部200からリクエスト501を受信する(ステップB101)。リクエスト受信部300は、リクエスト501を処理するか、リトライ要求502を送信するかを判定する。リクエスト選出部350は、受信したリクエスト501がリトライの場合は(リトライフラグ552=1)、「他のリクエストを処理中でない(リトライ指示信号361=0)」かつ「受信したリトライが次に実行するリトライである(リクエスト501のリトライ情報551に含まれる整理番号553と、実行番号生成部340が保持する実行番号554が一致)」という条件を満たすとき、リクエスト501をリクエスト処理部360へ送る(ステップB102、B106)。リクエスト処理部360は、リクエスト選出部350から受信したリトライのリクエスト501の処理を開始する(ステップB107)。実行番号生成部340は、リトライのリクエスト501の処理を開始すると、保持している実行番号554に1を加算する(ステップB108)。
例えば、リクエスト選出部350は、T8において、リクエスト送信部200aからリクエスト501(RQ1−1(1,1,1))を受信する。T8においては、最初にリクエスト501(RQ1−1)を受信したT2の時点で処理中であった、他のリクエスト501は終了している。T8においては、「他のリクエストを処理中でない(リトライ指示信号361=0)」かつ「要求されたリトライが次に実行するリトライである(リクエスト501のリトライ情報551に含まれる整理番号553(=1)と、実行番号生成部340が保持する実行番号554(=1)が一致)」であるため、リクエスト選出部350は、リクエスト501(RQ1−1)をリクエスト処理部360へ送る。リクエスト処理部360は、T9から、リクエスト501(RQ1−1)の処理を開始する。実行番号生成部340は、保持している実行番号554に1を加算し、2とする。
同様に、リクエスト選出部350は、T13において、リクエスト送信部200aからリクエスト501(RQ1−2(1,2,1))を受信する。T13においては、最初にリクエスト501(RQ1−2(0,1,1))を受信したT3の時点で処理中であった他のリクエスト501、及び、リクエスト501(RQ1−1)は終了している。T13においては、「他のリクエストを処理中でない(リトライ指示信号361=0)」かつ「要求されたリトライが次に実行するリトライである(リクエスト501のリトライ情報551に含まれる整理番号553(=2)と、実行番号生成部340が保持する実行番号554(=2)が一致)」であるため、リクエスト選出部350は、リクエスト501(RQ1−2)をリクエスト処理部360へ送る。リクエスト処理部360は、T14から、リクエスト501(RQ1−2)の処理を開始する。実行番号生成部340は、保持している実行番号554に1を加算し、3とする。
さらに、リクエスト選出部350は、T18において、リクエスト送信部200bからリクエスト501(RQ2−1(1,3,1))を受信し、リクエスト501(RQ2−1)をリクエスト処理部360へ送る。リクエスト処理部360は、T19から、リクエスト501(RQ2−1)の処理を開始する。実行番号生成部340は、保持している実行番号554に1を加算し、4とする。また、リクエスト選出部350は、T25において、リクエスト送信部200cからリクエスト501(RQ3−1(1,4,1))を受信し、リクエスト501(RQ3−1)をリクエスト処理部360へ送る。リクエスト処理部360は、T26から、リクエスト501(RQ3−1)の処理を開始する。実行番号生成部340は、保持している実行番号554に1を加算し、5とする。
以上により、本発明の第二の実施の形態の動作が完了する。
本発明の第二の実施の形態によれば、リクエスト処理装置においてリトライが発生した場合に、リトライを効率的に行うことができる。その理由は、第一の実施の形態と同様に、リクエスト送信部200が、リトライ要求502のリトライ情報551をもとに、リクエスト受信部300がリクエスト501を処理可能となるタイミングを求め、リトライのリクエスト501を送信するためである。
本発明の第一の実施の形態の構成を示す図である。 本発明の第一の実施の形態の動作を示すフローチャートである。 本発明の第一の実施の形態の動作を示すタイミングチャートである。 本発明の第一の実施の形態の動作を示すタイミングチャート(図3のつづき)である。 本発明の第二の実施の形態の構成を示す図である。 本発明の第二の実施の形態の動作を示すタイミングチャートである。 本発明の第二の実施の形態の動作を示すタイミングチャート(図6のつづき)である。 本発明の第二の実施の形態の動作を示すタイミングチャート(図7のつづき)である。
符号の説明
100 リクエスト処理装置
200 リクエスト送信部
210 リクエスト生成部
220 リトライ待ち制御部
230 待ち時間算出部
240 待ち時間カウント部
250 リトライ格納部
260 リクエスト送信制御部
300 リクエスト受信部
310 リトライ要求発行部
320 リクエスト受信制御部
330 整理番号生成部
331 整理番号信号
340 実行番号生成部
341 実行番号信号
350 リクエスト選出部
351 リトライ要求リクエスト信号
361 リトライ指示信号
360 リクエスト処理部
501 リクエスト
502 リトライ要求
551 リトライ情報
552 リトライフラグ
553 整理番号
554 実行番号

Claims (15)

  1. リクエスト受信部、及び、リクエスト送信部を含むリクエスト処理装置であって、
    前記リクエスト送信部から受信したリクエストが処理できない場合、前記リクエストに対してリトライ情報を含むリトライ要求を前記リクエスト送信部に送信する前記リクエスト受信部と、
    前記リクエスト受信部から受信した前記リトライ要求に含まれる前記リトライ情報をもとに前記リクエスト受信部が前記リクエストのリトライを処理可能となるタイミングを求め、前記リクエストのリトライを前記リクエスト受信部に送信する前記リクエスト送信部と
    を備えたことを特徴とするリクエスト処理装置。
  2. 前記リトライ情報には、前記リクエスト受信部における前記リトライ要求を送信する時点からのリトライの処理順番を求めるための情報を含み、前記リクエスト送信部は、前記リクエストのリトライの処理順番を求めるための情報とリクエストの処理時間をもとに、前記リクエスト受信部が前記リクエストのリトライの処理可能となるタイミングを求めることを特徴とする請求項1に記載のリクエスト処理装置。
  3. 前記リクエストのリトライの処理順番を求めるための情報は、前記リクエストのリトライの前記リクエスト受信部における処理順番を示す整理番号と、前記リクエスト受信部が前記リトライ要求を送信する時点において次に実行するリトライの前記整理番号を示す実行番号であり、前記リクエスト送信部は、前記整理番号、前記実行番号、及び前記リクエストの処理時間をもとに前記リクエスト受信部が前記リクエストを処理可能となるタイミングを求めることを特徴とする請求項2に記載のリクエスト処理装置。
  4. 前記リクエストのリトライには、前記整理番号を含み、前記リクエスト受信部は、前記リクエスト受信部が前記リクエストのリトライを受信した時点において、前記リクエストのリトライに含まれる前記整理番号が次に実行するリトライの前記整理番号である場合に、前記リクエストを処理することを特徴とする請求項3に記載のリクエスト処理装置。
  5. 前記リクエスト受信部は、前記リクエスト送信部からリトライでないリクエストを受信した時点において、未処理の前記リクエストのリトライがない場合、前記リトライでないリクエストを処理し、未処理の前記リクエストのリトライがある場合、前記リトライでないリクエストに対して前記リトライ要求を前記リクエスト送信部に送信することを特徴とする請求項1から4のいずれかに記載のリクエスト処理装置。
  6. リクエスト受信部が、
    リクエスト送信部から受信したリクエストが処理できない場合、前記リクエストに対してリトライ情報を含むリトライ要求を前記リクエスト送信部に送信するリトライ要求送信ステップと、
    前記リクエスト送信部が、
    前記リクエスト受信部から受信した前記リトライ要求に含まれる前記リトライ情報をもとに前記リクエスト受信部が前記リクエストのリトライを処理可能となるタイミングを求め、前記リクエストのリトライを前記リクエスト受信部に送信するリトライ送信ステップと
    を含むことを特徴とするリトライ制御方法。
  7. 前記リトライ情報には、前記リクエスト受信部における前記リトライ要求を送信する時点からのリトライの処理順番を求めるための情報を含み、前記リトライ送信ステップは、前記リクエストのリトライの処理順番を求めるための情報とリクエストの処理時間をもとに、前記リクエスト受信部が前記リクエストのリトライの処理可能となるタイミングを求めることを特徴とする請求項6に記載のリトライ制御方法。
  8. 前記リクエストのリトライの処理順番を求めるための情報は、前記リクエストのリトライの前記リクエスト受信部における処理順番を示す整理番号と、前記リクエスト受信部が前記リトライ要求を送信する時点において次に実行するリトライの前記整理番号を示す実行番号であり、前記リトライ送信ステップは、前記整理番号、前記実行番号、及び前記リクエストの処理時間をもとに前記リクエスト受信部が前記リクエストを処理可能となるタイミングを求めることを特徴とする請求項7に記載のリトライ制御方法。
  9. 前記リクエストのリトライには、前記整理番号を含み、
    前記リクエスト受信部が、さらに、前記リクエスト受信部が前記リクエストのリトライを受信した時点において、前記リクエストのリトライに含まれる前記整理番号が次に実行するリトライの前記整理番号である場合に、前記リクエストを処理するリトライ処理ステップを含むことを特徴とする請求項8に記載のリトライ制御方法。
  10. 前記リクエスト受信部が、さらに、前記リクエスト送信部からリトライでないリクエストを受信した時点において、未処理の前記リクエストのリトライがない場合、前記リトライでないリクエストを処理し、未処理の前記リクエストのリトライがある場合、前記リトライでないリクエストに対して前記リトライ要求送信ステップによる前記リトライ要求の送信を行うリクエスト処理ステップを含むことを特徴とする請求項6から9のいずれかに記載のリトライ制御方法。
  11. リクエスト受信部、及び、リクエスト送信部を含むリクエスト処理装置を
    前記リクエスト送信部から受信したリクエストが処理できない場合、前記リクエストに対してリトライ情報を含むリトライ要求を前記リクエスト送信部に送信する前記リクエスト受信部と、
    前記リクエスト受信部から受信した前記リトライ要求に含まれる前記リトライ情報をもとに前記リクエスト受信部が前記リクエストのリトライを処理可能となるタイミングを求め、前記リクエストのリトライを前記リクエスト受信部に送信する前記リクエスト送信部と
    して機能させることを特徴とするリクエスト処理装置用プログラム。
  12. 前記リトライ情報には、前記リクエスト受信部における前記リトライ要求を送信する時点からのリトライの処理順番を求めるための情報を含み、前記リクエスト送信部は、前記リクエストのリトライの処理順番を求めるための情報とリクエストの処理時間をもとに、前記リクエスト受信部が前記リクエストのリトライの処理可能となるタイミングを求めることを特徴とする請求項11に記載のリクエスト処理装置用プログラム。
  13. 前記リクエストのリトライの処理順番を求めるための情報は、前記リクエストのリトライの前記リクエスト受信部における処理順番を示す整理番号と、前記リクエスト受信部が前記リトライ要求を送信する時点において次に実行するリトライの前記整理番号を示す実行番号であり、前記リクエスト送信部は、前記整理番号、前記実行番号、及び前記リクエストの処理時間をもとに前記リクエスト受信部が前記リクエストを処理可能となるタイミングを求めることを特徴とする請求項12に記載のリクエスト処理装置用プログラム。
  14. 前記リクエストのリトライには、前記整理番号を含み、前記リクエスト受信部は、前記リクエスト受信部が前記リクエストのリトライを受信した時点において、前記リクエストのリトライに含まれる前記整理番号が次に実行するリトライの前記整理番号である場合に、前記リクエストを処理することを特徴とする請求項13に記載のリクエスト処理装置用プログラム。
  15. 前記リクエスト受信部は、前記リクエスト送信部からリトライでないリクエストを受信した時点において、未処理の前記リクエストのリトライがない場合、前記リトライでないリクエストを処理し、未処理の前記リクエストのリトライがある場合、前記リトライでないリクエストに対して前記リトライ要求を前記リクエスト送信部に送信することを特徴とする請求項11から14のいずれかに記載のリクエスト処理装置用プログラム。
JP2007201521A 2007-08-02 2007-08-02 リクエスト処理装置、リトライ制御方法、及びリクエスト処理装置用プログラム Pending JP2009037439A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007201521A JP2009037439A (ja) 2007-08-02 2007-08-02 リクエスト処理装置、リトライ制御方法、及びリクエスト処理装置用プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007201521A JP2009037439A (ja) 2007-08-02 2007-08-02 リクエスト処理装置、リトライ制御方法、及びリクエスト処理装置用プログラム

Publications (1)

Publication Number Publication Date
JP2009037439A true JP2009037439A (ja) 2009-02-19

Family

ID=40439281

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007201521A Pending JP2009037439A (ja) 2007-08-02 2007-08-02 リクエスト処理装置、リトライ制御方法、及びリクエスト処理装置用プログラム

Country Status (1)

Country Link
JP (1) JP2009037439A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017123051A (ja) * 2016-01-07 2017-07-13 富士通株式会社 情報処理装置、情報処理装置の制御方法及び演算処理装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002189650A (ja) * 2000-12-20 2002-07-05 Hitachi Ltd 計算機制御方法及び装置並びにその処理プログラムを格納した記録媒体
JP2002324057A (ja) * 2001-04-25 2002-11-08 Nec Corp サービスシステム及びそれに用いるサービス方法
JP2003058499A (ja) * 2001-08-10 2003-02-28 Fujitsu Ltd 負荷を管理するサーバ、プログラム、および媒体
JP2003173319A (ja) * 2001-12-06 2003-06-20 Hitachi Ltd 整理券を用いたアクセス制限システム
JP2003208401A (ja) * 2002-01-10 2003-07-25 Fujitsu Ltd 情報処理システム、情報処理装置並びにアクセス分散方法
JP2003218981A (ja) * 2002-01-25 2003-07-31 Toshiba Corp データ伝送装置及びデータ伝送方法
JP2005018727A (ja) * 2003-06-04 2005-01-20 Murata Mach Ltd 通信装置およびその装置を実現するためのプログラム
JP2006259783A (ja) * 2005-03-15 2006-09-28 Hitachi Information Systems Ltd ウェブサイト待ち状況管理・表示システム及び待ち状況管理・表示プログラム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002189650A (ja) * 2000-12-20 2002-07-05 Hitachi Ltd 計算機制御方法及び装置並びにその処理プログラムを格納した記録媒体
JP2002324057A (ja) * 2001-04-25 2002-11-08 Nec Corp サービスシステム及びそれに用いるサービス方法
JP2003058499A (ja) * 2001-08-10 2003-02-28 Fujitsu Ltd 負荷を管理するサーバ、プログラム、および媒体
JP2003173319A (ja) * 2001-12-06 2003-06-20 Hitachi Ltd 整理券を用いたアクセス制限システム
JP2003208401A (ja) * 2002-01-10 2003-07-25 Fujitsu Ltd 情報処理システム、情報処理装置並びにアクセス分散方法
JP2003218981A (ja) * 2002-01-25 2003-07-31 Toshiba Corp データ伝送装置及びデータ伝送方法
JP2005018727A (ja) * 2003-06-04 2005-01-20 Murata Mach Ltd 通信装置およびその装置を実現するためのプログラム
JP2006259783A (ja) * 2005-03-15 2006-09-28 Hitachi Information Systems Ltd ウェブサイト待ち状況管理・表示システム及び待ち状況管理・表示プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017123051A (ja) * 2016-01-07 2017-07-13 富士通株式会社 情報処理装置、情報処理装置の制御方法及び演算処理装置

Similar Documents

Publication Publication Date Title
JP6707618B2 (ja) ネットワークデバイスにおけるフレキシブルな送信間隔およびバックオフ間隔
CN105101446A (zh) 一种用于非授权频段的冲突避免方法及装置
JP2011065645A (ja) マルチコアプロセッサシステム
JP2009294712A (ja) 優先度制御装置及び優先度制御方法
EP4009605A1 (en) Service request processing method and related device
JP2006185407A (ja) ピーク電力制御方法および装置
US20150244765A1 (en) Method for processing requests and server device processing requests
JP2007188494A (ja) 共用処理資源割当てシステム、方法およびプログラム
CN106713238B (zh) 远程过程调用方法、装置及系统
CN111095988A (zh) 搜索空间监视
JP2009037439A (ja) リクエスト処理装置、リトライ制御方法、及びリクエスト処理装置用プログラム
CN113821074B (zh) 一种时间同步方法、装置、电子设备和存储介质
TW202013201A (zh) 中斷控制器
JP2012104941A (ja) 無線通信装置及びプログラム、並びに、通信システム
JP6368452B2 (ja) 非同期のデバイスによって実行されるタスクのスケジューリングの向上
EP2413248A1 (en) Direct memory access device for multi-core system and operating method of the same
JP2008225641A (ja) コンピュータシステム、割り込み制御方法及びプログラム
JP2014222473A (ja) データ処理装置、データ処理方法、データ処理制御装置、プログラムおよび記録媒体
JP5056346B2 (ja) 情報処理装置、情報処理システム、仮想サーバの移動処理の制御方法、及び、プログラム
JP2008294671A (ja) 応答制御方法およびデバイス装置
JP2020095464A (ja) 演算処理装置及び演算処理装置の制御方法
WO2015135135A1 (zh) 一种资源选择的方法及装置
JP5586442B2 (ja) 通信装置、通信装置のデータ転送方法および通信プログラム
CN117749850A (zh) 控制方法、目标端、系统、设备及计算机可读存储介质
JP2010200091A (ja) 通信システム及び通信方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20090519

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100511

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100610

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100713