JP6233141B2 - データベースシステム、データベースサーバ、データベースサーバプログラム、データベースクライアント及びデータベースクライアントプログラム - Google Patents

データベースシステム、データベースサーバ、データベースサーバプログラム、データベースクライアント及びデータベースクライアントプログラム Download PDF

Info

Publication number
JP6233141B2
JP6233141B2 JP2014069471A JP2014069471A JP6233141B2 JP 6233141 B2 JP6233141 B2 JP 6233141B2 JP 2014069471 A JP2014069471 A JP 2014069471A JP 2014069471 A JP2014069471 A JP 2014069471A JP 6233141 B2 JP6233141 B2 JP 6233141B2
Authority
JP
Japan
Prior art keywords
database
processing
client
server
transaction
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
JP2014069471A
Other languages
English (en)
Other versions
JP2015191533A (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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2014069471A priority Critical patent/JP6233141B2/ja
Publication of JP2015191533A publication Critical patent/JP2015191533A/ja
Application granted granted Critical
Publication of JP6233141B2 publication Critical patent/JP6233141B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、データベースシステム、データベースサーバ、データベースサーバプログラム、データベースクライアント及びデータベースクライアントプログラムに関し、例えば、データベースシステムにおけるトランザクション流量制御(輻輳制御)に適用し得る。
一般に、データベースサーバ・クライアントシステム(以下、「DB−S/Cシステム」と呼ぶ)では、データベースクライアント(以下、「DBクライアント」と呼ぶ)からデータベースサーバ(以下、「DBサーバ」と呼ぶ)に対して接続セッションを生成し、データ検索要求や更新要求、すなわち、トランザクションを送信し、結果を受信する。
DBクライアントにおいて生成する接続セッションは、複数生成することにより並列度が増す。つまり、生成する接続セッション数により、DBクライアントの最大スループットが増加することになる。
しかし、これは、DBサーバから見れば複数の接続セッションから、トランザクションを並列に受信、処理するため、サーバ負荷が増加することを意味する。
また、DBクライアントが複数台接続される構成の場合、各DBクライアントは全DBクライアントからどのくらいのトランザクションが送信されていて、DBサーバの負荷状態がどうなっているかを知る手段を持ち合わせていない。
従来、DBサーバの負荷を制御する技術として特許文献1の記載技術がある。
特許文献1には、複数の端末とゲートウェイとDBサーバとからなるシステムについて記載されている。そして、特許文献1に記載されたシステムでは、DBサーバへの通信要求メッセージ数が所定の数を超えた端末(DBクラアント)に対し、ゲートウェイが当該端末からの呼を破棄することについて記載されている。
特開2007−243406号公報
ところで、従来のDB−S/Cシステムにおいて、DBクライアントは、サービスを提供するアプリケーション(以下、「APL」と呼ぶ)プロセスを用いて接続セッションを生成し、DBサーバにアクセスする構成がある。
接続セッション上のトランザクションは、DBクライアントからの要求に対して、DBサーバから応答を受信する事で完結し、次の要求を送信できる。つまり、接続セッション上の送受信は、シーケンシャルとなるため、ハードウェア性能、ソフトウェア性能、ネットワーク性能等から、スループットが算出されることになる。
例えば、DBサーバのトランザクション処理性能が100件/秒であり、接続セッション1本あたりのスループットが5件/秒の時、4台のDBクライアントから計10本の接続セッションによるトランザクション送受信を行うとすれば、DBサーバの負荷は、データベースアクセス性能の50%程度であると言える。
以上のように、従来のDB−S/Cシステムでは、DBクライアントの処理性能が接続セッション数により制限されることから、システム性能を十分に発揮できない場合があるという課題がある。
例えば、上述のDB−S/Cシステムの例では、DBサーバの性能100件/秒に対し、接続DBクライアント数4台であるため、DBサーバ性能を各DBクライアントに均等分配すると、25件/秒、つまり、接続可能なセッション数はそれぞれ5本、ということになり、DBクライアント視点では、DBクライアント装置の性能を十分に利用できないということになる。これは、DBクライアントからのトランザクション量が常に一定で、且つ、最大スループットである、という可能性は低いと考えられるからである。
そのため、データベースサーバ及びデータベースクライアントを効率的に動作させることができるデータベースシステム、データベースサーバ、データベースサーバプログラム、データベースクライアント及びデータベースクライアントプログラムが望まれている。
第1の本発明は、複数のデータベースクライアントと、上記データベースクライアントのそれぞれからのデータベース処理要求に応じたデータベース処理を実行するデータベースサーバとを備えるデータベースシステムにおいて、(1)上記データベースサーバは、(1−1)上記データベースクライアントからのデータベース処理要求に応じてデータベース処理を実行するデータベース処理部と、(1−2)上記データベース処理部が行っているデータベース処理の処理量を、上記データベースクライアントごとに集計して取得する処理量取得手段と、(1−3)上記データベース処理部が行うデータベース処理を制御するものであって、上記データベース処理部の全体の処理量がサーバ側閾値を超えた場合に、処理量がクライアント側閾値を超えている上記データベースクライアントの有無を確認し、該当する上記データベースクライアントがあった場合に、当該データベースクライアントに対して、データベース処理の要求量がクライアント側閾値以下となるように規制を要求するためのトランザクション規制通知を送信するトランザクション処理制御手段とを有し、(2)それぞれの上記データベースクライアントは、(2−1)上記データベースサーバにデータベース処理の要求を送信するデータベース処理要求手段と、(2−2)上記データベースサーバから、上記トランザクション規制通知を受信した場合、上記トランザクション規制通知に基づき、上記データベース処理要求手段が要求するデータベース処理の処理量を制限する制御を行うデータベース処理要求制御手段とを有することを特徴とする。
第2の本発明は、複数のデータベースクライアントからのデータベース処理要求に応じたデータベース処理を実行するデータベースサーバにおいて、(1)上記データベースクライアントからのデータベース処理要求に応じてデータベース処理を実行するデータベース処理部と、(2)上記データベース処理部が行っているデータベース処理の処理量を、上記データベースクライアントごとに集計して取得する処理量取得手段と、(3)上記データベース処理部が行うデータベース処理を制御するものであって、上記データベース処理部の全体の処理量がサーバ側閾値を超えた場合に、処理量がクライアント側閾値を超えている上記データベースクライアントの有無を確認し、該当する上記データベースクライアントがあった場合に、当該データベースクライアントに対して、データベース処理の要求量がクライアント側閾値以下となるように規制を要求するためのトランザクション規制通知を送信するトランザクション処理制御手段とを有することを特徴とする。
第3の本発明は、データベースサーバに、データベース処理要求を送信するデータベースクライアントにおいて、(1)上記データベースサーバにデータベース処理の要求を送信するデータベース処理要求手段と、(2)上記データベースサーバから、データベース処理の要求を規制する旨のトランザクション規制通知を受信した場合、上記トランザクション規制通知に基づき、上記データベース処理要求手段が要求するデータベース処理の処理量を制限する制御を行うデータベース処理要求制御手段とを有することを特徴とする。
第4の本発明は、複数のデータベースクライアントからのデータベース処理要求に応じたデータベース処理を実行するデータベースサーバプログラムにおいて、コンピュータを、(1)上記データベースクライアントからのデータベース処理要求に応じてデータベース処理を実行するデータベース処理部と、(2)上記データベース処理部が行っているデータベース処理の処理量を、上記データベースクライアントごとに集計して取得する処理量取得手段と、(3)上記データベース処理部が行うデータベース処理を制御するものであって、上記データベース処理部の全体の処理量がサーバ側閾値を超えた場合に、処理量がクライアント側閾値を超えている上記データベースクライアントの有無を確認し、該当する上記データベースクライアントがあった場合に、当該データベースクライアントに対して、データベース処理の要求量がクライアント側閾値以下となるように規制を要求するためのトランザクション規制通知を送信するトランザクション処理制御手段として機能させることを特徴とする。
第5の本発明は、データベースサーバに、データベース処理要求を送信するデータベースクライアントプログラムにおいて、コンピュータを、(1)上記データベースサーバにデータベース処理の要求を送信するデータベース処理要求手段と、(2)上記データベースサーバから、データベース処理の要求を規制する旨のトランザクション規制通知を受信した場合、上記トランザクション規制通知に基づき、上記データベース処理要求手段が要求するデータベース処理の処理量を制限する制御を行うデータベース処理要求制御手段として機能させることを特徴とする。
本発明によれば、データベースサーバ及びデータベースクライアントを効率的に動作させるデータベースシステムを提供することができる。
実施形態に係るデータベースシステムの全体構成について示したブロック図である。 実施形態に係るデータベースサーバで保持される規制条件情報の例(その1)である。 実施形態に係るデータベースサーバで保持される規制条件情報の例(その2)である。 実施形態に係るデータベースサーバの動作について示したフローチャート(その1)である。 実施形態に係るデータベースサーバの動作について示したフローチャート(その2)である。 実施形態に係るデータベースクライアントの動作について示したフローチャートである。
(A)主たる実施形態
以下、本発明によるデータベースシステム、データベースサーバ、データベースサーバプログラム、データベースクライアント及びデータベースクライアントプログラムの一実施形態を、図面を参照しながら詳述する。以下では、本発明のデータベースシステムを、DB−S/Cシステム1に適用した場合について説明する。
(A−1)実施形態の構成
図1は、この実施形態のDB−S/Cシステム1の全体構成を示すブロック図である。
DB−S/Cシステム1は、DBサーバ10と、4台のDBクライアント20(20−1〜20−4)を有している。なお、DB−S/Cシステム1において配置されるDBサーバ10及びDBクライアント20の数は限定されないものである。
DBサーバ10は、例えば、CPUやメモリ等を有するコンピュータに、データベースサーバプログラムを含むプログラムをインストールすることにより構築することができる。また、各DBクライアント20についても同様にコンピュータにデータベースクライアントプログラムを含むプログラムをインストールすることにより構築することができる。
DBサーバ10は、データベースのデータを記憶するためのDBファイルシステム13、各DBクライアント20にDBファイルシステム13に記憶されたデータベースを利用したサービスを提供(トランザクションの処理を実行)するサーバプロセス11、及び、DBサーバ10と各DBクライアント20との間のトランザクション処理の流量制御(輻輳制御)を行うトランザクショントラヒック管理部12を有している。
トランザクショントラヒック管理部12は、サーバプロセス11の動作状態を監視する。具体的には、トランザクショントラヒック管理部12は、DBクライアント20毎の処理量(例えば、処理されるトランザクションの単位時間あたりの処理件数やCPU使用率等)を監視(集計)することにより、サーバプロセス11による処理負荷の総量(負荷状態)も監視する。また、トランザクショントラヒック管理部12は、サーバプロセス11が輻輳状態となった場合に、各DBクライアント20を制御して、サーバプロセス11が安定的に動作するようにする。
例えば、トランザクショントラヒック管理部12は、サーバプロセス11の処理量に応じて、サーバプロセス11が輻輳状態であるか否かを判定し、輻輳状態と判定した場合には、トランザクション処理規制の発動を各DBクライアント20に通知(以下、「輻輳規制通知」と呼ぶ)する。輻輳規制通知を受信した各DBクライアント20は、その輻輳規制通知に基づき、必要に応じて、トランザクション処理要求の規制(抑制)を実行する。また、サーバプロセス11は、その後サーバプロセス11の動作状態に応じて、トランザクション処理規制を解除した旨を各DBクライアント20に通知(以下、「輻輳規制解除通知」と呼ぶ)する。輻輳規制解除通知を受信した各DBクライアント20は、トランザクション処理要求の規制を行っていた場合、その規制を中止する。
DB−S/Cシステム1では、以上のような制御処理(以下、「トランザクション制御処理」と呼ぶ)が行われる。トランザクショントラヒック制御の詳細については後述する。
DBクライアント20には、DBサーバ10のデータベースにアクセスするAPLプロセス21、及びAPLプロセス21を介してDBサーバ10のデータベースを利用するアプリケーション(APLプロセス21の上位層に位置するアプリケーション)であるAPL上位層23を有している。APL上位層23の構成については限定されないものであり、種々のアプリケーションプログラムを適用することができる。
APLプロセス21には、自身のトランザクション要求を制御するトランザクション制御部22が搭載されている。トランザクション制御部22は、DBサーバ10から通知される輻輳規制通知及び輻輳規制解除通知に応じて、APLプロセス21のトランザクション要求の量(トランザクション送信量)の規制及び規制解除を行う。
トランザクション制御部22は、APL上位層23(例えば、DBサーバ10のデータベースのデータを利用する上位アプリケーション)からのデータベースアクセス要求受付時(トランザクション実行受付時)に、DBサーバ10ヘのトランザクションの送信可否を判断し、当該トランザクション送信ができない状況である場合APL上位層23へその旨を通知したり、当該トランザクションを待ち行列等で管理する等の処理を行う。
次に、DBサーバ10のトランザクショントラヒック管理部12、及びDBクライアント20のトランザクション制御部22が行うトランザクショントラヒック制御について説明する。
DB−S/Cシステム1では、DBサーバ10(サーバプロセス11)のトランザクション処理に係る処理量、及び各DBクライアント20のトランザクション処理に係る処理量に基づいて、トランザクショントラヒック制御(トランザクション処理の規制制御等)を行う。具体的には、DB−S/Cシステム1では、各装置のトランザクション処理の処理量と、所定の閾値(以下、「流量規制閾値」と呼ぶ)との比較結果に応じて、トランザクション処理の規制開始や規制解除を実行する。
上述の通り、DBサーバ10のトランザクショントラヒック管理部12では、サーバプロセス11でのトランザクションの処理量を監視・集計し、その処理量がDBサーバ10側の流量規制閾値(以下、「DBサーバ閾値」と呼ぶ)を超えた場合に、DBサーバ10が輻輳状態になったと判断し、トランザクション処理の規制を開始する。このとき、トランザクショントラヒック管理部12は、各DBクライアント20に輻輳規制通知を通知する処理等により、各DBクライアント20にからDBサーバ10(サーバプロセス11)へのトランザクション要求の量がDBクライアント20側の流量規制閾値(以下、「DBクライアント閾値」と呼ぶ)を超えないように規制する制御を行う。そして、トランザクショントラヒック管理部12は、サーバプロセス11でのトランザクションの処理量がDBサーバ閾値を下回るようになった場合に、DBサーバ10が輻輳状態でなくなったと判断し、トランザクション処理の規制を解除する処理を開始する。このとき、トランザクショントラヒック管理部12は、各DBクライアント20に輻輳規制解除通知を通知する処理等により、各DBクライアント20からDBサーバ10(サーバプロセス11)へのトランザクション要求の規制を解除する。
DB−S/Cシステム1において、流量規制閾値(DBクライアント閾値及びDBサーバ閾値)に用いるパラメータ(トランザクショントラヒック管理部12が集計、管理するデータの種類)については限定されないものであるが、例えば、単位時間あたりのトランザクション処理量(処理件数)を用いるようにしてもよい。
例えば、DBサーバ10のトランザクショントラヒック管理部12において、サーバプロセス11と接続しているDBクライアント20(データベース処理の通信セッションが確立しているDBクライアント20)ごとに、実行中のトランザクションを定周期で集計(監視)し、その結果から、DBクライアント20毎のトランザクション量、つまり、各DBクライアント20のDBサーバ10へ負荷、及び、全DBクライアント20の負荷を元に、DBサーバ10全体の負荷状況を計算することができる。
ここでは、DBサーバ10は、1秒あたり100件のトランザクションを実行可能(100件/秒)であるものとする。また、以下では、DBクライアント20から同時に20セッションの接続を可能(同時に20個のトランザクションを並行処理可能)とするものとする。さらに、DBサーバ10において、1本のセッションで1秒間に処理可能なトランザクション数は5件(5件/秒)であるものとする。したがって、DBサーバ10が同時に20本のセッションでトランザクション処理を受付けた場合、性能の100%の使用率となり、それ以上のトランザクション要求を受けると輻輳状態となる。また、これにより、DBクライアント20からの最大スループットを、100件/秒とすることも可能となり、DBクライアント20性能の100%を利用可能とする。
この実施形態において、トランザクショントラヒック管理部12には、トランザクション処理の規制を行う際の流量規制閾値について定義した情報として、規制条件情報12aを保持している。そして、トランザクショントラヒック管理部12は、起動時にこの規制条件情報12aを読み込んでトランザクション処理の制御(トランザクション処理の規制等)を行う。
トランザクショントラヒック管理部12は、規制条件情報12aで定義された流量規制閾値(DBクライアント閾値及びDBサーバ閾値)に基づいて、各DBクライアント20からのトランザクション量の変動、つまり、閾値未満から閾値超過に、または、闘値以上から閾値未満に変換が無いかをチェックし、その結果により、トランザクション処理の規制または、解除が必要となるDBクライアント20に対して、その旨(輻輳規制通知又は輻輳規制解除通知)を通知する。
図2は、規制条件情報12aの構成例について示している。
図2に示す規制条件情報12aでは、DBクライアント閾値として26件/秒、DBサーバ閾値として96件/秒が設定されている。
ここでは、DBサーバ閾値として、DBサーバ10の性能を100%使い切らない程度の閾値として96件/秒が設定されているものとする。なお、DBサーバ10の性能を100%使い切る場合には、DBサーバ閾値は100件/秒となる。そして、ここでは、DBサーバ閾値(96件/秒)を4台のDBクライアント20で等分した24件/秒(DBサーバ閾値をDBクライアント20の台数で割った値)が、DBクライアント閾値に設定されているものとする。
規制条件情報12aの内容が図2のように設定されている場合、DBサーバ10の負荷状況に応じて、DBクライアント20はDBサーバ10性能を最大96%まで利用できることになる。また、全DBクライアント20から負荷が高い場合は、DBサーバ10の性能を24%(96/4=24%)でシェアする条件まで規制することができる。
また、この実施形態のDB−S/Cシステム1において、流量規制閾値に用いるパラメータは、トランザクションの処理件数に限定されず、各装置(DBサーバ10及びDBクライアント20)を構成するコンピュータのCPU使用率に換算した値(例えば、トランザクション毎にCPU使用率に変換した値)としてもよい。
流量規制閾値に用いるパラメータとしてCPU使用率を適用した場合、トランザクショントラヒック監視処理が保持する規制条件情報12aの内容は、例えば、図3の内容となる。
図3に示す規制条件情報12aの内容は、図2に示す規制条件情報12aのトランザクション件数をCPU使用率に換算した場合の内容となっている。そのため、図3に示す規制条件情報12aでは、DBクライアント閾値としてCPU使用率26%、DBサーバ閾値としてCPU使用率96%が設定されている。なお、ここでは、DBクライアント20側で1秒間に1件のトランザクション処理を要求する場合のCPU使用率は1%であるものとする。また、DBサーバ10側で1秒間に1件のトランザクション処理を実行する場合のCPU使用率も1%であるものとする。
規制条件情報12aの内容が図3のように設定されている場合も、上述の図2の場合と同様に、DBサーバ10の動作状況(負荷状況)に応じて、DBクライアント20はDBサーバ10性能を最大96%まで利用できることになる。また、全DBクライアント20から負荷が高い場合も、上述の図2の場合と同様に、DBサーバ10の性能を24%(96/4=24%)でシェアする条件まで規制することができる。
なお、トランザクショントラヒック管理部12は、各DBクライアント20のトランザクション処理に係る処理量については、サーバプロセス11でのトランザクションの受付け状況から取得するようにしてもよいし、各DBクライアント20(トランザクション制御部22)から直接取得するようにしてもよい
(A−2)実施形態の動作
次に、以上のような構成を有するこの実施形態のDB−S/Cシステム1の動作を説明する。
以下では、DB−S/Cシステム1において、流量規制閾値のパラメータとしてトランザクションの処理件数が適用される場合(規制条件情報12aとして上述の図2の内容が適用される場合)と、流量規制閾値のパラメータとしてCPU使用率が適用される場合(規制条件情報12aとして上述の図3の内容が適用される場合)について説明する。
まず、DBサーバ10(トランザクショントラヒック管理部12)の動作について、図4、図5のフローチャートを用いて説明する。
DBサーバ10のトランザクショントラヒック管理部12は、起動時に規制条件情報12aからトランザクショントラヒック制御に用いる流量規制閾値(DBクライアント閾値及びDBサーバ閾値)を読込む(S101)。
そして、トランザクショントラヒック管理部12は、サーバプロセス11で接続中のセッション及びトランザクションの実行状況をチェック(トランザクション処理量をチェック)し(S102)、流量規制閾値(DBサーバ閾値、及びDBクライアント閾値)との比較結果に基づくトランザクション処理の規制要否の判定を行う(S103)。
そして、トランザクショントラヒック管理部12は、規制要否の判断結果を確認し(S104)、規制要という判断だった場合後述するステップS105から動作し、規制不要という判断結果だった場合は後述するステップS107から動作する。
トランザクション処理の規制要という判断だった場合、トランザクショントラヒック管理部12は、現在トランザクション処理の規制中であるか非規制中であるかを確認し(S105)、トランザクション処理の非規制中だった場合、各DBクライアント20に輻輳規制通知を通知し(S106)、上述のステップS102の処理に戻って動作する。
一方、上述のステップS105で、トランザクション処理の規制中と確認された場合には、トランザクショントラヒック管理部12は、上述のステップS102に戻って動作する。
一方、上述のステップS104で、トランザクション処理の規制不要と確認された場合、トランザクショントラヒック管理部12は、現在トランザクション処理の規制中であるか非規制中であるかを確認し(S107)、トランザクション処理の規制中だった場合、各DBクライアント20に輻輳規制解除通知を通知し(S108)上述のステップS102の処理に戻って動作する。
一方、上述のステップS107で、トランザクション処理の非規制中と確認された場合には、トランザクショントラヒック管理部12は、上述のステップS102に戻って動作する。
次に、トランザクショントラヒック管理部12が、流量規制閾値に基づいてトランザクション処理の規制の要否を判定する処理(上述のステップS102、S103の処理)を行う際の詳細について図4のフローチャートを用いて説明する。
まず、トランザクショントラヒック管理部12が、サーバプロセス11の動作状況をチェックし、各DBクライアント20に係るトランザクション処理の処理量を集計する(S201)。
そして、トランザクショントラヒック管理部12は、トランザクションの処理量がDBクライアント閾値を超えるDBクライアント20が存在するか否かを確認し(S202)、該当するDBクライアント20が存在する場合には後述するステップS203から動作し、該当するDBクライアント20が存在しない場合には、ステップS204に移行して規制不要と判断する。
上述のステップS202で、トランザクションの処理量がDBクライアント閾値を超えるDBクライアント20が存在すると判定された場合、トランザクショントラヒック管理部12は、サーバプロセス11全体の処理量がDBサーバ閾値を超えるか否かを確認する(S203)。このとき、トランザクショントラヒック管理部12は、DBサーバ閾値を超えると判定した場合には、ステップS205に移行してトランザクション処理の規制要と判断し、そうでないと判定した場合にはステップS204に移行してトランザクションの規制不要と判定する。
DB−S/Cシステム1において、流量規制閾値のパラメータとしてトランザクションの処理件数が適用される場合(規制条件情報12aとして上述の図2の内容が適用される場合)、上述のステップS201で、トランザクショントラヒック管理部12は、DBクライアント20ごとのトランザクション処理件数(件/秒)を集計し、さらに、サーバプロセス11全体のトランザクション処理件数(件/秒)も把握する。そして、トランザクショントラヒック管理部12は、上述のステップS202で、DBクライアント閾値(24件/秒)を超えるDBクライアント20の有無を確認し、上述のステップS203でサーバプロセス11のトランザクション処理件数がDBサーバ閾値(96件/秒)を超えているか否かを確認する。したがって、この場合、トランザクショントラヒック管理部12は、DBクライアント閾値(24件/秒)を超えるDBクライアント20があり、さらに、サーバプロセス11のトランザクション処理件数がDBサーバ閾値(96件/秒)を超えている場合に規制要と判断する。なお、トランザクショントラヒック管理部12は、DBクライアント閾値(24件/秒)を超えるDBクライアント20があっても、サーバプロセス11のトランザクション処理件数がDBサーバ閾値(96件/秒)を超えていない場合は規制不要と判断(24件/秒を超えるDBクライアント20を許容すると判断)する。
DB−S/Cシステム1において、流量規制閾値のパラメータとしてCPU使用率が適用される場合(規制条件情報12aとして上述の図3の内容が適用される場合)、上述のステップS201で、トランザクショントラヒック管理部12は、DBクライアント20ごとのCPU使用率(%)を集計し、さらに、サーバプロセス11全体のCPU使用率(%)も把握する。そして、トランザクショントラヒック管理部12は、上述のステップS202で、DBクライアント閾値(CPU使用率24%)を超えるDBクライアント20の有無を確認し、上述のステップS203でサーバプロセス11のトランザクション処理件数がDBサーバ閾値(CPU使用率96%)を超えているか否かを確認する。したがって、この場合、トランザクショントラヒック管理部12は、DBクライアント閾値(CPU使用率24%)を超えるDBクライアント20があり、さらに、サーバプロセス11のトランザクション処理件数がDBサーバ閾値(CPU使用率96%)を超えている場合に規制要と判断する。なお、トランザクショントラヒック管理部12は、DBクライアント閾値(CPU使用率24%)を超えるDBクライアント20があっても、サーバプロセス11のトランザクション処理件数がDBサーバ閾値(CPU利用率96%)を超えていない場合は規制不要と判断(CPU使用率24%を超えるDBクライアント20を許容すると判断)する。
次に、DBクライアント20(トランザクション制御部22)の動作について説明する。
DBクライアント20(トランザクション制御部22)は、DBサーバ10からの輻輳規制通知を受信した場合には、輻輳規制解除通知を受けるまで、APL上位層23からのDBアクセス要求に対して、トランザクションの規制中の動作条件に基づいて処理を実施する。
ここでは、DBサーバ10からの輻輳規制通知の内容には、トランザクションの規制の内容(DBクライアント閾値)も含まれているものとする。すなわち、DBクライアント20(トランザクション制御部22)は、輻輳規制通知に含まれるDBクライアント閾値を受信することにより、トランザクション要求をどのくらい規制すれば良いかを判断することができる。
DBクライアント20(トランザクション制御部22)では、接続セッションの利用状況、つまり、現在のトランザクション要求の送信量を把握できるため、輻輳規制通知(DBクライアント閾値)に合致するトランザクション量まで制限する事が可能となる。DBクライアント20(トランザクション制御部22)がトランザクション処理の規制中に、APL上位層23からDBアクセスの要求を受付け、当該DBアクセスの要求を受付けることができない場合には、例えば、APL上位層23へエラーを返却(DBアクセスが不可である旨のエラー通知)する処理や、規制解除まで当該DBアクセスの要求を、キュー(待ち行列)に蓄積して、DBクライアント閾値の範囲内でDBサーバ10に送信する等の構成を適用することができる。
また、DBクライアント20(トランザクション制御部22)は、DBアクセス要求の種別毎に、規制条件を付与し、優先制御する事も可能である。例えば、DBクライアント20(トランザクション制御部22)は、トランザクション処理の規制中状態であっても(最低24件/秒のDBサーバ10利用は可能であるわけだから)あるサービスによるDBアクセスは優先的にトランザクション要求を送信し、それ以外のDBアクセス要求は規制対象とすることも可能である。
上述のようなDBクライアント20(トランザクション制御部22)の処理をフローチャートで示すと図5のようになる。
図5のフローチャートは、DBクライアント20において、APLプロセス21がAPL上位層23からDBアクセス要求を受付けた場合の処理について示している。
トランザクション制御部22は、APLプロセス21が、APL上位層23からDBアクセスの要求を受付けたことを確認すると(S301)、輻輳規制中(輻輳規制通知が通知された後輻輳規制解除通知が通知されていない状態)であるか否かを確認する(S302)。そして、トランザクション制御部22は、輻輳規制中と判断した場合には後述するステップS303から動作し、輻輳規制中でないと確認された場合には、後述するステップS305から動作する。
輻輳規制中であると確認された場合、トランザクション制御部22は、現在のAPLプロセス21によるトランザクションの要求状況を確認する(S303)。
次に、トランザクション制御部22は、DBサーバ10から通知された輻輳規制通知に含まれるDBクライアント閾値と、上述のステップS303で確認した要求状況とに基づいて、今回APL上位層23から要求されたDBアクセス要求に基づくトランザクション要求の規制の要否を判定する(S304)。
この場合、トランザクション制御部22は、ステップS303で確認した値が、DBクライアント閾値を超えていない場合には、トランザクション要求の規制不要と判断して、APLプロセス21に今回のトランザクション要求を送信させ(S305)処理を終了する。一方、ステップS303で確認した値が、DBクライアント閾値を超える場合に、トランザクション制御部22は、APLプロセス21に今回のトランザクション要求を規制する処理(例えば、上述のAPL上位層23へエラーを返却する処理等)を行う(S306)。
DB−S/Cシステム1において、流量規制閾値のパラメータとしてトランザクションの処理件数(件/秒)が適用される場合(規制条件情報12aとして上述の図2の内容が適用される場合)、上述のステップS303で、トランザクション制御部22は、自装置のトランザクション処理件数(件/秒)を確認し、上述のステップS304で輻輳規制通知で指定されたDBクライアント閾値(24件/秒)と比較する。そして、トランザクション制御部22は、自装置のトランザクション処理件数(件/秒)がDBクライアント閾値(24件/秒)を超える場合、トランザクション処理要求の規制が必要と判断し、上述のステップS306で、今回のトランザクション要求を規制する処理を行う。また、トランザクション制御部22は、自装置のトランザクション処理件数(件/秒)がDBクライアント閾値(24件/秒)を超えない場合、トランザクション処理要求の規制は不要と判断し、ステップS305で今回のトランザクション処理要求を送信する。
一方、 DB−S/Cシステム1において、流量規制閾値のパラメータとしてCPU使用率(%)が適用される場合(規制条件情報12aとして上述の図3の内容が適用される場合)、上述のステップS303で、トランザクション制御部22は、APLプロセス21のトランザクション要求処理によるCPU使用率(%)を確認し、上述のステップS304で輻輳規制通知で指定されたDBクライアント閾値(CPU使用率24%)と比較する。そして、トランザクション制御部22は、確認したCPU使用率(%)がDBクライアント閾値(CPU使用率24%)を超える場合、トランザクション処理要求の規制が必要と判断し、上述のステップS306で、今回のトランザクション要求を規制する処理を行う。また、トランザクション制御部22は、APLプロセス21のトランザクション要求処理によるCPU使用率(%)がDBクライアント閾値(24件/秒)を超えない場合、トランザクション処理要求の規制は不要と判断し、ステップS305で今回のトランザクション処理要求を送信する。
(A−3)実施形態の効果
この実施形態によれば、以下のような効果を奏することができる。
DB−S/Cシステム1では、DBサーバ10の負荷状況をモニタし、各DBクライアント20への輻輳規制通知を実施することで、DBクライアント20からDBサーバ10の性能を超えるトランザクション要求送信が発生することなく、DBクライアント20はDBサーバ10の輻輳規制を受信することで、DBサーバ10の輻輳をAPL上位層23(例えば、APL上位層23を利用するユーザ)に通知することができる。
また、DBサーバ10の負荷が小さい時には、1台のDBクライアント20が、DBサーバ10性能を最大限まで利用することができる。
(B)他の実施形態
本発明は、上記の実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
(B−1)上記の実施形態では、トランザクショントラヒック管理部12が使用する流量規制閾値(規制条件情報12a)は固定値であるものとして説明したが動的な値としてもよい。例えば、トランザクショントラヒック管理部12は、時間帯に応じて適用する流量規制閾値(規制条件情報12a)を変更するようにしてもよい。例えば、DBサーバ10上で、ある時間帯に夜間バッチ処理が実施される場合は、その時間帯に限定して、接続してくるDBクライアント20からのトランザクション流量を規制することも可能となる。
また、トランザクショントラヒック管理部12において、DBクライアント20毎に適用する閾値を変更可能としてもよい。例えば、DBクライアント20毎に提供するサービスが異なり、それに伴い、DBアクセスの発生量にも差がある場合には、閾値を各々定義することで、効率よくDBサーバ10を利用し、輻輳規制の条件についても、適正値を用いることが可能となる。
さらにまた、トランザクショントラヒック管理部12において、現在サーバプロセス11にセッション接続中のDBクライアント20の数に応じて、DBクライアント閾値を変更するようにしてもよい。例えば、上記の実施形態では、説明を簡易とするため、4台のDBクライアント20−1〜20−4がDBサーバ10に接続する構成として説明したが、多数のDBクライアント20が存在し、そのうち同時にDBサーバ10に接続するDBクライアント20の数が時間帯による変動する構成としてもよい。この場合、トランザクショントラヒック管理部12が、サーバプロセス11にセッション接続中のDBクライアント20の数Mを確認し、DBクライアント閾値をセッション数Mで割った値をDBクライアント閾値(DBクライアント閾値=DBサーバ閾値/M)としてもよい。
(B−2)上記の実施形態では、DBサーバ10とDBクライアント20との間の規制通知(輻輳規制通知及び輻輳規制解除通知の通知方式)については、規制または解除発生時にDBサーバ10から通知する「通知型」だったが、これは、例えば、DBクライアント20から定期的にDBサーバ10に規制状態を確認する「ポーリング型」でも良い。
1…DB−S/Cシステム、10…DBサーバ、11…サーバプロセス、12…トランザクショントラヒック管理部、12a…規制条件情報、13…DBファイルシステム
20、20−1〜20−4…DBクライアント、21…APLプロセス、22…トランザクション制御部、23…APL上位層。

Claims (7)

  1. 複数のデータベースクライアントと、上記データベースクライアントのそれぞれからのデータベース処理要求に応じたデータベース処理を実行するデータベースサーバとを備えるデータベースシステムにおいて、
    上記データベースサーバは、
    上記データベースクライアントからのデータベース処理要求に応じてデータベース処理を実行するデータベース処理部と、
    上記データベース処理部が行っているデータベース処理の処理量を、上記データベースクライアントごとに集計して取得する処理量取得手段と、
    上記データベース処理部が行うデータベース処理を制御するものであって、上記データベース処理部の全体の処理量がサーバ側閾値を超えた場合に、処理量がクライアント側閾値を超えている上記データベースクライアントの有無を確認し、該当する上記データベースクライアントがあった場合に、当該データベースクライアントに対して、データベース処理の要求量がクライアント側閾値以下となるように規制を要求するためのトランザクション規制通知を送信するトランザクション処理制御手段とを有し。
    それぞれの上記データベースクライアントは、
    上記データベースサーバにデータベース処理の要求を送信するデータベース処理要求手段と、
    上記データベースサーバから、上記トランザクション規制通知を受信した場合、上記トランザクション規制通知に基づき、上記データベース処理要求手段が要求するデータベース処理の処理量を制限する制御を行うデータベース処理要求制御手段とを有する
    ことを特徴とするデータベースシステム。
  2. 上記サーバ側閾値は、単位時間あたりに上記データベース処理部が実行するデータベース処理の件数の上限であり、
    上記クライアント側閾値は、単位時間あたりに上記データベース処理要求手段が、上記データベースサーバにデータベース処理の要求を行う要求件数の上限である
    ことを特徴とする請求項1に記載のデータベースシステム。
  3. 上記サーバ側閾値は、上記データベースサーバ上で、上記データベース処理部が使用するCPU使用率の上限であり、
    上記クライアント側閾値は、上記データベースクライアント上で、上記データベース処理要求手段が使用するCPU使用率の上限であること
    ことを特徴とする請求項1に記載のデータベースシステム。
  4. 複数のデータベースクライアントからのデータベース処理要求に応じたデータベース処理を実行するデータベースサーバにおいて、
    上記データベースクライアントからのデータベース処理要求に応じてデータベース処理を実行するデータベース処理部と、
    上記データベース処理部が行っているデータベース処理の処理量を、上記データベースクライアントごとに集計して取得する処理量取得手段と、
    上記データベース処理部が行うデータベース処理を制御するものであって、上記データベース処理部の全体の処理量がサーバ側閾値を超えた場合に、処理量がクライアント側閾値を超えている上記データベースクライアントの有無を確認し、該当する上記データベースクライアントがあった場合に、当該データベースクライアントに対して、データベース処理の要求量がクライアント側閾値以下となるように規制を要求するためのトランザクション規制通知を送信するトランザクション処理制御手段と
    を有することを特徴とするデータベースサーバ。
  5. データベースサーバに、データベース処理要求を送信するデータベースクライアントにおいて、
    上記データベースサーバにデータベース処理の要求を送信するデータベース処理要求手段と、
    上記データベースサーバから、データベース処理の要求を規制する旨のトランザクション規制通知を受信した場合、上記トランザクション規制通知に基づき、上記データベース処理要求手段が要求するデータベース処理の処理量を制限する制御を行うデータベース処理要求制御手段と
    を有することを特徴とするデータベースクライアント。
  6. 複数のデータベースクライアントからのデータベース処理要求に応じたデータベース処理を実行するデータベースサーバプログラムにおいて、
    コンピュータを、
    上記データベースクライアントからのデータベース処理要求に応じてデータベース処理を実行するデータベース処理部と、
    上記データベース処理部が行っているデータベース処理の処理量を、上記データベースクライアントごとに集計して取得する処理量取得手段と、
    上記データベース処理部が行うデータベース処理を制御するものであって、上記データベース処理部の全体の処理量がサーバ側閾値を超えた場合に、処理量がクライアント側閾値を超えている上記データベースクライアントの有無を確認し、該当する上記データベースクライアントがあった場合に、当該データベースクライアントに対して、データベース処理の要求量がクライアント側閾値以下となるように規制を要求するためのトランザクション規制通知を送信するトランザクション処理制御手段と
    して機能させることを特徴とするデータベースサーバプログラム。
  7. データベースサーバに、データベース処理要求を送信するデータベースクライアントプログラムにおいて、
    コンピュータを、
    上記データベースサーバにデータベース処理の要求を送信するデータベース処理要求手段と、
    上記データベースサーバから、データベース処理の要求を規制する旨のトランザクション規制通知を受信した場合、上記トランザクション規制通知に基づき、上記データベース処理要求手段が要求するデータベース処理の処理量を制限する制御を行うデータベース処理要求制御手段と
    して機能させることを特徴とするデータベースクライアントプログラム。
JP2014069471A 2014-03-28 2014-03-28 データベースシステム、データベースサーバ、データベースサーバプログラム、データベースクライアント及びデータベースクライアントプログラム Active JP6233141B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014069471A JP6233141B2 (ja) 2014-03-28 2014-03-28 データベースシステム、データベースサーバ、データベースサーバプログラム、データベースクライアント及びデータベースクライアントプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014069471A JP6233141B2 (ja) 2014-03-28 2014-03-28 データベースシステム、データベースサーバ、データベースサーバプログラム、データベースクライアント及びデータベースクライアントプログラム

Publications (2)

Publication Number Publication Date
JP2015191533A JP2015191533A (ja) 2015-11-02
JP6233141B2 true JP6233141B2 (ja) 2017-11-22

Family

ID=54425952

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014069471A Active JP6233141B2 (ja) 2014-03-28 2014-03-28 データベースシステム、データベースサーバ、データベースサーバプログラム、データベースクライアント及びデータベースクライアントプログラム

Country Status (1)

Country Link
JP (1) JP6233141B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6583076B2 (ja) * 2016-03-17 2019-10-02 沖電気工業株式会社 データベースクライアント、データベースクライアントプログラム、データベースクライアント制御方法及びデータベースシステム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002304334A (ja) * 2001-04-06 2002-10-18 Matsushita Electric Ind Co Ltd ダウンロードシステム
KR100866857B1 (ko) * 2003-10-29 2008-11-04 인터내셔널 비지네스 머신즈 코포레이션 정보 시스템, 부하 제어 방법, 부하 제어 프로그램 및 기록매체
JP4110129B2 (ja) * 2004-09-24 2008-07-02 株式会社日立製作所 コンピュータシステムの制御方法、コンピュータシステム、および、制御プログラム
JP4455520B2 (ja) * 2006-03-07 2010-04-21 日本電信電話株式会社 コール制御システムとコール制御サーバ装置および方法

Also Published As

Publication number Publication date
JP2015191533A (ja) 2015-11-02

Similar Documents

Publication Publication Date Title
WO2010100859A1 (ja) 分散システム
US8429282B1 (en) System and method for avoiding system overload by maintaining an ideal request rate
US8392558B1 (en) System and method for determining overload state for service requests
US20180349178A1 (en) A method and system for scalable job processing
JP5173388B2 (ja) 情報処理装置および情報処理方法
JP2018532172A (ja) リソーススケジューリングのための方法およびシステム
US11438271B2 (en) Method, electronic device and computer program product of load balancing
WO2016188282A1 (zh) 一种消息处理方法、装置及系统
US20170185456A1 (en) Dynamically scaled web service deployments
CN113364697A (zh) 流量控制方法、装置、设备及计算机可读存储介质
JP4834622B2 (ja) ビジネスプロセス運用管理システム、方法、プロセス運用管理装置およびそのプログラム
JP2007249829A (ja) 内部ネットワーク間通信システム及び情報処理装置及び中継情報処理装置及び通信制御プログラム及び内部ネットワーク間における通信制御方法及び遠隔障害管理システム及び被管理装置及び管理装置
CN112448987A (zh) 一种熔断降级的触发方法、系统和存储介质
JP6233141B2 (ja) データベースシステム、データベースサーバ、データベースサーバプログラム、データベースクライアント及びデータベースクライアントプログラム
JP2014041404A (ja) ターミナルサービス監視装置
US8380850B1 (en) System and method for damping overload state oscillations
WO2015059849A1 (ja) 通信システム、共通サービス制御装置、データ送信方法及び非一時的なコンピュータ可読媒体
KR100716170B1 (ko) 네트워크 관리 시스템에서의 명령 재시도 장치 및 방법
JP5351839B2 (ja) オーダ処理方法、プログラムおよびネットワークシステム
JP6204287B2 (ja) 分散処理方法、処理サーバ、および、プログラム
JP5943866B2 (ja) 情報処理装置、方法およびプログラム
JP2006012065A (ja) 資源負荷適正化管理システム
CN112698927A (zh) 双向通信方法、装置、电子设备及机器可读存储介质
US20140114614A1 (en) Remote monitoring system, remote monitoring apparatus, communication apparatus, and remote monitoring method
JP7353836B2 (ja) 情報処理装置、方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170830

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171009

R150 Certificate of patent or registration of utility model

Ref document number: 6233141

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150