JP2007108992A - トランザクション分散方法、トランザクション分散プログラムおよびトランザクション分散装置 - Google Patents
トランザクション分散方法、トランザクション分散プログラムおよびトランザクション分散装置 Download PDFInfo
- Publication number
- JP2007108992A JP2007108992A JP2005298876A JP2005298876A JP2007108992A JP 2007108992 A JP2007108992 A JP 2007108992A JP 2005298876 A JP2005298876 A JP 2005298876A JP 2005298876 A JP2005298876 A JP 2005298876A JP 2007108992 A JP2007108992 A JP 2007108992A
- Authority
- JP
- Japan
- Prior art keywords
- input data
- processing server
- transaction
- processing
- transaction distribution
- 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
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
【課題】各トランザクションによる負荷がアンバランスの場合でも、各ホストコンピュータにかかる負荷をバランスすることにより、システム全体の処理性能を向上させる。
【解決手段】クライアント3から送られる入力データの処理サーバ2への分散を行うために、入力データ長を算出し、負荷情報管理テーブルの総入力データ長を参照して総入力データ長が一番小さい処理サーバを検索し、該当する処理サーバを特定し、負荷情報管理テーブルを検索し、特定した処理サーバに対応する総入力データ長に前記入力データ長の値を加算し、特定した処理サーバに、入力データを送信することを特徴とするトランザクション分散方法、トランザクション分散プログラムおよびトランザクション分散装置1を提供する。
【選択図】図1
【解決手段】クライアント3から送られる入力データの処理サーバ2への分散を行うために、入力データ長を算出し、負荷情報管理テーブルの総入力データ長を参照して総入力データ長が一番小さい処理サーバを検索し、該当する処理サーバを特定し、負荷情報管理テーブルを検索し、特定した処理サーバに対応する総入力データ長に前記入力データ長の値を加算し、特定した処理サーバに、入力データを送信することを特徴とするトランザクション分散方法、トランザクション分散プログラムおよびトランザクション分散装置1を提供する。
【選択図】図1
Description
本発明は、複数の処理サーバと、複数のクライアントと、トランザクション分散装置とから構成されたトランザクション分散処理システムにおける負荷分散技術に関する。
コンピュータに対する処理の増加と共に、処理すべきトランザクションを複数の処理サーバに分散させる技術が実用化されている。しかしながら、現状の分散技術では、トランザクションによる負荷の非均一(偏りが生じていること)性が原因で各処理サーバの負荷に差が生じ、結果として、システム全体のスループットの向上が図れないといった問題がある。
前記した問題を解決するための技術の一つとして、クライアント(端末)から処理サーバ(ホストコンピュータ)へ確立されるセッション数を、各処理サーバで均一(偏りが生じていないこと)にすることによって、クライアントからのトランザクションの処理にかかる各処理サーバの負荷を分散させる技術が開示されている(例えば、特許文献1参照)。
特開平9−97233号公報(請求項1、第4〜5頁、図2・図5)
しかしながら、特許文献1に係る技術は、各処理サーバに確立されるセッション数を均一に(バランス)しても、各セッションにかかるトランザクションによる負荷に偏りが生じ、各セッションにかかる負荷にばらつきがある場合、各処理サーバにかかる負荷がアンバランスとなり、システム全体のスループットが低下するという課題がある。
前記課題に鑑みて、本発明の目的は、各トランザクションによる負荷がアンバランスの場合、各処理サーバにかかる負荷をバランスすることにより、複数の処理サーバからなるシステムの処理性能を向上させることにある。
前記目的を達成するために、本発明は、クライアントから送られる入力データの処理サーバへの分散を行うために、入力データ長を算出し、負荷情報管理テーブルの総入力データ長を参照して総入力データ長が一番小さい処理サーバを検索し、該当する処理サーバを特定し、負荷情報管理テーブルを検索し、特定した処理サーバに対応する総入力データ長に前記入力データ長の値を加算し、特定した処理サーバに、入力データを送信することを特徴とするトランザクション分散方法、トランザクション分散プログラムおよびトランザクション分散装置を提供する。
本発明によれば、各トランザクションの負荷がアンバランスの場合、各処理サーバにかかる負荷をバランスすることにより、複数の処理サーバからなるシステムの処理性能を向上させることが可能となる。
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明する。
[第1実施形態:トランザクション分散処理システムの構成]
図1は、第1実施形態におけるトランザクション分散処理システムの構成の一例を示す図である。
本実施例では、トランザクションを処理する少なくとも1つの処理サーバ2と、トランザクションを分散(振分)するトランザクション分散装置1と、トランザクションのための入力データを送信する少なくとも1つのクライアント3とを含んで構成される。
各処理サーバ2と、トランザクション分散装置1とは、通信回線4を介して接続しており、各クライアント3と、トランザクション分散装置1とは、通信回線5を介して接続している。
通信回線4,5は、LAN(Local Area Network)のような狭域ネットワークでもよいし、WAN(Wide Area Network)のような広域ネットワークでもよい。
また、トランザクション分散装置1は、メモリ11と、キーボード12と、ディスプレイ13と、マウス14と、CPU15と、バス16と、ハードディスク17とを含んで構成される。
また、メモリ11は、情報の送受信などの処理を行う送受信処理部111と、トランザクションの分散処理を行うトランザクション分散処理部112と、処理サーバ名と処理サーバIDが対応付けられている処理サーバ定義テーブル(請求項における定義テーブル)113と、クライアント名とクライアントIDが対応付けられているクライアント定義テーブル114と、処理サーバIDと総入力データ長が対応付けられている負荷情報管理テーブル115と、入力データに関する情報が管理されている入力データ管理テーブル116と、これらを制御するオペレーティングシステム117とを備える。
図1は、第1実施形態におけるトランザクション分散処理システムの構成の一例を示す図である。
本実施例では、トランザクションを処理する少なくとも1つの処理サーバ2と、トランザクションを分散(振分)するトランザクション分散装置1と、トランザクションのための入力データを送信する少なくとも1つのクライアント3とを含んで構成される。
各処理サーバ2と、トランザクション分散装置1とは、通信回線4を介して接続しており、各クライアント3と、トランザクション分散装置1とは、通信回線5を介して接続している。
通信回線4,5は、LAN(Local Area Network)のような狭域ネットワークでもよいし、WAN(Wide Area Network)のような広域ネットワークでもよい。
また、トランザクション分散装置1は、メモリ11と、キーボード12と、ディスプレイ13と、マウス14と、CPU15と、バス16と、ハードディスク17とを含んで構成される。
また、メモリ11は、情報の送受信などの処理を行う送受信処理部111と、トランザクションの分散処理を行うトランザクション分散処理部112と、処理サーバ名と処理サーバIDが対応付けられている処理サーバ定義テーブル(請求項における定義テーブル)113と、クライアント名とクライアントIDが対応付けられているクライアント定義テーブル114と、処理サーバIDと総入力データ長が対応付けられている負荷情報管理テーブル115と、入力データに関する情報が管理されている入力データ管理テーブル116と、これらを制御するオペレーティングシステム117とを備える。
[処理サーバ定義テーブル113]
ここで、図1を参照しつつ、図2に沿って処理サーバ定義テーブル113について説明する。
図2は、第1実施形態における処理サーバ定義テーブルの構成例を示す図である。
処理サーバ定義テーブル113は、処理サーバIDのフィールドと処理サーバ名のフィールドとから構成される。なお、処理サーバIDと処理サーバ名との1組を処理サーバ定義エントリと呼ぶことがある。処理サーバIDは、処理サーバ2を識別するための固有なIDである。処理サーバ名は、図1に示すトランザクション分散処理システム内の各処理サーバ2に割当てられた、トランザクション分散処理システム内で固有の名称である。
ここで、図1を参照しつつ、図2に沿って処理サーバ定義テーブル113について説明する。
図2は、第1実施形態における処理サーバ定義テーブルの構成例を示す図である。
処理サーバ定義テーブル113は、処理サーバIDのフィールドと処理サーバ名のフィールドとから構成される。なお、処理サーバIDと処理サーバ名との1組を処理サーバ定義エントリと呼ぶことがある。処理サーバIDは、処理サーバ2を識別するための固有なIDである。処理サーバ名は、図1に示すトランザクション分散処理システム内の各処理サーバ2に割当てられた、トランザクション分散処理システム内で固有の名称である。
[クライアント定義テーブル114]
ここで、図1を参照しつつ、図3に沿ってクライアント定義テーブル114について説明する。
図3は、クライアント定義テーブルの構成例を示す図である。
クライアント定義テーブル114は、クライアントIDのフィールドとクライアント名のフィールドとから構成される。なお、クライアントIDとクライアント名との1組をクライアント定義エントリと呼ぶことがある。クライアントIDは、クライアント3を識別するための固有なIDである。クライアント名は、図1に示すトランザクション分散処理システム内の各クライアントに割当てられた、トランザクション分散処理システム内で固有の名称である。
ここで、図1を参照しつつ、図3に沿ってクライアント定義テーブル114について説明する。
図3は、クライアント定義テーブルの構成例を示す図である。
クライアント定義テーブル114は、クライアントIDのフィールドとクライアント名のフィールドとから構成される。なお、クライアントIDとクライアント名との1組をクライアント定義エントリと呼ぶことがある。クライアントIDは、クライアント3を識別するための固有なIDである。クライアント名は、図1に示すトランザクション分散処理システム内の各クライアントに割当てられた、トランザクション分散処理システム内で固有の名称である。
[負荷情報管理テーブル115]
ここで、図1を参照しつつ、図4に沿って負荷情報管理テーブル115について説明する。
図4は、負荷情報管理テーブルの構成例を示す図である。
負荷情報管理テーブル115は、処理サーバIDのフィールドと総入力データ長のフィールドにより構成される。処理サーバIDと総入力データ長との1組を、負荷情報エントリと呼ぶことがある。処理サーバIDは、処理サーバ2を識別するための固有なIDである。本実施形態において、固有とは、図1に示すトランザクション分散処理システム内で固有という意味だが、これに限らず、グローバルアドレスのようなWAN内で固有のIDであってもよい。総入力データ長は、対応している処理サーバIDで識別される処理サーバ2において処理中のトランザクションの入力データ長の総和である。
ここで、図1を参照しつつ、図4に沿って負荷情報管理テーブル115について説明する。
図4は、負荷情報管理テーブルの構成例を示す図である。
負荷情報管理テーブル115は、処理サーバIDのフィールドと総入力データ長のフィールドにより構成される。処理サーバIDと総入力データ長との1組を、負荷情報エントリと呼ぶことがある。処理サーバIDは、処理サーバ2を識別するための固有なIDである。本実施形態において、固有とは、図1に示すトランザクション分散処理システム内で固有という意味だが、これに限らず、グローバルアドレスのようなWAN内で固有のIDであってもよい。総入力データ長は、対応している処理サーバIDで識別される処理サーバ2において処理中のトランザクションの入力データ長の総和である。
さらに、図1を参照しつつ、図5に沿って入力データ管理テーブル116について説明する。
図5は、第1実施形態における入力データ管理テーブルの構成例を示す図である。
入力データ管理テーブル116は、トランザクションごとに作成されるテーブルである。入力データ管理テーブル116には、トランザクションごとに付与されたIDであるトランザクションID、該トランザクションが送信される処理サーバ2のIDである処理サーバIDを登録するためのフィールドが含まれる。さらに、該当するトランザクションの入力データの長さである入力データ長、そして入力データの入力元であるクライアント3のIDであるクライアントIDを登録するためのフィールドをさらに含んで構成されている。ここで、入力データ長とは、例えば入力データのバイト数などで表される値である。
図5は、第1実施形態における入力データ管理テーブルの構成例を示す図である。
入力データ管理テーブル116は、トランザクションごとに作成されるテーブルである。入力データ管理テーブル116には、トランザクションごとに付与されたIDであるトランザクションID、該トランザクションが送信される処理サーバ2のIDである処理サーバIDを登録するためのフィールドが含まれる。さらに、該当するトランザクションの入力データの長さである入力データ長、そして入力データの入力元であるクライアント3のIDであるクライアントIDを登録するためのフィールドをさらに含んで構成されている。ここで、入力データ長とは、例えば入力データのバイト数などで表される値である。
[トランザクション分散処理]
次に、図1および図2を参照しつつ、図6に沿ってトランザクション分散処理の流れを説明する。
図6は、第1実施形態におけるトランザクション分散装置によるトランザクション分散処理の流れを示すフローである。
トランザクション分散処理に先立って、負荷情報管理テーブル115には、処理サーバIDと、総入力データ長の初期値として0が登録される。
さらに、トランザクション分散処理に先立って、処理サーバ定義テーブル113には、処理サーバIDと処理サーバ名が登録され、クライアント定義テーブル114には、クライアントIDとクライアント名が登録される。
次に、図1および図2を参照しつつ、図6に沿ってトランザクション分散処理の流れを説明する。
図6は、第1実施形態におけるトランザクション分散装置によるトランザクション分散処理の流れを示すフローである。
トランザクション分散処理に先立って、負荷情報管理テーブル115には、処理サーバIDと、総入力データ長の初期値として0が登録される。
さらに、トランザクション分散処理に先立って、処理サーバ定義テーブル113には、処理サーバIDと処理サーバ名が登録され、クライアント定義テーブル114には、クライアントIDとクライアント名が登録される。
(入力データ長、各IDの取得、処理サーバの選択)
まず、送受信処理部111が通信回線5を介して、クライアント3からトランザクションのための入力データを受信する(S601)。この入力データには、クライアント3ごとに付与されているクライアントIDが含まれている。
さらに、トランザクション分散処理部112が、送受信処理部111から入力データを取得し、この入力データを基に、入力データ長を算出する(S602)。
さらに、トランザクション分散処理部112は、受信した入力データを送受信処理部111から取得し、この入力データからクライアントIDを取得する(S603)。
次に、トランザクション分散処理部112が、負荷情報管理テーブル115の総入力データ長を参照して総入力データ長が一番小さい処理サーバIDを検索し(S604)、該当する処理サーバIDを取得する(S605)。なお、同じ総入力データ長である処理サーバ2が複数存在するときは、処理サーバIDが最も小さい処理サーバ2を選択する。
まず、送受信処理部111が通信回線5を介して、クライアント3からトランザクションのための入力データを受信する(S601)。この入力データには、クライアント3ごとに付与されているクライアントIDが含まれている。
さらに、トランザクション分散処理部112が、送受信処理部111から入力データを取得し、この入力データを基に、入力データ長を算出する(S602)。
さらに、トランザクション分散処理部112は、受信した入力データを送受信処理部111から取得し、この入力データからクライアントIDを取得する(S603)。
次に、トランザクション分散処理部112が、負荷情報管理テーブル115の総入力データ長を参照して総入力データ長が一番小さい処理サーバIDを検索し(S604)、該当する処理サーバIDを取得する(S605)。なお、同じ総入力データ長である処理サーバ2が複数存在するときは、処理サーバIDが最も小さい処理サーバ2を選択する。
このようにすることで、現在入力されている入力データ長の総和が、最も小さい処理サーバ2、すなわち負荷が最も少ない処理サーバ2を選択することができる。
(トランザクション要求)
そして、トランザクション分散処理部112が、送受信処理部111の入力データにトランザクションIDを付与する(S606)。
次に、トランザクション分散処理部112が、トランザクションID、処理サーバID、クライアントIDおよび入力データ長を入力データ管理テーブル116に登録する(S607)。
次に、トランザクション分散処理部112が、負荷情報管理テーブル115を、処理サーバIDをキーとして検索し、対応する総入力データ長に入力データ長の値を加算する(S608)。
次に、送受信処理部111が、トランザクション分散処理部112から処理サーバIDを取得し、処理サーバ定義テーブル113を、処理サーバIDをキーとして参照し、対応する処理サーバ名を取得する(S609)。
そして、送受信処理部111は、通信回線4を介して、ステップS609で取得した処理サーバ名を有する処理サーバ2に、トランザクションIDが付与された入力データを送信する(S610)ことによって、該処理サーバ2にトランザクション処理を要求する。
そして、トランザクション分散処理部112が、送受信処理部111の入力データにトランザクションIDを付与する(S606)。
次に、トランザクション分散処理部112が、トランザクションID、処理サーバID、クライアントIDおよび入力データ長を入力データ管理テーブル116に登録する(S607)。
次に、トランザクション分散処理部112が、負荷情報管理テーブル115を、処理サーバIDをキーとして検索し、対応する総入力データ長に入力データ長の値を加算する(S608)。
次に、送受信処理部111が、トランザクション分散処理部112から処理サーバIDを取得し、処理サーバ定義テーブル113を、処理サーバIDをキーとして参照し、対応する処理サーバ名を取得する(S609)。
そして、送受信処理部111は、通信回線4を介して、ステップS609で取得した処理サーバ名を有する処理サーバ2に、トランザクションIDが付与された入力データを送信する(S610)ことによって、該処理サーバ2にトランザクション処理を要求する。
(トランザクション終了後の処理)
そして、処理サーバ2は、要求されたトランザクション処理を行う。トランザクション処理が終了すると、処理サーバ2は、通信回線4を介して、送受信処理部111に対し、該当するトランザクションIDを含む応答データを送信し、送受信処理部111は、この応答データを受信する(S611)。
次に、トランザクション分散処理部112が、送受信処理部111から応答データを取得し、この応答データからトランザクションIDを取得する(S612)。
そして、トランザクション分散処理部112が、処理サーバID、クライアントIDおよび入力データ長を取得する(S613)。
そして、トランザクション分散処理部112は、取得した処理サーバIDをキーとして、負荷情報管理テーブル115を検索し、該当する処理サーバIDの総入力データ長から、取得した入力データ長の値を減算する(S614)。
そして、処理サーバ2は、要求されたトランザクション処理を行う。トランザクション処理が終了すると、処理サーバ2は、通信回線4を介して、送受信処理部111に対し、該当するトランザクションIDを含む応答データを送信し、送受信処理部111は、この応答データを受信する(S611)。
次に、トランザクション分散処理部112が、送受信処理部111から応答データを取得し、この応答データからトランザクションIDを取得する(S612)。
そして、トランザクション分散処理部112が、処理サーバID、クライアントIDおよび入力データ長を取得する(S613)。
そして、トランザクション分散処理部112は、取得した処理サーバIDをキーとして、負荷情報管理テーブル115を検索し、該当する処理サーバIDの総入力データ長から、取得した入力データ長の値を減算する(S614)。
このようにすることで、トランザクション分散装置1は、処理サーバ2において処理中のすべてのトランザクションの入力データ長、すなわち処理サーバ2に入力されているすべての入力データの入力データ長を常に管理することができる。
そして、送受信処理部111が、トランザクション分散処理部112からクライアントIDを取得し、このクライアントIDをキーとして、クライアント定義テーブル114を参照し、対応するクライアント名を取得する(S615)。
そして、送受信処理部111は、このクライアント名に該当するクライアント3に応答データを送信する(S616)。
そして、送受信処理部111は、このクライアント名に該当するクライアント3に応答データを送信する(S616)。
以上のような方法を用いることにより、各トランザクションの負荷がアンバランスの場合でも、各処理サーバにかかる負荷をバランスすることにより、複数の処理サーバからなるシステム全体のスループットを向上させることが可能となる。
[第2実施形態:トランザクション分散装置の構成]
次に、図7から図12を参照して、本発明に係る第2実施形態を説明する。なお、第2実施形態は、前記した第1実施形態と共通の要素および処理を含むため、このような要素および処理に関しては、同一の符号を付して説明を省略し、本実施形態の特徴的な要素および処理について説明する。
次に、図7から図12を参照して、本発明に係る第2実施形態を説明する。なお、第2実施形態は、前記した第1実施形態と共通の要素および処理を含むため、このような要素および処理に関しては、同一の符号を付して説明を省略し、本実施形態の特徴的な要素および処理について説明する。
図7は、第2実施形態におけるトランザクション分散処理システムの構成の一例を示す図である。
第1実施形態と異なる第1の点は、メモリ11aが、平均処理時間の算出などの処理を行う統計情報処理部118をさらに備えた点である。
そして、第2の点は、バス16に接続されるハードディスク17aに統計情報処理の結果を保存する統計情報テーブル171が格納される点である。
さらに、第3の点は、処理サーバ定義テーブル113aに、各処理サーバごとの負荷係数が格納される点である。
第4の点は、トランザクション分散処理部112aに、入力データ長に負荷係数を乗算する機能などが加わった点である。
第1実施形態と異なる第1の点は、メモリ11aが、平均処理時間の算出などの処理を行う統計情報処理部118をさらに備えた点である。
そして、第2の点は、バス16に接続されるハードディスク17aに統計情報処理の結果を保存する統計情報テーブル171が格納される点である。
さらに、第3の点は、処理サーバ定義テーブル113aに、各処理サーバごとの負荷係数が格納される点である。
第4の点は、トランザクション分散処理部112aに、入力データ長に負荷係数を乗算する機能などが加わった点である。
[処理サーバ定義テーブル113a]
さらに、図7を参照しつつ、図8に沿って第2実施形態における処理サーバ定義テーブル113aと負荷係数について説明する。
図8は、第2実施形態における処理サーバ定義テーブルの構成例を示す図である。
図8が図2に示す第1実施形態における処理サーバ定義テーブル113と異なる点は、それぞれの処理サーバに対応して、後記する負荷係数が設けられている点である。
さらに、図7を参照しつつ、図8に沿って第2実施形態における処理サーバ定義テーブル113aと負荷係数について説明する。
図8は、第2実施形態における処理サーバ定義テーブルの構成例を示す図である。
図8が図2に示す第1実施形態における処理サーバ定義テーブル113と異なる点は、それぞれの処理サーバに対応して、後記する負荷係数が設けられている点である。
[負荷係数]
負荷係数は、処理サーバごとの処理時間を平均した平均処理時間を基に決定され、対応する処理サーバIDで識別される処理サーバ2が処理できる能力値を表現するものである。負荷係数は、少なくとも正の値であり、標準値は1とし、例えば0.1から10までの範囲で指定する。図7に示すトランザクション分散処理システム内の他の処理サーバ2と比較して、高い処理能力を有する処理サーバ2は、平均処理時間が短くなる。このような処理サーバに対しては、1より小さい値の負荷係数を設定する。また、図7に示すトランザクション分散処理システム内の他の処理サーバ2と比較して、低い処理能力を有する処理サーバ2は、平均処理時間が長くなる。このような処理サーバに対しては、1より大きい値の負荷係数を設定する。
負荷係数は、処理サーバごとの処理時間を平均した平均処理時間を基に決定され、対応する処理サーバIDで識別される処理サーバ2が処理できる能力値を表現するものである。負荷係数は、少なくとも正の値であり、標準値は1とし、例えば0.1から10までの範囲で指定する。図7に示すトランザクション分散処理システム内の他の処理サーバ2と比較して、高い処理能力を有する処理サーバ2は、平均処理時間が短くなる。このような処理サーバに対しては、1より小さい値の負荷係数を設定する。また、図7に示すトランザクション分散処理システム内の他の処理サーバ2と比較して、低い処理能力を有する処理サーバ2は、平均処理時間が長くなる。このような処理サーバに対しては、1より大きい値の負荷係数を設定する。
ここで、図7を参照しつつ、図9に沿って第2実施形態における入力データ管理テーブル116aについて説明する。
図9は、第2実施形態における入力データ管理テーブルの構成例を示す図である。
図5に示す第1実施形態における入力データ管理テーブル116と異なる点は、トランザクション分散装置1aから処理サーバ2に対しトランザクションを要求した時刻である要求時刻が存在する点である。
図9は、第2実施形態における入力データ管理テーブルの構成例を示す図である。
図5に示す第1実施形態における入力データ管理テーブル116と異なる点は、トランザクション分散装置1aから処理サーバ2に対しトランザクションを要求した時刻である要求時刻が存在する点である。
次に、図7を参照しつつ、図10に沿って統計情報テーブル171について説明する。
図10は、統計情報テーブルの構成例を示す図である。
統計情報テーブル171は、処理サーバ2ごとに作成され、該当する処理サーバIDが登録されるフィールド、平均処理時間が登録されるフィールドおよび処理時間が登録されるフィールドを含んで構成される。処理時間を登録するフィールドは、複数のフィールドからなる。
平均処理時間とは、後記する処理時間を処理サーバ2ごとに平均した値であり、前記した負荷係数の決定に関わる値である。平均処理時間の算出方法は、図12を参照して後記する。
処理時間とは、処理サーバIDに該当する処理サーバ2が、1つのトランザクションを処理する時間である。処理時間の算出方法は、図12を参照して後記する。
図10は、統計情報テーブルの構成例を示す図である。
統計情報テーブル171は、処理サーバ2ごとに作成され、該当する処理サーバIDが登録されるフィールド、平均処理時間が登録されるフィールドおよび処理時間が登録されるフィールドを含んで構成される。処理時間を登録するフィールドは、複数のフィールドからなる。
平均処理時間とは、後記する処理時間を処理サーバ2ごとに平均した値であり、前記した負荷係数の決定に関わる値である。平均処理時間の算出方法は、図12を参照して後記する。
処理時間とは、処理サーバIDに該当する処理サーバ2が、1つのトランザクションを処理する時間である。処理時間の算出方法は、図12を参照して後記する。
[トランザクション分散処理]
次に、図7を参照しつつ、図11に沿って第2実施形態におけるトランザクション分散処理の流れを説明する。
図11は、第2実施形態におけるトランザクション分散装置によるトランザクション分散処理の流れを示すフローである。
なお、図11では、図12に示す統計情報処理が完了していることを前提に説明するが、統計情報処理が完了していない場合は、負荷係数の初期値として1を処理サーバ定義テーブル113aに予め設定しておく。
また、統計情報テーブル171には、処理サーバIDが予め登録されているものとする。
次に、図7を参照しつつ、図11に沿って第2実施形態におけるトランザクション分散処理の流れを説明する。
図11は、第2実施形態におけるトランザクション分散装置によるトランザクション分散処理の流れを示すフローである。
なお、図11では、図12に示す統計情報処理が完了していることを前提に説明するが、統計情報処理が完了していない場合は、負荷係数の初期値として1を処理サーバ定義テーブル113aに予め設定しておく。
また、統計情報テーブル171には、処理サーバIDが予め登録されているものとする。
本実施形態において、図6に示す第1実施形態におけるトランザクション分散処理と異なる処理は、以下の処理である。
ステップS607の後に、統計情報処理部118が、トランザクション分散処理部112aから処理サーバIDを取得し、この処理サーバIDをキーとして、処理サーバ定義テーブル113aを検索して、対応する処理サーバIDに対応している負荷係数を取得する(S1101)。負荷係数の入力処理については、図12を参照して後記する。
そして、トランザクション分散処理部112aが、統計情報処理部118から負荷係数を取得し、処理サーバIDをキーとして、負荷情報管理テーブル115を検索し、対応する総入力データ長に入力データ長×負荷係数の値を加算する(S1102)。
ステップS607の後に、統計情報処理部118が、トランザクション分散処理部112aから処理サーバIDを取得し、この処理サーバIDをキーとして、処理サーバ定義テーブル113aを検索して、対応する処理サーバIDに対応している負荷係数を取得する(S1101)。負荷係数の入力処理については、図12を参照して後記する。
そして、トランザクション分散処理部112aが、統計情報処理部118から負荷係数を取得し、処理サーバIDをキーとして、負荷情報管理テーブル115を検索し、対応する総入力データ長に入力データ長×負荷係数の値を加算する(S1102)。
そして、ステップS609の後、送受信処理部111は、通信回線4を介して、ステップS609で取得した処理サーバ名を有する処理サーバ2に、トランザクションIDが付与された入力データを送信することによって、この処理サーバ2にトランザクション処理を要求すると同時に、入力データを送信した時刻である要求時刻を取得する(S1103)。
さらに、送受信処理部111は、ステップS606で取得したトランザクションIDをキーとして、入力データ管理テーブル116aを検索して、対応する要求時刻のフィールドに、ステップS1103で取得した要求時刻を登録する(S1104)。
さらに、送受信処理部111は、ステップS606で取得したトランザクションIDをキーとして、入力データ管理テーブル116aを検索して、対応する要求時刻のフィールドに、ステップS1103で取得した要求時刻を登録する(S1104)。
そして、処理サーバ2によるトランザクション処理の終了後、送受信処理部111は、処理サーバ2からトランザクションIDを含む応答データを受信し、同時に応答時刻を取得する(S1105)。
そしてステップS612の処理の後、統計情報処理を行う(S1106)。統計情報処理の詳細は、図12を参照して後記する。
そしてステップS612の処理の後、統計情報処理を行う(S1106)。統計情報処理の詳細は、図12を参照して後記する。
さらに、統計情報処理部118が、トランザクション分散処理部112aから処理サーバIDを取得し、この処理サーバIDをキーとして、処理サーバ定義テーブル113aを検索して、対応する負荷係数を取得する(S1107)。
次に、トランザクション分散処理部112aが、統計情報処理部118から負荷係数を取得し、処理サーバIDをキーとして、負荷情報管理テーブル115を検索し、該当する処理サーバIDの総入力データ長から、取得した入力データ長×負荷係数の値を減算する(S1108)。
次に、トランザクション分散処理部112aが、統計情報処理部118から負荷係数を取得し、処理サーバIDをキーとして、負荷情報管理テーブル115を検索し、該当する処理サーバIDの総入力データ長から、取得した入力データ長×負荷係数の値を減算する(S1108)。
[統計情報処理]
次に、図7および図3を参照しつつ、図12に沿って図11のステップS1106の統計情報処理を説明する。
図12は、図11のステップS1106の統計情報処理の流れを示すフローである。
次に、図7および図3を参照しつつ、図12に沿って図11のステップS1106の統計情報処理を説明する。
図12は、図11のステップS1106の統計情報処理の流れを示すフローである。
(処理時間の算出)
まず、統計情報処理部118は、送受信処理部111から応答時刻を取得し、トランザクション分散処理部112aからトランザクションIDを取得する(S1201)。
さらに、統計情報処理部118は、取得したトランザクションIDをキーとして、入力データ管理テーブル116aから処理サーバIDと要求時刻を取得する(S1202)。
そして、統計情報処理部118は、応答時刻から要求時刻を減算することで、該当する処理サーバ2がトランザクション処理に要した時間である処理時間を算出する(S1203)。
さらに、統計情報処理部118は、統計情報テーブル171を、処理サーバIDをキーとして検索し、算出した処理時間を、該当する統計情報テーブル171の処理時間のフィールドに追加登録する(S1204)。
まず、統計情報処理部118は、送受信処理部111から応答時刻を取得し、トランザクション分散処理部112aからトランザクションIDを取得する(S1201)。
さらに、統計情報処理部118は、取得したトランザクションIDをキーとして、入力データ管理テーブル116aから処理サーバIDと要求時刻を取得する(S1202)。
そして、統計情報処理部118は、応答時刻から要求時刻を減算することで、該当する処理サーバ2がトランザクション処理に要した時間である処理時間を算出する(S1203)。
さらに、統計情報処理部118は、統計情報テーブル171を、処理サーバIDをキーとして検索し、算出した処理時間を、該当する統計情報テーブル171の処理時間のフィールドに追加登録する(S1204)。
(平均処理時間の算出)
さらに、統計情報処理部118は、統計情報テーブル171から、すべての処理サーバIDと、すべての処理時間を処理サーバ2ごとに取得し(S1205)、さらにこれらの平均をとることで処理サーバ2ごとの平均処理時間を算出する(S1206)。
そして、統計情報処理部118は、統計情報テーブル171の、それぞれの処理サーバIDに対応する平均処理時間のフィールドに登録することで、統計情報テーブル171の平均処理時間を更新する(S1207)。
さらに、統計情報処理部118は、統計情報テーブル171から、すべての処理サーバIDと、すべての処理時間を処理サーバ2ごとに取得し(S1205)、さらにこれらの平均をとることで処理サーバ2ごとの平均処理時間を算出する(S1206)。
そして、統計情報処理部118は、統計情報テーブル171の、それぞれの処理サーバIDに対応する平均処理時間のフィールドに登録することで、統計情報テーブル171の平均処理時間を更新する(S1207)。
(負荷係数入力)
次に、トランザクション分散処理部112aが、トランザクションIDをキーとして、入力データ管理テーブル116aを検索して、該当するクライアントIDを取得する(S1208)。
さらに、送受信処理部111は、取得したクライアントIDをキーとして、クライアント定義テーブル114を検索して、対応するクライアント名を取得する(S1209)。
そして、送受信処理部111は、統計情報処理部118から、すべての処理サーバIDを取得し、これらの処理サーバIDをキーとして、対応する平均処理時間を取得し、通信回線5を介して、これらをクライアント3に送信する(S1210)。
次に、クライアント3が処理サーバIDおよび平均処理時間を表示する。なお、処理サーバIDおよび平均処理時間を送信されるクライアント3は、トランザクション分散装置1aに処理サーバ2に関する情報を要求したクライアント3でもよいし、すべてのクライアント3に一定時間ごとに処理サーバIDおよび平均処理時間を送信してもよい。
次に、トランザクション分散処理部112aが、トランザクションIDをキーとして、入力データ管理テーブル116aを検索して、該当するクライアントIDを取得する(S1208)。
さらに、送受信処理部111は、取得したクライアントIDをキーとして、クライアント定義テーブル114を検索して、対応するクライアント名を取得する(S1209)。
そして、送受信処理部111は、統計情報処理部118から、すべての処理サーバIDを取得し、これらの処理サーバIDをキーとして、対応する平均処理時間を取得し、通信回線5を介して、これらをクライアント3に送信する(S1210)。
次に、クライアント3が処理サーバIDおよび平均処理時間を表示する。なお、処理サーバIDおよび平均処理時間を送信されるクライアント3は、トランザクション分散装置1aに処理サーバ2に関する情報を要求したクライアント3でもよいし、すべてのクライアント3に一定時間ごとに処理サーバIDおよび平均処理時間を送信してもよい。
ユーザは、表示された処理サーバIDと平均処理時間を参考に、処理サーバ2の負荷係数をクライアント3に入力し、クライアント3は、入力された負荷係数と処理サーバIDとをペアの情報として、送受信処理部111に送る。そして、送受信処理部111は、処理サーバIDと負荷係数を受信する(S1211)。
送受信処理部111は、受信した処理サーバIDをキーとして、処理サーバ定義テーブル113aを検索し、該当する負荷係数のフィールドおよびに負荷係数を登録する(S1212)。
送受信処理部111は、受信した処理サーバIDをキーとして、処理サーバ定義テーブル113aを検索し、該当する負荷係数のフィールドおよびに負荷係数を登録する(S1212)。
このようにすることで以下のような効果を得ることができる。
例えば、負荷係数が1よりも小さい場合は、図11のステップS1102の処理の際、出力される結果は、元の入力データ長よりも小さい値となる。このため、実際の総入力データ長よりも、小さい値の総入力データ長が負荷情報管理テーブル115に登録されることになる。このため、対応する処理サーバ2へのトランザクションの振分け量が増える。
また、負荷係数が1よりも大きい場合は、図11のステップS1102の処理の際、出力される結果は、元の入力データ長よりも大きい値となる。このため、実際の総入力データ長よりも、大きい値の総入力データ長が負荷情報管理テーブル115に登録されることになる。このため、対応する処理サーバ2へのトランザクションの振分け量が減ることとなる。
このようにして、各処理サーバ2の性能に応じたトランザクションの分散が可能となり、システム全体のスループット向上が可能となる。
例えば、負荷係数が1よりも小さい場合は、図11のステップS1102の処理の際、出力される結果は、元の入力データ長よりも小さい値となる。このため、実際の総入力データ長よりも、小さい値の総入力データ長が負荷情報管理テーブル115に登録されることになる。このため、対応する処理サーバ2へのトランザクションの振分け量が増える。
また、負荷係数が1よりも大きい場合は、図11のステップS1102の処理の際、出力される結果は、元の入力データ長よりも大きい値となる。このため、実際の総入力データ長よりも、大きい値の総入力データ長が負荷情報管理テーブル115に登録されることになる。このため、対応する処理サーバ2へのトランザクションの振分け量が減ることとなる。
このようにして、各処理サーバ2の性能に応じたトランザクションの分散が可能となり、システム全体のスループット向上が可能となる。
なお、本実施形態では、クライアント3を介して、負荷係数がトランザクション分散装置1aに入力されたが、これに限らず図示しないトランザクション分散装置1aの入力部を介して入力されてもよいし、平均処理時間に対応した負荷係数を予め設定しておき、算出した平均処理時間を基にトランザクション分散装置1aが負荷係数を決定してもよい。
なお、ステップS1210に先立って、送受信処理部111が、処理サーバ定義テーブル113aを参照することによって、該処理サーバIDに対応する処理サーバ名を取得し、通信回線5を介して、この処理サーバ名をクライアント3に送信してもよい。この場合、クライアント3には、処理サーバ名と平均処理時間が表示されることとなり、ステップS1211では、この処理サーバ名と負荷係数が送受信処理部111によって受信される。そして、その後、トランザクション分散処理部112aが、処理サーバ定義テーブル113aを検索して、該当する処理サーバIDを取得してもよい。
また、第1実施形態における図6のステップS604および第2実施形態における図11のステップS604で、総入力データ長が最小の処理サーバ2を選択したが、小さい値であれば最小でなくてもよい。
また、第1実施形態における図6のステップS604および第2実施形態における図11のステップS604で、総入力データ長が最小の処理サーバ2を選択したが、小さい値であれば最小でなくてもよい。
[プログラム]
なお、トランザクション分散装置1,1a(図1および図7参照)は、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、ハードディスクドライブ、入出力インターフェースなどを含んで構成されるコンピュータを用いて具現され、図1および図7に示す送受信処理部111、トランザクション分散処理部112,112a、統計情報処理部118の各部の機能は、このコンピュータのハードディスクドライブに格納されたプログラムをRAMに展開し、CPUが実行することで具現される。
なお、トランザクション分散装置1,1a(図1および図7参照)は、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、ハードディスクドライブ、入出力インターフェースなどを含んで構成されるコンピュータを用いて具現され、図1および図7に示す送受信処理部111、トランザクション分散処理部112,112a、統計情報処理部118の各部の機能は、このコンピュータのハードディスクドライブに格納されたプログラムをRAMに展開し、CPUが実行することで具現される。
1,1a トランザクション分散装置
2 処理サーバ
3 クライアント
4 通信回線
5 通信回線
11,11a メモリ
17,17a ハードディスク
111 送受信処理部
112,112a トランザクション分散処理部
113,113a 処理サーバ定義テーブル
114 クライアント定義テーブル
115 負荷情報管理テーブル
116,116a 入力データ管理テーブル
117 オペレーティングシステム
118 統計情報処理部
171 統計情報テーブル
2 処理サーバ
3 クライアント
4 通信回線
5 通信回線
11,11a メモリ
17,17a ハードディスク
111 送受信処理部
112,112a トランザクション分散処理部
113,113a 処理サーバ定義テーブル
114 クライアント定義テーブル
115 負荷情報管理テーブル
116,116a 入力データ管理テーブル
117 オペレーティングシステム
118 統計情報処理部
171 統計情報テーブル
Claims (4)
- クライアントおよび処理サーバに接続し、情報の送受信を行う送受信処理部、処理サーバの負荷情報を管理する負荷情報管理テーブル、システムの定義情報を保持する定義テーブル、負荷情報に基づいて各処理サーバにトランザクションの分散を行うトランザクション分散処理部を備えるトランザクション分散装置におけるトランザクション分散方法であって、
前記送受信処理部が、
前記クライアントから入力データを受信し、
前記トランザクション分散処理部が、
前記入力データを基に、入力データ長を算出し、
前記負荷情報管理テーブルの総入力データ長を参照して総入力データ長が小さい処理サーバを検索し、
前記定義テーブルを基に、該当する処理サーバを特定し、
前記負荷情報管理テーブルを検索し、前記特定した処理サーバに対応する総入力データ長に前記入力データ長の値を加算し、
前記送受信処理部が、
前記特定した処理サーバに、入力データを送信すること
を特徴とするトランザクション分散方法。 - 前記トランザクション分散装置は、統計情報処理部をさらに備え、
前記統計情報処理部は、
負荷係数を設定し、
前記トランザクション分散処理部は、
前記総入力データ長に加算される入力データ長は、前記入力データ長に前記負荷係数を乗算した値であることを特徴とする請求項1に記載のトランザクション分散方法。 - 請求項1または請求項2に記載のトランザクション分散方法を、コンピュータに実行させることを特徴とするトランザクション分散プログラム。
- クライアントおよび処理サーバに接続し、情報の送受信を行う送受信処理部、処理サーバの負荷情報を管理する負荷情報管理テーブル、システムの定義情報を保持する定義テーブル、負荷情報に基づいて各処理サーバにトランザクションの分散を行うトランザクション分散処理部を備えるトランザクション分散装置であって、
各処理サーバ毎に処理中のトランザクションの入力データ長の総和を求め、トランザクション受付時に入力データ長の総和が少ない処理サーバにトランザクションを振り分ける機能を有することを特徴とするトランザクション分散装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005298876A JP2007108992A (ja) | 2005-10-13 | 2005-10-13 | トランザクション分散方法、トランザクション分散プログラムおよびトランザクション分散装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005298876A JP2007108992A (ja) | 2005-10-13 | 2005-10-13 | トランザクション分散方法、トランザクション分散プログラムおよびトランザクション分散装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007108992A true JP2007108992A (ja) | 2007-04-26 |
Family
ID=38034816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005298876A Pending JP2007108992A (ja) | 2005-10-13 | 2005-10-13 | トランザクション分散方法、トランザクション分散プログラムおよびトランザクション分散装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007108992A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014229221A (ja) * | 2013-05-27 | 2014-12-08 | 日本電気株式会社 | 制御装置、管理システム、サーバの負荷分散方法 |
JP2015220667A (ja) * | 2014-05-20 | 2015-12-07 | 日本電気株式会社 | 通信制御システム、通信システム、通信制御方法および通信制御プログラム |
-
2005
- 2005-10-13 JP JP2005298876A patent/JP2007108992A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014229221A (ja) * | 2013-05-27 | 2014-12-08 | 日本電気株式会社 | 制御装置、管理システム、サーバの負荷分散方法 |
JP2015220667A (ja) * | 2014-05-20 | 2015-12-07 | 日本電気株式会社 | 通信制御システム、通信システム、通信制御方法および通信制御プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6970929B2 (en) | Vector-based, clustering web geographic information system and control method thereof | |
JP6766270B2 (ja) | カスタムデジタルコンポーネント | |
EP3210134B1 (en) | Composite partition functions | |
US7630960B2 (en) | Data processing systems and methods for data retrieval | |
JP3987880B2 (ja) | サーバ・クライアント・システム、負荷分散装置、負荷分散方法および負荷分散プログラム | |
US8166203B1 (en) | Server selection based upon time and query dependent hashing | |
US20230036089A1 (en) | Testing systems and methods | |
JP5719323B2 (ja) | 分散処理システム、ディスパッチャおよび分散処理管理装置 | |
JP2020038675A (ja) | レイテンシの削減 | |
US8972418B2 (en) | Dynamic generation of relevant items | |
JP2008538428A5 (ja) | ||
JP2013015991A (ja) | 情報処理装置、サーバ選択方法、及びプログラム | |
CN111400301A (zh) | 一种数据查询方法、装置及设备 | |
US8150970B1 (en) | Work load distribution among server processes | |
JP2007108992A (ja) | トランザクション分散方法、トランザクション分散プログラムおよびトランザクション分散装置 | |
JP2001318942A (ja) | 情報提供システムおよび仲介装置 | |
US20210037090A1 (en) | Systems and Methods for Server Failover and Load Balancing | |
JP5204303B2 (ja) | データ結合システム及びデータ結合方法 | |
JP2006260074A (ja) | Cadデータ管理装置 | |
JP2007128382A (ja) | クラスタシステムの性能予測方法および装置 | |
CN113783919A (zh) | 访问请求分流方法、系统、设备及存储介质 | |
JP4051462B2 (ja) | グリッドシステムにおけるデータ配布方法、グリッドシステム、グリッド仲介装置、グリッド仲介プログラム | |
CN109088913A (zh) | 请求数据的方法和负载均衡服务器 | |
JP6075051B2 (ja) | サーバ装置、電子会議システム及びプログラム | |
JP5432196B2 (ja) | 管理装置および管理方法 |