IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特開2024-53468制御方法、制御プログラム、および情報処理装置
<>
  • 特開-制御方法、制御プログラム、および情報処理装置 図1
  • 特開-制御方法、制御プログラム、および情報処理装置 図2
  • 特開-制御方法、制御プログラム、および情報処理装置 図3
  • 特開-制御方法、制御プログラム、および情報処理装置 図4
  • 特開-制御方法、制御プログラム、および情報処理装置 図5
  • 特開-制御方法、制御プログラム、および情報処理装置 図6
  • 特開-制御方法、制御プログラム、および情報処理装置 図7
  • 特開-制御方法、制御プログラム、および情報処理装置 図8
  • 特開-制御方法、制御プログラム、および情報処理装置 図9
  • 特開-制御方法、制御プログラム、および情報処理装置 図10
  • 特開-制御方法、制御プログラム、および情報処理装置 図11
  • 特開-制御方法、制御プログラム、および情報処理装置 図12
  • 特開-制御方法、制御プログラム、および情報処理装置 図13
  • 特開-制御方法、制御プログラム、および情報処理装置 図14
  • 特開-制御方法、制御プログラム、および情報処理装置 図15
  • 特開-制御方法、制御プログラム、および情報処理装置 図16
  • 特開-制御方法、制御プログラム、および情報処理装置 図17
  • 特開-制御方法、制御プログラム、および情報処理装置 図18
  • 特開-制御方法、制御プログラム、および情報処理装置 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024053468
(43)【公開日】2024-04-15
(54)【発明の名称】制御方法、制御プログラム、および情報処理装置
(51)【国際特許分類】
   G06F 16/2458 20190101AFI20240408BHJP
【FI】
G06F16/2458
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022159778
(22)【出願日】2022-10-03
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【弁理士】
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】末廣 芳隆
(72)【発明者】
【氏名】友藤 正雄
(72)【発明者】
【氏名】段林 重之
(72)【発明者】
【氏名】尾屋家 剛
(72)【発明者】
【氏名】岡田 隼人
(72)【発明者】
【氏名】斎藤 主税
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175CA01
(57)【要約】
【課題】処理負荷の低減化を図ること。
【解決手段】情報処理装置100は、実行環境#1に関する統計情報に基づいて、実行環境#1が有するデータ群のうち、母標準偏差が第1基準値未満であるデータグループ#2を特定する。情報処理装置100は、データグループ#2となるデータAおよびデータBを含むデータ群を有する実行環境#3を特定する。情報処理装置100は、データグループ#2をアクセス単位とする新たなクエリを、実行環境#3に送信するよう、システムを制御する。これにより、情報処理装置100は、システム全体の処理負荷の増大化を抑制しつつ、実行環境#1の処理負荷の低減化を図ることができる。情報処理装置100は、例えば、システムが、ECショップを実現していれば、ECショップに対するアクセス集中時のサービスの性能低下を抑制することができ、サービス利用者に対するレスポンス速度の低下を抑制することができる。
【選択図】図1
【特許請求の範囲】
【請求項1】
異なるデータ群を有する複数の実行環境に含まれる第1実行環境が有する第1データ群のうち、クエリのアクセス単位となるデータグループごとに、当該クエリによる処理負荷に関する統計値を示す統計情報に基づいて、前記第1データ群のうち、クエリによる処理負荷が第1基準値未満である第1データグループを特定し、
前記第1実行環境以外で、前記複数の実行環境に含まれる、特定した前記第1データグループを含む第2データ群を有する第2実行環境を特定し、
特定した前記第1データグループをアクセス単位とする新たなクエリを、特定した前記第2実行環境に送信するよう、前記複数の実行環境を制御する、
処理をコンピュータが実行することを特徴とする制御方法。
【請求項2】
前記第2実行環境を特定する処理は、
前記第1実行環境以外で、前記複数の実行環境に含まれる、特定した前記第1データグループを含み、かつ、前記第1データ群のうち、特定した前記第1データグループ以外の少なくともいずれかのデータを含まない第2データ群を有する第2実行環境を特定する、ことを特徴とする請求項1に記載の制御方法。
【請求項3】
前記第2実行環境を特定する処理は、
現時点における前記複数の実行環境のそれぞれの実行環境の処理負荷に関する測定値に基づいて、前記第1実行環境以外で、前記複数の実行環境に含まれる、特定した前記第1データグループを含むデータ群を有し、かつ、他の実行環境より処理負荷に関する測定値が小さい第2実行環境を特定する、ことを特徴とする請求項1に記載の制御方法。
【請求項4】
前記統計値は、クエリを受け付けた回数を含み、
前記第1データグループを特定する処理は、
前記統計情報に基づいて、前記第1データ群のうち、クエリによる処理負荷が前記第1基準値未満であり、かつ、クエリを受け付けた回数に関する指標値が所定値以上である第1データグループを特定する、ことを特徴とする請求項1~3のいずれか一つに記載の制御方法。
【請求項5】
前記統計情報に基づいて、前記第1データ群のうち、クエリによる処理負荷が第2基準値以上である第2データグループを特定し、
特定した前記第2データグループを含み、かつ、少なくとも前記第1データ群のいずれかのデータを含まない第3データ群を有する、前記複数の実行環境とは異なる新たな第3実行環境を生成し、前記複数の実行環境に追加し、
特定した前記第2データグループをアクセス単位とする新たなクエリを、追加した前記第3実行環境に送信するよう、前記複数の実行環境を制御する、
処理を前記コンピュータが実行することを特徴とする請求項1~3のいずれか一つに記載の制御方法。
【請求項6】
前記統計情報に基づいて、前記第1データ群のうち、特定した前記第2データグループについて、クエリによる処理負荷が第3基準値未満になったことを検出した場合、追加した前記第3実行環境を、前記複数の実行環境から削除し、
特定した前記第2データグループをアクセス単位とする新たなクエリを、前記複数の実行環境のうち、特定した前記第2データグループを含む第4データ群を有する第4実行環境に送信するよう、前記複数の実行環境を制御する、
処理を前記コンピュータが実行することを特徴とする請求項5に記載の制御方法。
【請求項7】
特定した前記第1データグループをアクセス単位とする新たなクエリを、検索した前記第2実行環境に送信する場合について、クエリによる処理負荷に対する低減効果の大きさを示す第1指標値を算出し、
特定した前記第2データグループをアクセス単位とする新たなクエリを、追加した前記第3実行環境に送信する場合について、クエリによる処理負荷に対する低減効果の大きさを示す第2指標値を算出する、
処理を前記コンピュータが実行し、
前記第2実行環境に送信する処理は、
算出した前記第1指標値が、算出した前記第2指標値より一定値以上大きい場合には、特定した前記第1データグループをアクセス単位とする新たなクエリを、特定した前記第2実行環境に送信するよう、前記複数の実行環境を制御し、
前記第3実行環境に送信する処理は、
算出した前記第1指標値が、算出した前記第2指標値より前記一定値以上大きくない場合には、特定した前記第2データグループをアクセス単位とする新たなクエリを、追加した前記第3実行環境に送信するよう、前記複数の実行環境を制御する、ことを特徴とする請求項5に記載の制御方法。
【請求項8】
異なるデータ群を有する複数の実行環境に含まれる第1実行環境が有する第1データ群のうち、クエリのアクセス単位となるデータグループごとに、当該クエリによる処理負荷に関する統計値を示す統計情報に基づいて、前記第1データ群のうち、クエリによる処理負荷が第1基準値未満である第1データグループを特定し、
前記第1実行環境以外で、前記複数の実行環境に含まれる、特定した前記第1データグループを含む第2データ群を有する第2実行環境を特定し、
特定した前記第1データグループをアクセス単位とする新たなクエリを、特定した前記第2実行環境に送信するよう、前記複数の実行環境を制御する、
処理をコンピュータに実行させることを特徴とする制御プログラム。
【請求項9】
異なるデータ群を有する複数の実行環境に含まれる第1実行環境が有する第1データ群のうち、クエリのアクセス単位となるデータグループごとに、当該クエリによる処理負荷に関する統計値を示す統計情報に基づいて、前記第1データ群のうち、クエリによる処理負荷が第1基準値未満である第1データグループを特定し、
前記第1実行環境以外で、前記複数の実行環境に含まれる、特定した前記第1データグループを含む第2データ群を有する第2実行環境を特定し、
特定した前記第1データグループをアクセス単位とする新たなクエリを、特定した前記第2実行環境に送信するよう、前記複数の実行環境を制御する、
制御部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御方法、制御プログラム、および情報処理装置に関する。
【背景技術】
【0002】
従来、異なるテーブル群を有する1以上のコンテナを配備し、複数の実行環境のそれぞれの実行環境が、1以上のコンテナのいずれかのコンテナが有するテーブル群を利用して所定の演算を実施するようにしたシステムが存在する。例えば、それぞれのコンテナの処理状況に応じて、テーブル群を有するコンテナを増設または撤去することが望まれる場合がある。増設は、例えば、スケールアウトとも呼ばれる。撤去は、例えば、スケールインとも呼ばれる。
【0003】
先行技術としては、例えば、収集した移行元エージェント処理プログラムのクエリ状態表から作成したサーバ状態表に基づいて、各クエリの移行コストを算出し、移行コストが小さいクエリを移行クエリとして選択し、選択したクエリを移行するものがある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010-140357号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、スケールアウトを実施すると、システム全体にかかる処理負荷の増大化を招くという問題がある。例えば、スケールアウトを実施する際、増設する新たなコンテナを作成することになり、システム全体にかかる処理負荷の増大化を招く。例えば、スケールアウトを実施する際、増設する新たなコンテナが記憶するテーブル群のサイズが大きいほど、システム全体にかかる処理負荷の増大化を招く。
【0006】
1つの側面では、本発明は、処理負荷の低減化を図ることを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様によれば、異なるデータ群を有する複数の実行環境に含まれる第1実行環境が有する第1データ群のうち、クエリのアクセス単位となるデータグループごとに、当該クエリによる処理負荷に関する統計値を示す統計情報に基づいて、前記第1データ群のうち、クエリによる処理負荷が第1基準値未満である第1データグループを特定し、前記第1実行環境以外で、前記複数の実行環境に含まれる、特定した前記第1データグループを含む第2データ群を有する第2実行環境を特定し、特定した前記第1データグループをアクセス単位とする新たなクエリを、特定した前記第2実行環境に送信するよう、前記複数の実行環境を制御する制御方法、制御プログラム、および情報処理装置が提案される。
【発明の効果】
【0008】
一態様によれば、処理負荷の低減化を図ることが可能になる。
【図面の簡単な説明】
【0009】
図1図1は、実施の形態にかかる制御方法の一実施例を示す説明図である。
図2図2は、実施の形態にかかる制御方法の別の実施例を示す説明図である。
図3図3は、情報処理システム300の一例を示す説明図である。
図4図4は、情報処理システム300の具体例を示す説明図である。
図5図5は、情報処理装置100のハードウェア構成例を示すブロック図である。
図6図6は、統計情報管理テーブル600の記憶内容の一例を示す説明図である。
図7図7は、クエリ情報管理テーブル700の記憶内容の一例を示す説明図である。
図8図8は、情報処理装置100の機能的構成例を示すブロック図である。
図9図9は、高負荷クエリを特定する一例を示す説明図である。
図10図10は、スケールアウトの評価値を算出する一例を示す説明図である。
図11図11は、退避の評価値を算出する一例を示す説明図である。
図12図12は、退避を実施する一例を示す説明図(その1)である。
図13図13は、退避を実施する一例を示す説明図(その2)である。
図14図14は、スケールアウトを実施する一例を示す説明図(その1)である。
図15図15は、スケールアウトを実施する一例を示す説明図(その2)である。
図16図16は、スケールインを実施する一例を示す説明図(その1)である。
図17図17は、スケールインを実施する一例を示す説明図(その2)である。
図18図18は、スケールインを実施する一例を示す説明図(その3)である。
図19図19は、全体処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に、図面を参照して、本発明にかかる制御方法、制御プログラム、および情報処理装置の実施の形態を詳細に説明する。
【0011】
(実施の形態にかかる制御方法の一実施例)
図1は、実施の形態にかかる制御方法の一実施例を示す説明図である。情報処理装置100は、データ群を有するコンテナを管理するためのコンピュータである。データ群のデータは、例えば、DB(DataBase)、テーブル、または、ファイルなどである。以下の説明では、データは「テーブル」であるとする。
【0012】
従来、異なるテーブル群を有する1以上のコンテナを配備し、所定の演算を実施する複数の実行環境のそれぞれの実行環境が、1以上のコンテナのいずれかのコンテナが有するテーブル群を利用して、所定の演算を実施するようにしたシステムが存在する。コンテナは、具体的には、実行環境の一種である。当該システムは、例えば、コンピュータクラスタである。当該システムは、例えば、クラウド上に実現される。
【0013】
当該システムは、具体的には、所定の演算を実施する、仮想マシンおよびプライベートクラウドなどのそれぞれ種類が異なる複数の実行環境を含むハイブリッドクラウド上に実現される。ハイブリッドクラウドでは、仮想マシンおよびプライベートクラウドなどのそれぞれ種類が異なる複数の実行環境が、テーブル群を利用するため、テーブル群を有するコンテナを配備し、運用負荷の低減化を図ることが望まれる。当該システムは、例えば、EC(Electronic Commerce)ショップを実現する。
【0014】
ここで、それぞれのコンテナの処理状況に応じて、テーブル群を有するコンテナを増設または撤去することが望まれる場合がある。増設は、例えば、スケールアウトとも呼ばれる。撤去は、例えば、スケールインとも呼ばれる。例えば、いずれかのコンテナの処理負荷が増大したことに応じて、当該コンテナと同一のテーブル群を有する当該コンテナのレプリカを増設することが考えられる。
【0015】
具体的には、ECショップにおいて、ある期間に廉価販売を実施しようとする場合、ECショップの利用者数またはECショップのアクセス数などが増大し、それぞれのコンテナにかかる処理負荷が増大する傾向があるため、コンテナを増設することが望まれる。一方で、ECショップにおいて、廉価販売を実施する期間が終了した場合、ECショップの利用者数またはECショップのアクセス数などが減少し、それぞれのコンテナにかかる処理負荷が減少する傾向があるため、コンテナを撤去することが望まれる。例えば、コンテナを撤去しなければ、システムの運用コストの増大化を招くことになる。運用コストは、例えば、コンテナを実装するリソースのレンタル代または電気代などである。
【0016】
しかしながら、従来では、コンテナの増設を実施する際、システム全体にかかる処理負荷の増大化、または、システム全体の性能低下などを招くという問題がある。例えば、コンテナの増設を実施する際、増設する新たなコンテナを作成することになる。このため、増設する新たなコンテナを作成し終えるまで、システムが提供するサービスが停止し、または、システムが提供するサービスの性能が低下してしまうことがある。また、増設するシステム全体で、新たなコンテナを作成する処理を実施するため、システム全体にかかる処理負荷の増大化を招く。
【0017】
例えば、コンテナの増設を実施する際、増設する新たなコンテナが記憶するテーブル群のサイズが大きいほど、システム全体にかかる処理負荷の増大化を招く。具体的には、既存のコンテナから、増設する新たなコンテナにコピーするテーブル群のサイズが大きいほど、システム全体の通信帯域にかかる処理負荷の増大化を招く。また、具体的には、増設する新たなコンテナにコピーするテーブル群のサイズが大きいほど、増設する新たなコンテナを実装するリソース量が大きくなり、システムの運用コストの増大化を招き易い。また、既存のコンテナから、増設する新たなコンテナに、コピーしなくてもよいテーブルをコピーしてしまうことがあり、システムの運用コストの増大化を招き易い。
【0018】
そこで、本実施の形態では、システム全体の処理負荷の低減化を図ることができる制御方法について説明する。
【0019】
図1において、情報処理装置100は、複数の実行環境を制御可能である。実行環境は、例えば、コンテナまたは仮想マシンなどである。実行環境は、データ群を有する。データ群のデータは、例えば、テーブルである。複数の実行環境は、例えば、異なるデータ群を有する。複数の実行環境は、同一のデータ群を有する2以上の実行環境を含んでいてもよい。複数の実行環境は、システムを実現する。複数の実行環境は、例えば、サービスを提供するシステムを実現する。図1の例では、実行環境#1と、実行環境#2と、実行環境#3とが存在する。情報処理装置100は、例えば、複数の実行環境に、新規の実行環境を追加可能である。情報処理装置100は、例えば、複数の実行環境から、いずれかの既存の実行環境を削除可能である。
【0020】
情報処理装置100は、複数の実行環境に対するアクセスを制御可能である。情報処理装置100は、例えば、データグループにアクセスするクエリを、複数の実行環境のいずれの実行環境に送信するのかを制御可能である。データグループは、1以上のデータである。図1の例では、データグループ#1は、例えば、データAである。データグループ#2は、例えば、データAおよびデータBである。データグループ#3は、例えば、データCである。情報処理装置100は、具体的には、クエリを受付可能であり、複数の実行環境のうち、受け付けたクエリの送信先となる実行環境を特定可能であり、受け付けたクエリを、特定した実行環境に送信可能である。
【0021】
情報処理装置100は、統計情報を記憶する。統計情報は、複数の実行環境のいずれかの実行環境に関する情報である。統計情報は、複数の実行環境のいずれかの実行環境について、当該実行環境が有するデータ群のうち、クエリのアクセス単位となるデータグループごとに、当該クエリによる処理負荷に関する統計値を示す。統計情報は、例えば、複数の実行環境に含まれる第1実行環境が有する第1データ群のうち、クエリのアクセス単位となるデータグループごとに、当該クエリによる処理負荷に関する統計値を示す。
【0022】
統計値は、例えば、クエリの処理時間の平均時間、最小時間、および、最大時間などを含む。統計値は、例えば、クエリの処理時間に関する母標準偏差などを含む。統計値は、例えば、クエリを受け付けた回数を含む。情報処理装置100は、例えば、複数の実行環境のそれぞれの実行環境に関する統計情報を記憶していてもよい。
【0023】
(1-1)情報処理装置100は、複数の実行環境に含まれる第1実行環境に関する統計情報に基づいて、第1実行環境が有する第1データ群のうち、クエリによる処理負荷が第1基準値未満である第1データグループを特定する。情報処理装置100は、例えば、統計情報に基づいて、第1実行環境が有する第1データ群のうち、母標準偏差が第1基準値未満である第1データグループを特定する。図1の例では、情報処理装置100は、具体的には、実行環境#1に関する統計情報に基づいて、実行環境#1が有するデータ群のうち、母標準偏差が第1基準値未満であるデータグループ#2を特定する。
【0024】
これにより、情報処理装置100は、第1実行環境の処理負荷を抑制するために、いずれのデータグループをアクセス単位とするクエリの送信先を、第1実行環境から他の実行環境に変更することが好ましいのかを判断可能にすることができる。情報処理装置100は、具体的には、第1データグループをアクセス単位とするクエリの送信先を、第1実行環境から他の実行環境に変更することが好ましいと判断することができる。
【0025】
(1-2)情報処理装置100は、第1実行環境以外で、複数の実行環境に含まれる、特定した第1データグループを含む第2データ群を有する第2実行環境を特定する。図1の例では、情報処理装置100は、具体的には、データグループ#2となるデータAおよびデータBを含むデータ群を有する実行環境#3を特定する。これにより、情報処理装置100は、第1実行環境に代わり、第1データグループをアクセス単位とするクエリの送信先とする他の実行環境として、第2実行環境を特定することができる。
【0026】
(1-3)情報処理装置100は、特定した第1データグループをアクセス単位とする新たなクエリを、特定した第2実行環境に送信するよう、複数の実行環境に対する制御を実施する。情報処理装置100は、例えば、特定した第1データグループをアクセス単位とする新たなクエリを受け付けた際、受け付けた新たなクエリを、特定した第2実行環境に送信する。図1の例では、情報処理装置100は、具体的には、データグループ#2をアクセス単位とする新たなクエリを受け付けた際、受け付けた新たなクエリを、実行環境#3に送信する。
【0027】
これにより、情報処理装置100は、新たな実行環境の増設なしに、第1実行環境の処理負荷の低減化を図ることができる。情報処理装置100は、第1実行環境において、第1データグループをアクセス単位とするクエリ以外の、第1データグループ以外をアクセス単位とする他のクエリに利用可能なリソース量の増大化を図り、他のクエリに関する処理性能の向上を図ることができる。
【0028】
具体的には、例えば、第1実行環境において、第1データグループをアクセス単位とするクエリより相対的に処理負荷が大きい、第1データグループ以外をアクセス単位とする他のクエリを扱っている場合が考えられる。この場合、情報処理装置100は、例えば、第1実行環境において、相対的に処理負荷が大きい他のクエリに利用可能なリソース量の増大化を図り、相対的に処理負荷が大きい他のクエリに関する処理性能の向上を図ることができる。
【0029】
このため、情報処理装置100は、システム全体にかかる処理負荷の増大化、または、システム全体の性能低下などを、素早く抑制することができる。また、情報処理装置100は、システムの運用コストの増大化を抑制することができる。
【0030】
ここでは、情報処理装置100が、複数の実行環境に、新規の実行環境を追加可能である場合について説明したが、これに限らない。例えば、他のコンピュータが、複数の実行環境に、新規の実行環境を追加する機能を有する場合があってもよい。この場合、情報処理装置100は、他のコンピュータを制御することにより、複数の実行環境に、新規の実行環境を追加するよう、複数の実行環境を制御する。
【0031】
ここでは、情報処理装置100が、複数の実行環境から、いずれかの既存の実行環境を削除可能である場合について説明したが、これに限らない。例えば、他のコンピュータが、複数の実行環境から、いずれかの既存の実行環境を削除する機能を有する場合があってもよい。この場合、情報処理装置100は、他のコンピュータを制御することにより、複数の実行環境から、いずれかの既存の実行環境を削除するよう、複数の実行環境を制御する。
【0032】
ここでは、情報処理装置100が、受け付けたクエリを、複数の実行環境のいずれかの実行環境に送信可能である場合について説明したが、これに限らない。例えば、他のコンピュータが、クエリを受け付けて、複数の実行環境のいずれかの実行環境に送信する機能を有する場合があってもよい。この場合、情報処理装置100は、他のコンピュータを制御することにより、クエリを、複数の実行環境のいずれの実行環境に送信するのかを制御する。
【0033】
ここでは、情報処理装置100が、単独で動作する場合について説明したが、これに限らない。例えば、情報処理装置100が、他のコンピュータと協働する場合があってもよい。例えば、複数のコンピュータが、情報処理装置100としての機能を実現する場合があってもよい。具体的には、クラウド上に、情報処理装置100としての機能が実現される場合があってもよい。
【0034】
(実施の形態にかかる制御方法の別の実施例)
次に、図2を用いて、実施の形態にかかる情報処理方法の別の実施例について説明する。図2は、実施の形態にかかる制御方法の別の実施例を示す説明図である。
【0035】
図2において、情報処理装置100は、複数の実行環境を制御可能である。実行環境は、例えば、コンテナまたは仮想マシンなどである。実行環境は、データ群を有する。データ群のデータは、例えば、テーブルである。複数の実行環境は、例えば、異なるデータ群を有する。複数の実行環境は、同一のデータ群を有する2以上の実行環境を含んでいてもよい。図2の例では、実行環境#1と、実行環境#2と、実行環境#3とが存在する。情報処理装置100は、例えば、複数の実行環境に、新規の実行環境を追加可能である。情報処理装置100は、例えば、複数の実行環境から、いずれかの既存の実行環境を削除可能である。
【0036】
情報処理装置100は、複数の実行環境に対するアクセスを制御可能である。情報処理装置100は、例えば、データグループにアクセスするクエリを、複数の実行環境のいずれの実行環境に送信するのかを制御可能である。データグループは、1以上のデータである。図2の例では、データグループ#1は、例えば、データAである。データグループ#2は、例えば、データAおよびデータBである。データグループ#3は、例えば、データCである。情報処理装置100は、具体的には、クエリを受付可能であり、複数の実行環境のうち、受け付けたクエリの送信先となる実行環境を特定可能であり、受け付けたクエリを、特定した実行環境に送信可能である。
【0037】
情報処理装置100は、統計情報を記憶する。統計情報は、複数の実行環境のいずれかの実行環境に関する情報である。統計情報は、複数の実行環境のいずれかの実行環境について、当該実行環境が有するデータ群のうち、クエリのアクセス単位となるデータグループごとに、当該クエリによる処理負荷に関する統計値を示す。統計情報は、例えば、複数の実行環境に含まれる第1実行環境が有する第1データ群のうち、クエリのアクセス単位となるデータグループごとに、当該クエリによる処理負荷に関する統計値を示す。
【0038】
統計値は、例えば、クエリの処理時間の平均時間、最小時間、および、最大時間などを含む。統計値は、例えば、クエリの処理時間に関する母標準偏差などを含む。統計値は、例えば、クエリを受け付けた回数を含む。情報処理装置100は、例えば、複数の実行環境のそれぞれの実行環境に関する統計情報を記憶していてもよい。
【0039】
(2-1)情報処理装置100は、複数の実行環境に含まれる第1実行環境に関する統計情報に基づいて、第1実行環境が有する第1データ群のうち、クエリによる処理負荷が第1基準値以上である第1データグループを特定する。情報処理装置100は、例えば、統計情報に基づいて、第1実行環境が有する第1データ群のうち、母標準偏差が第1基準値以上である第1データグループを特定する。図2の例では、情報処理装置100は、具体的には、データグループ#3を特定する。
【0040】
これにより、情報処理装置100は、第1実行環境の処理負荷を抑制するために、いずれのデータグループをアクセス単位とするクエリの送信先として、新たな実行環境を用意することが好ましいのかを判断可能にすることができる。情報処理装置100は、具体的には、特定した第1データグループをアクセス単位とするクエリの送信先として、新たな実行環境を用意することが好ましいと判断することができる。
【0041】
(2-2)情報処理装置100は、特定した第1データグループを含み、かつ、少なくとも第1データ群のいずれかのデータを含まない第2データ群を有する、複数の実行環境とは異なる新たな第2実行環境を生成し、複数の実行環境に追加する。図2の例では、情報処理装置100は、具体的には、データグループ#3となるデータCを含むデータ群を有する実行環境#4を生成し、複数の実行環境に追加する。これにより、情報処理装置100は、特定した第1データグループをアクセス単位とするクエリの送信先として、新たな実行環境を用意することができる。
【0042】
(2-3)情報処理装置100は、特定した第1データグループをアクセス単位とする新たなクエリを、追加した第2実行環境に送信するよう、複数の実行環境に対する制御を実施する。情報処理装置100は、例えば、特定した第1データグループをアクセス単位とする新たなクエリを受け付けた際、受け付けた新たなクエリを、追加した第2実行環境に送信する。図2の例では、情報処理装置100は、具体的には、データグループ#3をアクセス単位とする新たなクエリを受け付けた際、受け付けた新たなクエリを、実行環境#4に送信する。
【0043】
これにより、情報処理装置100は、第1実行環境の処理負荷の低減化を図ることができる。情報処理装置100は、新たな第2実行環境を増設する際、第1データグループをアクセス単位とする新たなクエリを第2実行環境で処理可能にしつつ、第2実行環境が有する第2データ群のデータ量の低減化を図ることができる。このため、情報処理装置100は、第2実行環境を増設する際にシステム全体にかかる処理負荷および処理時間の増大化、または、システム全体の性能低下などを抑制することができる。また、情報処理装置100は、システムの運用コストの増大化を抑制することができる。
【0044】
ここでは、情報処理装置100が、複数の実行環境に、新規の実行環境を追加可能である場合について説明したが、これに限らない。例えば、他のコンピュータが、複数の実行環境に、新規の実行環境を追加する機能を有する場合があってもよい。この場合、情報処理装置100は、他のコンピュータを制御することにより、複数の実行環境に、新規の実行環境を追加するよう、複数の実行環境を制御する。
【0045】
ここでは、情報処理装置100が、複数の実行環境から、いずれかの既存の実行環境を削除可能である場合について説明したが、これに限らない。例えば、他のコンピュータが、複数の実行環境から、いずれかの既存の実行環境を削除する機能を有する場合があってもよい。この場合、情報処理装置100は、他のコンピュータを制御することにより、複数の実行環境から、いずれかの既存の実行環境を削除するよう、複数の実行環境を制御する。
【0046】
ここでは、情報処理装置100が、受け付けたクエリを、複数の実行環境のいずれかの実行環境に送信可能である場合について説明したが、これに限らない。例えば、他のコンピュータが、クエリを受け付けて、複数の実行環境のいずれかの実行環境に送信する機能を有する場合があってもよい。この場合、情報処理装置100は、他のコンピュータを制御することにより、クエリを、複数の実行環境のいずれの実行環境に送信するのかを制御する。
【0047】
ここでは、情報処理装置100が、単独で動作する場合について説明したが、これに限らない。例えば、情報処理装置100が、他のコンピュータと協働する場合があってもよい。例えば、複数のコンピュータが、情報処理装置100としての機能を実現する場合があってもよい。具体的には、クラウド上に、情報処理装置100としての機能が実現される場合があってもよい。
【0048】
ここで、情報処理装置100は、図1に示した実施例を実現する機能と、図2に示した実施例を実現する機能とを両方とも有する場合があってもよい。情報処理装置100は、図1に示した実施例を実現する機能と、図2に示した実施例を実現する機能とのいずれか一方の機能のみを有する場合があってもよい。以下の説明では、主に、情報処理装置100が、図1に示した実施例を実現する機能と、図2に示した実施例を実現する機能とを両方とも有する場合について説明する。
【0049】
(情報処理システム300の一例)
次に、図3を用いて、図1または図2に示した情報処理装置100を適用した、情報処理システム300の一例について説明する。
【0050】
図3は、情報処理システム300の一例を示す説明図である。図3において、情報処理システム300は、情報処理装置100と、1以上の通信制御装置301と、1以上の情報蓄積装置302と、1以上のクライアント装置303とを含む。
【0051】
情報処理システム300において、情報処理装置100と通信制御装置301とは、有線または無線のネットワーク310を介して接続される。ネットワーク310は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
【0052】
情報処理システム300において、情報処理装置100と情報蓄積装置302とは、有線または無線のネットワーク310を介して接続される。情報処理システム300において、情報処理装置100とクライアント装置303とは、有線または無線のネットワーク310を介して接続される。
【0053】
情報処理システム300において、通信制御装置301と情報蓄積装置302とは、有線または無線のネットワーク310を介して接続される。情報処理システム300において、通信制御装置301とクライアント装置303とは、有線または無線のネットワーク310を介して接続される。情報処理システム300において、情報蓄積装置302とクライアント装置303とは、有線または無線のネットワーク310を介して接続される。
【0054】
情報処理装置100は、異なるテーブル群を有する複数のコンテナを制御可能である。コンテナは、実行環境に対応する。テーブル群を有するコンテナは、例えば、情報蓄積装置302によって実行される。情報処理装置100は、例えば、コンテナを実現する情報蓄積装置302を制御可能である。情報処理装置100は、具体的には、新たなコンテナを生成するよう、情報蓄積装置302を制御可能である。情報処理装置100は、具体的には、既存のコンテナを削除するよう、情報蓄積装置302を制御可能である。
【0055】
情報処理装置100は、コンテナに対するアクセスを制御可能である。情報処理装置100は、例えば、コンテナに対するクエリを中継する通信制御装置301を制御可能である。情報処理装置100は、例えば、コンテナに対するクエリを中継する通信制御装置301を制御可能である。
【0056】
情報処理装置100は、それぞれのコンテナに関する統計情報を記憶する。統計情報は、コンテナが有するテーブル群のうち、クエリのアクセス単位となるテーブルグループごとに、当該クエリによる処理負荷に関する統計値を示す。情報処理装置100は、例えば、図6に後述する統計情報管理テーブル600を記憶する。
【0057】
統計情報管理テーブル600は、例えば、コンテナごとに用意される。統計情報管理テーブル600は、複数のコンテナに関する統計情報を纏めて記憶して管理していてもよい。以下の説明では、統計情報管理テーブル600が、コンテナごとに用意される場合について説明する。統計値は、例えば、クエリの処理時間の平均時間、最小時間、および、最大時間などを含む。統計値は、例えば、クエリの処理時間に関する母標準偏差などを含む。統計値は、例えば、クエリを受け付けた回数を含む。
【0058】
情報処理装置100は、統計情報管理テーブル600を参照して、いずれかのテーブルグループをアクセス単位とするクエリの送信先とするコンテナを変更するよう、通信制御装置301を制御することにより、情報処理システム300の処理負荷の低減化を図る。情報処理装置100は、統計情報管理テーブル600を参照して、いずれかのテーブルグループをアクセス単位とするクエリの送信先となるコンテナを生成するよう、情報蓄積装置302を制御することにより、情報処理システム300の処理負荷の低減化を図る。
【0059】
情報処理装置100は、クエリの送信先を、図7に後述するクエリ情報管理テーブル700に記憶することにより管理する。情報処理装置100は、クエリの送信先を変更し、クエリを変更前の送信先であるコンテナから変更後の送信先であるコンテナに送信することを、クエリ情報管理テーブル700に記憶することにより管理する。以下の説明では、クエリを、変更後の送信先であるコンテナに送信することを「退避」と表記する場合がある。情報処理装置100は、クエリのアクセス単位となるテーブルグループと、変更後の送信先であるコンテナとを対応付けて、クエリ情報管理テーブル700に記憶することにより管理する。
【0060】
情報処理装置100は、クエリの送信先とする新たなコンテナを生成したことを、クエリ情報管理テーブル700に記憶することにより管理する。情報処理装置100は、クエリのアクセス単位となるテーブルグループと、送信先とする新たなコンテナとを対応付けて、クエリ情報管理テーブル700に記憶することにより管理する。情報処理装置100は、クエリ情報管理テーブル700を参照して、新たなクエリを、当該クエリに対応するコンテナを実現する情報蓄積装置302に送信するよう、通信制御装置301を制御する。情報処理装置100は、例えば、サーバ、または、PC(Personal Computer)などである。
【0061】
通信制御装置301は、クエリを、情報蓄積装置302に送信するコンピュータである。通信制御装置301は、いずれかのテーブルグループをアクセス単位とするクエリを、クライアント装置303から受信する。通信制御装置301は、情報処理装置100の制御に従い、受信したクエリを、受信したクエリのアクセス単位となるテーブルグループに対応するコンテナを実現する情報蓄積装置302に送信する。通信制御装置301は、例えば、サーバ、または、PCなどである。
【0062】
情報蓄積装置302は、テーブル群を有するコンテナを実現するコンピュータである。情報蓄積装置302は、情報処理装置100の制御に従い、自装置で、新たなコンテナを生成することがある。情報蓄積装置302は、情報処理装置100の制御に従い、自装置で実行中である既存のコンテナを削除することがある。情報蓄積装置302は、自装置が有するテーブル群に含まれるテーブルグループをアクセス単位とするクエリを、通信制御装置301から受信する。情報蓄積装置302は自装置が有するテーブル群に含まれるテーブルグループをアクセス単位とするクエリを受け付けたことに応じて、クエリに対する応答を生成し、通信制御装置301に送信する。情報蓄積装置302は、例えば、サーバ、または、PCなどである。
【0063】
クライアント装置303は、クエリを、通信制御装置301に送信するコンピュータである。クライアント装置303は、例えば、利用者の操作入力に基づき、いずれかのテーブルグループをアクセス単位とするクエリを生成し、通信制御装置301に送信する。クライアント装置303は、送信したクエリに対する応答を、通信制御装置301から受信する。クライアント装置303は、例えば、情報蓄積装置302のテーブルを参照して、サービスを実現することがある。クライアント装置303は、例えば、サーバ、PC、タブレット端末、または、スマートフォンなどである。
【0064】
ここでは、情報処理装置100が、通信制御装置301とは異なる装置である場合について説明したが、これに限らない。例えば、情報処理装置100が、通信制御装置301としての機能を有し、通信制御装置301としても動作する場合があってもよい。
【0065】
ここでは、情報処理装置100が、情報蓄積装置302とは異なる装置である場合について説明したが、これに限らない。例えば、情報処理装置100が、情報蓄積装置302としての機能を有し、情報蓄積装置302としても動作する場合があってもよい。
【0066】
ここでは、情報処理装置100が、クライアント装置303とは異なる装置である場合について説明したが、これに限らない。例えば、情報処理装置100が、クライアント装置303としての機能を有し、クライアント装置303としても動作する場合があってもよい。
【0067】
(情報処理システム300の具体例)
次に、図4を用いて、図3に示した情報処理システム300の具体例について説明する。
【0068】
図4は、情報処理システム300の具体例を示す説明図である。図4において、情報処理システム300は、制御コンテナ401と、負荷分散コンテナ402と、アプリケーションコンテナ403と、DBコンテナ404とを含む。情報処理システム300は、例えば、Kubernetes(登録商標)を利用して実現される。
【0069】
制御コンテナ401は、情報処理装置100によって実行される。制御コンテナ401は、例えば、図3に示した情報処理装置100としての機能を実現するためのコンテナである。負荷分散コンテナ402は、通信制御装置301によって実行される。負荷分散コンテナ402は、例えば、図3に示した通信制御装置301としての機能を実現するためのコンテナである。
【0070】
アプリケーションコンテナ403は、クライアント装置303によって実行される。アプリケーションコンテナ403は、例えば、図3に示したクライアント装置303としての機能を実現するためのコンテナである。アプリケーションコンテナ403は、例えば、DBコンテナ404を利用して、サービスを実現することがある。
【0071】
DBコンテナ404は、情報蓄積装置302によって実行される。DBコンテナ404は、例えば、図3に示した情報蓄積装置302としての機能を実現するためのコンテナである。DBコンテナ404は、例えば、postgre sql(登録商標)を利用して実現される。図中のReplicaのDBコンテナ404は、図中のMasterのDBコンテナ404の複製であることを示す。
【0072】
(情報処理システム300の利用例)
次に、図3に示した情報処理システム300の利用例について説明する。情報処理システム300は、例えば、ECショップを実現する。具体的には、アプリケーションコンテナ403が、ECショップを実現する。具体的には、アプリケーションコンテナ403が、ECショップを実現するために、DBコンテナ404が管理するデータにアクセスしようとする。具体的には、アプリケーションコンテナ403が、ECショップを実現し、サービス利用者に、ECショップのサービスを提供する。
【0073】
ECショップは、例えば、商品を販売し、または、チケットを販売するサービスを提供する。情報処理システム300によれば、ECショップに対するアクセス集中時のサービスの性能低下を抑制することができる。情報処理システム300によれば、例えば、ECショップに対するアクセス集中時における、サービス提供者からサービス利用者に対するレスポンス速度の低下を抑制することができる。情報処理システム300によれば、ECショップの運用コストの増大化を抑制することができる。
【0074】
(情報処理装置100のハードウェア構成例)
次に、図5を用いて、情報処理装置100のハードウェア構成例について説明する。
【0075】
図5は、情報処理装置100のハードウェア構成例を示すブロック図である。図5において、情報処理装置100は、CPU(Central Processing Unit)501と、メモリ502と、ネットワークI/F(Interface)503と、記録媒体I/F504と、記録媒体505とを有する。また、各構成部は、バス500によってそれぞれ接続される。
【0076】
ここで、CPU501は、情報処理装置100の全体の制御を司る。メモリ502は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU501のワークエリアとして使用される。メモリ502に記憶されるプログラムは、CPU501にロードされることにより、コーディングされている処理をCPU501に実行させる。
【0077】
ネットワークI/F503は、通信回線を通じてネットワーク310に接続され、ネットワーク310を介して他のコンピュータに接続される。そして、ネットワークI/F503は、ネットワーク310と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F503は、例えば、モデムやLANアダプタなどである。
【0078】
記録媒体I/F504は、CPU501の制御に従って記録媒体505に対するデータのリード/ライトを制御する。記録媒体I/F504は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体505は、記録媒体I/F504の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体505は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体505は、情報処理装置100から着脱可能であってもよい。
【0079】
情報処理装置100は、上述した構成部の他、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、情報処理装置100は、記録媒体I/F504や記録媒体505を複数有していてもよい。また、情報処理装置100は、記録媒体I/F504や記録媒体505を有していなくてもよい。
【0080】
(統計情報管理テーブル600の記憶内容)
次に、図6を用いて、統計情報管理テーブル600の記憶内容の一例について説明する。統計情報管理テーブル600は、例えば、図5に示した情報処理装置100のメモリ502や記録媒体505などの記憶領域により実現される。
【0081】
図6は、統計情報管理テーブル600の記憶内容の一例を示す説明図である。図6に示すように、統計情報管理テーブル600は、idと、クエリ内容と、実行回数と、最小時間と、最大時間と、平均時間と、母標準偏差と、共有ブロック総数と、キャッシュ総数とのフィールドを有する。統計情報管理テーブル600は、クエリの種類ごとに各フィールドに情報を設定することにより、統計情報がレコード600-aとして記憶される。aは、例えば、任意の整数である。
【0082】
idのフィールドには、クエリの種類を示すidが設定される。種類は、いずれのテーブルグループを、クエリのアクセス単位とするのかを示す。クエリ内容のフィールドには、上記クエリの内容が設定される。クエリの内容は、当該クエリのアクセス単位となるテーブルグループを特定可能に示す。実行回数のフィールドには、上記種類のクエリを受け付けて実行した実行回数が設定される。
【0083】
最小時間のフィールドには、上記種類のクエリの処理にかかる所要時間の最小時間が設定される。最大時間のフィールドには、上記種類のクエリの処理にかかる所要時間の最大時間が設定される。平均時間のフィールドには、上記種類のクエリの処理にかかる所要時間の平均時間が設定される。母標準偏差のフィールドには、上記種類のクエリの処理にかかる所要時間に関する母標準偏差が設定される。
【0084】
共有ブロック総数のフィールドには、上記種類のクエリの処理において読み込んだ共有ブロックの総数が設定される。キャッシュ総数のフィールドには、上記種類のクエリの処理においてヒットした共有ブロックのキャッシュの総数が設定される。統計情報管理テーブル600は、例えば、コンテナごとに用意される。統計情報管理テーブル600は、複数のコンテナに関する統計情報を纏めて記憶して管理していてもよい。
【0085】
(クエリ情報管理テーブル700の記憶内容)
次に、図7を用いて、クエリ情報管理テーブル700の記憶内容の一例について説明する。クエリ情報管理テーブル700は、例えば、図5に示した情報処理装置100のメモリ502や記録媒体505などの記憶領域により実現される。
【0086】
図7は、クエリ情報管理テーブル700の記憶内容の一例を示す説明図である。図7に示すように、クエリ情報管理テーブル700は、idと、退避フラグと、利用コンテナと、複写テーブルとのフィールドを有する。クエリ情報管理テーブル700は、クエリの種類ごとに各フィールドに情報を設定することにより、クエリ情報がレコード700-bとして記憶される。bは、例えば、任意の整数である。
【0087】
idのフィールドには、クエリの種類を示すidが設定される。種類は、いずれのテーブルグループを、クエリのアクセス単位とするのかを示す。id=xxxは、特殊な値であり、クエリ情報に代わり、コンテナが有するテーブルの種類を示すコンテナ情報を記憶するレコードに設定される。
【0088】
退避フラグのフィールドには、レコードが、上記種類のクエリを退避する場合の送信先を示すのか、または、上記種類のクエリを新たなコンテナに送信する場合の送信先を示すのかを表す退避フラグが設定される。退避フラグ=falseは、レコードが、上記種類のクエリを新たなコンテナに送信する場合の送信先を示すことを表す。退避フラグ=trueは、レコードが、上記種類のクエリを退避する場合の送信先を示すことを表す。
【0089】
利用コンテナのフィールドには、上記種類のクエリの送信先となるコンテナを識別する識別情報が設定される。複写テーブルのフィールドには、上記コンテナが有するテーブルの種類を示すコンテナ情報が設定される。
【0090】
(通信制御装置301のハードウェア構成例)
通信制御装置301のハードウェア構成例は、具体的には、図5に示した情報処理装置100のハードウェア構成例と同様であるため、説明を省略する。
【0091】
(情報蓄積装置302のハードウェア構成例)
情報蓄積装置302のハードウェア構成例は、具体的には、図5に示した情報処理装置100のハードウェア構成例と同様であるため、説明を省略する。
【0092】
(クライアント装置303のハードウェア構成例)
クライアント装置303のハードウェア構成例は、具体的には、図5に示した情報処理装置100のハードウェア構成例と同様であるため、説明を省略する。
【0093】
(情報処理装置100の機能的構成例)
次に、図8を用いて、情報処理装置100の機能的構成例について説明する。
【0094】
図8は、情報処理装置100の機能的構成例を示すブロック図である。情報処理装置100は、記憶部800と、取得部801と、判定部802と、特定部803と、算出部804と、更新部805と、設定部806と、出力部807とを含む。
【0095】
記憶部800は、例えば、図5に示したメモリ502や記録媒体505などの記憶領域によって実現される。以下では、記憶部800が、情報処理装置100に含まれる場合について説明するが、これに限らない。例えば、記憶部800が、情報処理装置100とは異なる装置に含まれ、記憶部800の記憶内容が情報処理装置100から参照可能である場合があってもよい。
【0096】
取得部801~出力部807は、制御部の一例として機能する。取得部801~出力部807は、具体的には、例えば、図5に示したメモリ502や記録媒体505などの記憶領域に記憶されたプログラムをCPU501に実行させることにより、または、ネットワークI/F503により、その機能を実現する。各機能部の処理結果は、例えば、図5に示したメモリ502や記録媒体505などの記憶領域に記憶される。
【0097】
記憶部800は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部800は、例えば、複数の実行環境の少なくともいずれかの実行環境について、当該実行環境が有するデータ群のうち、クエリのアクセス単位となるデータグループごとに、当該クエリによる処理負荷に関する統計値を示す統計情報を記憶する。複数の実行環境は、例えば、異なるデータ群を有する。実行環境は、例えば、コンテナまたは仮想マシンなどである。
【0098】
データは、例えば、DBまたはテーブルなどである。複数の実行環境は、例えば、同一のデータ群を有する2以上の実行環境を含んでいてもよい。データグループは、例えば、単独のデータまたは2以上のデータの組み合わせである。クエリは、例えば、データに対するアクセスを要求する問い合わせである。クエリは、具体的には、データに対するアクセスを要求し、当該データ自体または当該データに含まれる部分データを含む応答を返すことを要求する問い合わせである。部分データは、例えば、テーブルのレコードである。
【0099】
統計値は、例えば、クエリの処理時間の平均時間、最小時間、および、最大時間などを含む。統計値は、例えば、クエリの処理時間に関する母標準偏差などを含む。統計値は、例えば、クエリを受け付けた回数を含む。記憶部800は、具体的には、それぞれの実行環境について、当該実行環境が有するデータ群のうち、クエリのアクセス単位となるデータグループごとに、当該クエリによる処理負荷に関する統計値を示す統計情報を記憶する。記憶部800は、より具体的には、統計情報管理テーブル600を記憶する。統計情報は、例えば、取得部801によって取得される。
【0100】
記憶部800は、複数の実行環境の少なくともいずれかの実行環境について、当該実行環境を識別する識別情報と、当該実行環境が有するデータ群のそれぞれのデータを識別する識別情報とを対応付けた対応情報を記憶する。記憶部800は、具体的には、それぞれの実行環境について、当該実行環境を識別する識別情報と、当該実行環境が有するデータ群のそれぞれのデータを識別する識別情報とを対応付けた対応情報を記憶する。記憶部800は、より具体的には、クエリ情報管理テーブル700を記憶する。対応情報は、例えば、予め利用者によって設定される。対応情報は、例えば、更新部805によって生成されていてもよい。
【0101】
記憶部800は、例えば、アクセス単位となるデータグループごとに、複数の実行環境のうち、当該データグループをアクセス単位とするクエリの送信先となる実行環境を識別する識別情報を記憶する。記憶部800は、具体的には、クエリ情報管理テーブル700を記憶する。識別情報は、例えば、予め利用者によって設定される。識別情報は、例えば、所定のルールに従って決定されていてもよい。ルールは、例えば、クエリを複数の実行環境に分散する方法を規定する。識別情報は、例えば、設定部806によって設定されていてもよい。
【0102】
記憶部800は、例えば、いずれかのデータグループをアクセス単位とするクエリの送信先となる実行環境を識別する識別情報と、当該実行環境がクエリを退避する送信先であるか否かを示すフラグ情報とを対応付けて記憶していてもよい。記憶部800は、具体的には、クエリ情報管理テーブル700を記憶する。フラグ情報は、例えば、設定部806によって設定される。
【0103】
記憶部800は、例えば、いずれかのデータグループをアクセス単位とするクエリの送信先となる実行環境を識別する識別情報と、当該実行環境がクエリを送信する送信先として増設された実行環境であるか否かを示すフラグ情報を記憶していてもよい。記憶部800は、具体的には、クエリ情報管理テーブル700を記憶する。フラグ情報は、例えば、設定部806によって設定される。
【0104】
取得部801は、各機能部の処理に用いられる各種情報を取得する。取得部801は、取得した各種情報を、記憶部800に記憶し、または、各機能部に出力する。また、取得部801は、記憶部800に記憶しておいた各種情報を、各機能部に出力してもよい。取得部801は、例えば、利用者の操作入力に基づき、各種情報を取得する。取得部801は、例えば、情報処理装置100とは異なる装置から、各種情報を受信してもよい。
【0105】
取得部801は、例えば、統計情報を取得する。取得部801は、例えば、利用者の操作入力に基づき、統計情報の入力を受け付けることにより、統計情報を取得する。取得部801は、例えば、統計情報を、他のコンピュータから受信することにより取得する。取得部801は、例えば、統計情報の元となる計測情報を取得し、取得した計測情報に対して統計処理を実施することにより、統計情報を取得する。計測情報は、例えば、クエリの処理時間などである。
【0106】
取得部801は、例えば、現時点における複数の実行環境の少なくともいずれかの実行環境について、当該実行環境の処理負荷に関する測定値を取得してもよい。測定値は、例えば、CPU使用率、または、メモリ使用率などである。
【0107】
取得部801は、いずれかの機能部の処理を開始する開始トリガーを受け付けてもよい。開始トリガーは、例えば、利用者による所定の操作入力があったことである。開始トリガーは、例えば、他のコンピュータから、所定の情報を受信したことであってもよい。開始トリガーは、例えば、いずれかの機能部が所定の情報を出力したことであってもよい。開始トリガーは、例えば、タイマーが定期的に発する信号を検出したことであってもよい。取得部801は、例えば、判定部802と、特定部803と、算出部804と、更新部805と、設定部806との処理を開始する開始トリガーを受け付ける。
【0108】
判定部802は、処理対象とする第1実行環境を選択する。判定部802は、例えば、それぞれの実行環境を、処理対象とする第1実行環境として選択する。これにより、判定部802は、それぞれの実行環境の処理負荷の低減化を図ることができる。
【0109】
判定部802は、例えば、記憶部800に記憶された統計情報に基づいて、クエリによる処理負荷が所定の基準値未満であるデータグループを含むデータ群を有する実行環境を、処理対象とする第1実行環境として選択してもよい。所定の基準値は、例えば、予め利用者によって設定される。これにより、判定部802は、各機能部の処理負荷の低減化を図ることができる。
【0110】
判定部802は、例えば、現時点における複数の実行環境のそれぞれの実行環境の処理負荷に関する測定値に基づいて、他の実行環境より処理負荷に関する測定値が大きい実行環境を、処理対象とする第1実行環境として選択してもよい。これにより、判定部802は、各機能部の処理負荷の低減化を図ることができる。
【0111】
判定部802は、第1データグループを特定する。第1データグループは、例えば、実行環境の処理負荷の低減化のために、退避する候補となるクエリを特定可能にする情報である。
【0112】
判定部802は、例えば、記憶部800に記憶された統計情報に基づいて、第1実行環境が有する第1データ群のうち、クエリによる処理負荷が第1基準値未満である第1データグループを特定する。第1基準値は、例えば、予め利用者によって設定される。
【0113】
判定部802は、具体的には、第1実行環境が有する第1データ群のうち、母標準偏差が第1基準値未満である第1データグループを特定する。これにより、判定部802は、処理負荷が比較的小さく、退避する候補となるクエリを特定可能にすることができる。
【0114】
判定部802は、例えば、記憶部800に記憶された統計情報に基づいて、第1データ群のうち、クエリによる処理負荷が第1基準値未満であり、かつ、クエリを受け付けた回数に関する指標値が所定値以上である第1データグループを特定する。指標値は、例えば、回数自体である。指標値は、例えば、回数の分布であってもよい。所定値は、例えば、予め利用者によって設定される。
【0115】
判定部802は、具体的には、第1実行環境が有する第1データ群のうち、母標準偏差が第1基準値未満であり、かつ、クエリを受け付けた回数自体が所定値以上である第1データグループを特定する。これにより、判定部802は、処理負荷が比較的小さく、退避する候補となるクエリを特定可能にすることができる。また、判定部802は、処理負荷が比較的小さいものの、回数に関する指標値が比較的大きいため、退避することによる実行環境の処理負荷の低減効果が比較的高いと期待されるクエリを特定可能にすることができる。
【0116】
判定部802は、第2データグループを特定する。第2データグループは、例えば、実行環境の処理負荷の低減化のために、以後、生成する新たな実行環境に送信するクエリを特定可能にする情報である。第1実行環境の選択と、第2データグループの特定とは、同時に実施されていてもよい。
【0117】
判定部802は、例えば、記憶部800に記憶された統計情報に基づいて、第1実行環境が有する第1データ群のうち、クエリによる処理負荷が第2基準値以上である第2データグループを特定する。第2基準値は、例えば、予め利用者によって設定される。第2基準値は、例えば、第1基準値と同一であってもよいし、第1基準値と異なっていてもよい。第2基準値は、例えば、所定の基準値と同一である。
【0118】
判定部802は、具体的には、第1実行環境が有する第1データ群のうち、母標準偏差が第2基準値以上である第2データグループを特定する。これにより、判定部802は、処理負荷が比較的大きく、以後、生成する新たな実行環境に送信する候補となるクエリを特定可能にすることができる。
【0119】
判定部802は、例えば、記憶部800に記憶された統計情報に基づいて、第1実行環境が有する第1データ群のうち、特定した第2データグループについて、クエリによる処理負荷が第3基準値未満になったか否かを判定する。第3基準値は、例えば、予め利用者によって設定される。第3基準値は、例えば、第1基準値と同一であってもよいし、第1基準値と異なっていてもよい。第3基準値は、例えば、第2基準値と同一であってもよいし、第2基準値と異なっていてもよい。
【0120】
判定部802は、具体的には、第1実行環境が有する第1データ群のうち、特定した第2データグループについて、母標準偏差が第3基準値未満になったか否かを判定する。これにより、判定部802は、現在、第2データグループをアクセス単位とするクエリの送信先である、生成した新たな実行環境を削除してもよいか否かを判定することができる。判定部802は、例えば、第2データグループについて、母標準偏差が第3基準値未満になれば、第2データグループをアクセス単位とするクエリの送信先である、生成した新たな実行環境を削除してもよいと判定する。
【0121】
判定部802は、第2データグループを特定した後、第1データグループを特定してもよい。判定部802は、例えば、第2データグループを特定したことに応じて、統計情報に基づいて、第1データ群のうち、クエリによる処理負荷が第1基準値未満である第1データグループを特定する。これにより、判定部802は、処理負荷が比較的大きいクエリが存在し、実行環境の処理負荷の低減化を図ることが好ましい状況に限り、第1データグループを特定することができ、各機能部の処理負荷の低減化を図ることができる。
【0122】
判定部802は、例えば、統計情報に基づいて、第2データグループ以外で、第1データ群のうち、クエリによる処理負荷が第1基準値未満である第1データグループを特定する。これにより、判定部802は、第2データグループと、第1データグループとが重複することを防止することができ、実行環境の処理負荷の低減化を図る際にエラーが発生しないようにすることができる。
【0123】
特定部803は、複数の実行環境に含まれる、特定した第1データグループを含む第2データ群を有する第2実行環境を特定する。第2実行環境は、例えば、第1実行環境とは異なる実行環境である。これにより、特定部803は、クエリを退避する候補となる実行環境を特定することができる。
【0124】
特定部803は、例えば、複数の実行環境に含まれる、特定した第1データグループを含み、かつ、第1データ群のうち、特定した第1データグループ以外の少なくともいずれかのデータを含まない第2データ群を有する第2実行環境を特定する。これにより、特定部803は、クエリを退避する候補となる実行環境を特定することができる。特定部803は、クエリを退避した後も、処理負荷が比較的小さいことが期待される実行環境を特定することができる。このため、特定部803は、退避する実行環境の処理負荷が一定以上に増大することを抑制することができる。
【0125】
特定部803は、例えば、現時点におけるそれぞれの実行環境の処理負荷に関する測定値に基づいて、複数の実行環境に含まれる、第1データグループを含むデータ群を有し、かつ、他の実行環境より処理負荷に関する測定値が小さい第2実行環境を特定する。これにより、特定部803は、クエリを退避する候補となる実行環境を特定することができる。特定部803は、クエリを退避した後も、処理負荷が比較的小さいことが期待される実行環境を特定することができる。このため、特定部803は、退避する実行環境の処理負荷が一定以上に増大することを抑制することができる。
【0126】
算出部804は、特定した第1データグループをアクセス単位とする新たなクエリを、検索した第2実行環境に送信する場合について、クエリによる処理負荷に対する低減効果の大きさを示す第1指標値を算出する。これにより、算出部804は、クエリを退避することが好ましいか否かを判定可能にすることができる。算出部804は、例えば、クエリを退避することと、クエリを送信する新たな実行環境を生成することとのいずれを実施することが好ましいかを判定可能にすることができる。
【0127】
算出部804は、特定した第2データグループをアクセス単位とする新たなクエリを、追加した第3実行環境に送信する場合について、クエリによる処理負荷に対する低減効果の大きさを示す第2指標値を算出する。これにより、算出部804は、クエリを送信する新たな実行環境を生成することが好ましいか否かを判定可能にすることができる。算出部804は、例えば、クエリを退避することと、クエリを送信する新たな実行環境を生成することとのいずれを実施することが好ましいかを判定可能にすることができる。
【0128】
更新部805は、複数の実行環境を制御する。更新部805は、例えば、複数の実行環境とは異なる新たな実行環境を生成し、複数の実行環境に追加するよう、複数の実行環境を制御する。更新部805は、具体的には、複数の実行環境とは異なる新たな実行環境を生成し、複数の実行環境に追加するよう、情報蓄積装置302を制御する。
【0129】
更新部805は、具体的には、特定した第2データグループを含み、かつ、少なくとも第1データ群のいずれかのデータを含まない第3データ群を有する新たな第3実行環境を生成し、複数の実行環境に追加する。これにより、更新部805は、第2データグループをアクセス単位とするクエリの新たな送信先となる新たな実行環境を用意することができる。更新部805は、第2データグループをアクセス単位とするクエリを、現在の送信先とは異なる他の送信先に送信可能にすることができる。更新部805は、現在の送信先となる実行環境の処理負荷を低減化可能にすることができる。
【0130】
更新部805は、例えば、複数の実行環境から、いずれかの実行環境を削除するよう、複数の実行環境を制御する。削除する実行環境は、例えば、更新部805の制御に従い、過去に生成された実行環境である。更新部805は、具体的には、複数の実行環境から、いずれかの実行環境を削除するよう、情報蓄積装置302を制御する。
【0131】
更新部805は、具体的には、第2データグループについて、クエリによる処理負荷が第3基準値未満になったと判定部802で判定した場合、過去に追加した第3実行環境を、複数の実行環境から削除する。これにより、更新部805は、複数の実行環境の運用コストの低減化を図ることができる。更新部805は、例えば、実行環境の処理負荷が一定以上にならない範囲で、複数の実行環境の運用コストの低減化を図ることができる。
【0132】
設定部806は、クエリの送信先を制御する。設定部806は、例えば、特定した第1データグループをアクセス単位とする新たなクエリを、特定した第2実行環境に送信するよう、複数の実行環境を制御する。設定部806は、具体的には、特定した第1データグループをアクセス単位とする新たなクエリを、特定した第2実行環境に送信するよう、通信制御装置301を制御する。設定部806は、具体的には、特定した第1データグループをアクセス単位とする新たなクエリを自装置で受け付けた際、受け付けた新たなクエリを、特定した第2実行環境に自装置から送信してもよい。これにより、設定部806は、クエリを退避し、いずれかの実行環境の処理負荷の低減化を図ることができる。
【0133】
設定部806は、例えば、算出した第1指標値が、算出した第2指標値より一定値以上大きい場合に、特定した第1データグループをアクセス単位とする新たなクエリを、特定した第2実行環境に送信するよう、複数の実行環境を制御してもよい。これにより、設定部806は、クエリを退避する方が、クエリを新たな実行環境に送信するよりも好ましい場合に、クエリを退避することができ、いずれかの実行環境の処理負荷を効率よく低減することができる。
【0134】
設定部806は、例えば、特定した第2データグループをアクセス単位とする新たなクエリを、追加した第3実行環境に送信するよう、複数の実行環境を制御する。設定部806は、具体的には、特定した第2データグループをアクセス単位とする新たなクエリを、追加した第3実行環境に送信するよう、通信制御装置301を制御する。設定部806は、具体的には、特定した第2データグループをアクセス単位とする新たなクエリを自装置で受け付けた際、受け付けた新たなクエリを、追加した第3実行環境に送信してもよい。これにより、設定部806は、クエリを新たな実行環境に送信し、いずれかの実行環境の処理負荷の低減化を図ることができる。
【0135】
設定部806は、例えば、算出した第1指標値が、算出した第2指標値より一定値以上大きくない場合には、特定した第2データグループをアクセス単位とする新たなクエリを、追加した第3実行環境に送信するよう、複数の実行環境を制御する。これにより、設定部806は、クエリを新たな実行環境に送信する方が、クエリを退避するよりも好ましい場合に、クエリを新たな実行環境に送信することができ、いずれかの実行環境の処理負荷を効率よく低減することができる。
【0136】
設定部806は、例えば、特定した第2データグループをアクセス単位とする新たなクエリを、複数の実行環境のうち、特定した第2データグループを含む第4データ群を有する第4実行環境に送信するよう、複数の実行環境を制御する。設定部806は、具体的には、第3実行環境を削除した後、第2データグループをアクセス単位とする新たなクエリを、複数の実行環境のうち、第4実行環境に送信するよう、複数の実行環境を制御する。
【0137】
第4実行環境は、例えば、第3実行環境を生成する前に、第2データグループをアクセス単位とするクエリの送信先であった実行環境である。第4実行環境は、例えば、第3実行環境を生成する前に、第2データグループをアクセス単位とするクエリの送信先であった実行環境以外であってもよい。
【0138】
設定部806は、より具体的には、第3実行環境を削除した後、第2データグループをアクセス単位とする新たなクエリを、複数の実行環境のうち、第4実行環境に送信するよう、通信制御装置301を制御する。設定部806は、例えば、特定した第2データグループをアクセス単位とする新たなクエリを自装置で受け付けた際、受け付けた新たなクエリを、第4実行環境に自装置から送信してもよい。これにより、設定部806は、第3実行環境を削除した後、第2データグループをアクセス単位とするクエリを、適切にいずれかの実行環境に送信可能にすることができる。
【0139】
出力部807は、少なくともいずれかの機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F503による外部装置への送信、または、メモリ502や記録媒体505などの記憶領域への記憶である。これにより、出力部807は、少なくともいずれかの機能部の処理結果を利用者に通知可能にし、情報処理装置100の利便性の向上を図ることができる。
【0140】
出力部807は、例えば、更新部805で新たな実行環境を生成したことを出力する。出力部807は、具体的には、更新部805で新たな実行環境を生成したことを、利用者が参照可能に出力する。これにより、出力部807は、複数の実行環境の状態を、利用者が把握可能にすることができる。
【0141】
出力部807は、例えば、更新部805でいずれかの実行環境を削除したことを出力する。出力部807は、具体的には、更新部805でいずれかの実行環境を削除したことを、利用者が参照可能に出力する。これにより、出力部807は、複数の実行環境の状態を、利用者が把握可能にすることができる。
【0142】
出力部807は、例えば、設定部806でクエリの送信先を変更したことを出力する。出力部807は、具体的には、設定部806でクエリの送信先を変更したことを、利用者が参照可能に出力する。これにより、出力部807は、クエリをどのように扱うのかを、利用者が把握可能にすることができる。
【0143】
(情報処理装置100の動作例)
次に、図9図18を用いて、情報処理装置100の動作例について説明する。図9図18の例では、コンテナ#1と、コンテナ#2と、コンテナ#3とが存在するとする。コンテナ#1は、例えば、テーブルAと、テーブルBと、テーブルCとを有するとする。コンテナ#2は、例えば、テーブルAと、テーブルBと、テーブルCとを有するとする。コンテナ#3は、例えば、テーブルAと、テーブルBとを有するとする。
【0144】
テーブルAのサイズは、例えば、1GB(GigaByte)であるとする。テーブルBのサイズは、例えば、100GBであるとする。テーブルCのサイズは、例えば、10GBであるとする。以下の説明では、情報処理装置100が、コンテナ#1を、処理負荷の低減化を図る処理対象として選択した場合について説明する。
【0145】
まず、図9を用いて、情報処理装置100が、増設する新たなコンテナに送信する候補となる、処理負荷が比較的大きいクエリを特定する一例について説明する。以下の説明では、処理負荷が比較的大きいクエリを「高負荷クエリ」と表記する場合がある。
【0146】
図9は、高負荷クエリを特定する一例を示す説明図である。図9において、情報処理装置100は、コンテナ#1に関する統計情報管理テーブル600を有する。情報処理装置100は、テーブルAのサイズ「1GB」と、テーブルBのサイズ「100GB」と、テーブルCのサイズ「10GB」とを記憶する。
【0147】
情報処理装置100は、統計情報管理テーブル600を参照して、母標準偏差が第1閾値以上であるレコードを特定し、特定したレコードに含まれるidとクエリ内容との組み合わせを特定する。第1閾値は、例えば、予め利用者によって設定される。第1閾値は、例えば、5である。情報処理装置100は、特定したidのクエリを、高負荷クエリとして特定する。情報処理装置100は、特定したクエリ内容が示すテーブルグループを、高負荷クエリのアクセス単位となるテーブルグループとして特定する。
【0148】
図9の例では、情報処理装置100は、母標準偏差が5以上であるレコード600-3を特定し、特定したレコード600-3に含まれるid「3」とクエリ内容「select*from C;」との組み合わせを特定する。情報処理装置100は、特定したid「3」のクエリを、高負荷クエリとして特定する。情報処理装置100は、特定したクエリ内容「select*from C;」が示すテーブルグループ「テーブルC」を、高負荷クエリのアクセス単位となるテーブルグループとして特定する。
【0149】
これにより、情報処理装置100は、いずれのidに対応するクエリを、高負荷クエリとして、増設する新たなコンテナに送信する候補とすればよいのかを特定することができる。また、情報処理装置100は、増設する新たなコンテナが、いずれのテーブルグループを有すれば、高負荷クエリを送信可能になるのかを特定することができる。
【0150】
次に、図10を用いて、情報処理装置100が、スケールアウトの評価値を算出する一例について説明する。スケールアウトは、例えば、新たなコンテナを増設する処理である。増設する新たなコンテナは、複数存在していてもよい。スケールアウトの評価値は、スケールアウトを実施し、高負荷クエリを、増設した新たなコンテナに送信する場合における、高負荷クエリの現時点の送信先である既存のコンテナの処理負荷の低減効果の大きさを示す指標値である。既存のコンテナは、例えば、コンテナ#1である。
【0151】
図10は、スケールアウトの評価値を算出する一例を示す説明図である。図10において、情報処理装置100は、スケールアウトの評価値を算出する。情報処理装置100は、例えば、下記式(1)の評価関数を用いて、スケールアウトの評価値を算出する。
【0152】
評価値(時間)=SUM(高負荷クエリのアクセス単位となるテーブルグループの実行環境間の転送に要する時間)+高負荷クエリの応答時間の推定値 ・・・(1)
【0153】
SUM(高負荷クエリのアクセス単位となるテーブルグループの実行環境間の転送に要する時間)は、例えば、テーブルグループのサイズ/ネットワーク速度によって定義される。ネットワーク速度は、例えば、pingによって取得される。テーブルグループ「テーブルC」のサイズは、テーブルCのサイズ「10GB」である。
【0154】
高負荷クエリの応答時間の推定値は、例えば、平均時間/高負荷クエリのアクセス単位となるテーブルグループを有するコンテナの数によって定義される。平均時間は、例えば、特定したレコード600-3の平均時間「10000秒」である。コンテナの数は、以後増設するコンテナを含む、高負荷クエリのアクセス単位となるテーブルグループを有する1以上のコンテナに含まれるコンテナの数である。
【0155】
これにより、情報処理装置100は、高負荷クエリを、増設した新たなコンテナに送信する場合における、高負荷クエリの現時点の送信先である既存のコンテナの処理負荷の低減効果の大きさを評価することができる。既存のコンテナは、例えば、コンテナ#1である。情報処理装置100は、スケールアウトを実施し、高負荷クエリを、増設した新たなコンテナに送信するよう、情報処理システム300を制御するか否かを判断可能にすることができる。
【0156】
次に、図11を用いて、情報処理装置100が、退避する候補となる、処理負荷が比較的小さいクエリを特定し、退避の評価値を算出する一例について説明する。以下の説明では、処理負荷が比較的小さいクエリを「低負荷クエリ」と表記する場合がある。退避の評価値は、低負荷クエリを退避する場合における、低負荷クエリの現時点の送信先である既存のコンテナの処理負荷の低減効果の大きさを示す指標値である。既存のコンテナは、例えば、コンテナ#1である。
【0157】
図11は、退避の評価値を算出する一例を示す説明図である。図11において、情報処理装置100は、統計情報管理テーブル600を参照して、少なくとも母標準偏差が第2閾値未満であるレコードを特定する。第2閾値は、例えば、予め利用者によって設定される。第2閾値は、例えば、第1閾値と同一であってもよいし、第1閾値と異なっていてもよい。第2閾値は、例えば、5である。
【0158】
情報処理装置100は、例えば、母標準偏差が第2閾値未満であり、高負荷クエリのアクセス単位となるテーブルグループと重複しないテーブルグループをアクセス単位とし、かつ、実行分布が第3閾値以上であるレコードを特定する。第3閾値は、例えば、予め利用者によって設定される。第3閾値は、例えば、0.1である。実行分布は、例えば、実行回数に関する指標値である。実行分布は、例えば、クエリの実行回数/全クエリの実行回数の総和である。
【0159】
図11の例では、情報処理装置100は、母標準偏差が5未満であり、テーブルグループ「テーブルC」と重複しないテーブルグループ「テーブルAおよびテーブルB」をアクセス単位とし、実行回数が0.1以上であるレコード600-2を特定する。これにより、情報処理装置100は、低負荷クエリに関するレコードを特定することができる。
【0160】
情報処理装置100は、特定したレコードに含まれるidとクエリ内容との組み合わせを特定する。情報処理装置100は、特定したidのクエリを、低負荷クエリとして特定する。情報処理装置100は、特定したクエリ内容が示すテーブルグループを、低負荷クエリのアクセス単位となるテーブルグループとして特定する。
【0161】
図11の例では、情報処理装置100は、特定したレコード600-2に含まれるid「2」とクエリ内容「select*from A join B using(id) where id=1;」との組み合わせを特定する。情報処理装置100は、特定したid「2」のクエリを、低負荷クエリとして特定する。情報処理装置100は、特定したクエリ内容「select*from A join B・・・;」が示すテーブルグループ「テーブルAおよびテーブルB」を、低負荷クエリのアクセス単位となるテーブルグループとして特定する。
【0162】
これにより、情報処理装置100は、いずれのidに対応するクエリを、低負荷クエリとして、退避する候補とすればよいのかを特定することができる。情報処理装置100は、実行分布を利用して、退避による既存のコンテナの処理負荷の低減効果が大きいと期待されるクエリを、低負荷クエリとして特定することができる。既存のコンテナは、例えば、コンテナ#1である。また、情報処理装置100は、いずれのテーブルグループを有するコンテナであれば、低負荷クエリを退避可能であるのかを特定することができる。
【0163】
情報処理装置100は、退避の評価値を算出する。情報処理装置100は、例えば、下記式(2)の評価関数を用いて、退避の評価値を算出する。
【0164】
評価値(時間)=SUM(低負荷クエリのアクセス単位となるテーブルグループの実行環境間の転送に要する時間)+高負荷クエリの応答時間の推定値 ・・・(2)
【0165】
SUM(低負荷クエリのアクセス単位となるテーブルグループの実行環境間の転送に要する時間)は、例えば、テーブルグループのサイズ/ネットワーク速度によって定義される。ネットワーク速度は、例えば、pingによって取得される。テーブルグループ「テーブルAおよびテーブルB」のサイズは、テーブルAのサイズ「1GB」とテーブルBのサイズ「100GB」との和「101GB」である。
【0166】
低負荷クエリの応答時間の推定値は、例えば、平均時間×(低負荷クエリ以外の出現率の和)によって定義される。平均時間は、例えば、高負荷クエリに対応するレコード600-3の平均時間「10000秒」である。低負荷クエリ以外の出現率の和は、例えば、id「1」のクエリの出現率と、id「3」の高負荷クエリの出現率との和である。
【0167】
これにより、情報処理装置100は、低負荷クエリを退避する場合における、低負荷クエリの現時点の送信先である既存のコンテナの処理負荷の低減効果の大きさを評価することができる。情報処理装置100は、低負荷クエリを退避するよう、情報処理システム300を制御するか否かを判断可能にすることができる。
【0168】
次に、図12および図13を用いて、情報処理装置100が、スケールアウトの評価値と、退避の評価値とを比較した結果に基づいて、低負荷クエリの退避を実施すると決定したため、低負荷クエリの退避を実施する一例について説明する。
【0169】
図12および図13は、退避を実施する一例を示す説明図である。図12において、情報処理装置100は、スケールアウトの評価値が、退避の評価値未満であれば、低負荷クエリの退避を実施すると決定する。図12の例では、情報処理装置100が、スケールアウトの評価値が、退避の評価値未満であるため、低負荷クエリの退避を実施すると決定したとする。
【0170】
情報処理装置100は、低負荷クエリを退避するコンテナを特定する。情報処理装置100は、例えば、少なくとも低負荷クエリのテーブルグループを含むテーブル群を有するコンテナを、低負荷クエリを退避するコンテナとして特定する。これにより、情報処理装置100は、低負荷クエリの退避先を特定することができ、低負荷クエリを退避可能にすることができる。
【0171】
情報処理装置100は、具体的には、低負荷クエリのテーブルグループを含み、低負荷クエリの現在の送信先である既存のコンテナが有するいずれかのテーブルを含まないテーブル群を有するコンテナを、低負荷クエリを退避するコンテナとして特定してもよい。既存のコンテナは、例えば、コンテナ#1である。
【0172】
これにより、情報処理装置100は、低負荷クエリの退避先を特定することができ、低負荷クエリを退避可能にすることができる。情報処理装置100は、既存のコンテナが有するいずれかのテーブルを有さないコンテナを、低負荷コンテナの退避先として特定することができ、低負荷クエリの退避先となるコンテナにおいて処理負荷が一定以上になってしまうことを防止することができる。
【0173】
情報処理装置100は、具体的には、低負荷クエリのテーブルグループを含むテーブル群を有し、かつ、リソース使用量が第4閾値以下であるコンテナを、低負荷クエリを退避するコンテナとして特定してもよい。リソース使用量は、例えば、CPU使用率、および、メモリ使用率などである。
【0174】
これにより、情報処理装置100は、低負荷クエリの退避先を特定することができ、低負荷クエリを退避可能にすることができる。情報処理装置100は、リソース使用量が比較的小さいコンテナを、低負荷コンテナの退避先として特定することができ、低負荷クエリの退避先となるコンテナにおいて処理負荷が一定以上になってしまうことを防止することができる。
【0175】
図12の例では、情報処理装置100は、テーブルグループ「テーブルAおよびテーブルB」を有し、テーブルCを有さないコンテナ#3を、低負荷クエリの退避先として特定したとする。次に、図13の説明に移行する。
【0176】
図13において、情報処理装置100は、コンテナ#3と、コンテナ#3が有するテーブルグループ「テーブルAおよびテーブルB」とを対応付けたレコード700-1を、クエリ情報管理テーブル700に記憶して管理する。情報処理装置100は、コンテナ#3を、id「2」の低負荷クエリの退避先として特定したことを表すレコード700-2を、クエリ情報管理テーブル700に記憶して管理する。
【0177】
図12の説明に戻り、情報処理装置100は、クエリ情報管理テーブル700を参照して、以降、id「2」の低負荷クエリを、コンテナ#3に送信するよう、通信制御装置301を制御する。通信制御装置301は、情報処理装置100の制御に従い、id「2」の低負荷クエリの送信先として、コンテナ#3を認識する。
【0178】
通信制御装置301は、情報処理装置100の制御に従い、id「2」の低負荷クエリを、クライアント装置303から受信した場合、受信したid「2」の低負荷クエリを、コンテナ#3に送信する。通信制御装置301は、具体的には、受信したid「2」の低負荷クエリを、コンテナ#3を含む、テーブルグループ「テーブルAおよびテーブルB」を有する1以上のコンテナのいずれかのコンテナに、処理負荷が分散するように送信する。
【0179】
これにより、情報処理装置100は、低負荷クエリを、コンテナ#3に退避することができ、コンテナ#1の処理負荷の低減化を図ることができる。情報処理装置100は、コンテナ#1の処理負荷の低減化を図るため、コンテナ#1において、低負荷クエリ以外に利用可能なリソース量の増大化を図ることができる。情報処理装置100は、例えば、コンテナ#1において、高負荷クエリに利用可能なリソース量の増大化を図ることができ、高負荷クエリに関する処理性能の向上を図ることができる。
【0180】
情報処理装置100は、スケールアウトを実施せず、新たなコンテナを生成しないため、比較的素早く、情報処理システム300の処理負荷の低減化を図ることができ、情報処理システム300の運用コストの増大化を抑制することができる。情報処理装置100は、新たなコンテナを生成しないため、テーブルを転送せずに済ませることができ、情報処理システム300のネットワーク負荷などの処理負荷の低減化を図ることができる。
【0181】
また、情報処理装置100は、低負荷クエリを、コンテナ#3に退避することにより、同一のテーブルグループをアクセス単位とするクエリを、コンテナ#3に集約していくことができる。このため、情報処理装置100は、コンテナ#3におけるキャッシュ利用効率の向上を図ることができ、クエリの性能向上を図ることができる。
【0182】
次に、図14および図15を用いて、情報処理装置100が、スケールアウトの評価値と、退避の評価値とを比較した結果に基づいて、高負荷クエリを、増設する新たなコンテナに送信すると決定し、スケールアウトを実施する一例について説明する。
【0183】
図14および図15は、スケールアウトを実施する一例を示す説明図である。図14において、情報処理装置100は、スケールアウトの評価値が、退避の評価値以上であれば、高負荷クエリを、増設する新たなコンテナに送信すると決定する。図14の例では、情報処理装置100が、スケールアウトの評価値が、退避の評価値未満であるため、高負荷クエリを、増設する新たなコンテナに送信すると決定したとする。
【0184】
情報処理装置100は、増設するコンテナにコピーするテーブルグループを特定する。情報処理装置100は、例えば、高負荷クエリのアクセス単位となるテーブルグループを、増設するコンテナにコピーするテーブルグループとして特定する。図14の例では、情報処理装置100は、id「3」の高負荷クエリのアクセス単位となるテーブルグループ「テーブルC」を、増設するコンテナにコピーするテーブルグループとして特定する。
【0185】
これにより、情報処理装置100は、コンテナを適切に増設可能にすることができ、スケールアウトを実施可能にすることができる。情報処理装置100は、増設するコンテナにコピーすることが好ましいテーブルを選出することができ、増設するコンテナにコピーするテーブルのデータ量の増大化を抑制することができる。このため、情報処理装置100は、コンテナを増設する際にかかる所要時間の低減化を図ることができ、コンテナを増設する際にかかる情報処理システム300の処理負荷の低減化を図ることができる。処理負荷は、例えば、通信負荷などを含んでいてもよい。
【0186】
情報処理装置100は、スケールアウトを実施し、特定したテーブルグループを有する新たなコンテナを増設する。図14の例では、情報処理装置100は、テーブルグループ「テーブルC」を有する新たなコンテナ#4を増設する。これにより、情報処理装置100は、高負荷クエリを送信する新たな送信先を生成することができる。次に、図15の説明に移行する。
【0187】
図15において、情報処理装置100は、コンテナ#4と、コンテナ#4が有するテーブルグループ「テーブルC」とを対応付けた、コンテナ#4を、id「3」の高負荷クエリの新たな送信先として増設したことを表すレコード700-3を生成する。情報処理装置100は、生成したレコード700-3を、クエリ情報管理テーブル700に記憶して管理する。
【0188】
図14の説明に戻り、情報処理装置100は、クエリ情報管理テーブル700を参照して、以降、id「3」の高負荷クエリを、コンテナ#4に送信するよう、通信制御装置301を制御する。通信制御装置301は、情報処理装置100の制御に従い、id「3」の高負荷クエリの送信先として、コンテナ#4を認識する。
【0189】
通信制御装置301は、情報処理装置100の制御に従い、id「3」の高負荷クエリを、クライアント装置303から受信した場合、受信したid「3」の高負荷クエリを、コンテナ#4に送信する。通信制御装置301は、具体的には、受信したid「3」の高負荷クエリを、コンテナ#4を含む、テーブルグループ「テーブルC」を有する1以上のコンテナのいずれかのコンテナに、処理負荷が分散するように送信する。
【0190】
これにより、情報処理装置100は、高負荷クエリを、コンテナ#4に送信することができ、コンテナ#1の処理負荷の低減化を図ることができる。このため、情報処理装置100は、コンテナ#1に比べて、コンテナ#4において、高負荷クエリに比較的大きなリソース量を利用可能であるため、高負荷クエリに関する処理性能の向上を図ることができる。情報処理装置100は、スケールアウトを実施する際、増設するコンテナ#4にコピーするテーブルのデータ量の増大化を抑制することができる。このため、情報処理装置100は、コンテナ#4を増設する際にかかる所要時間の低減化を図ることができ、コンテナ#4を増設する際にかかる情報処理システム300の処理負荷の低減化を図ることができる。
【0191】
次に、図16図18を用いて、情報処理装置100が、スケールインを実施し、増設したコンテナを削除する一例について説明する。
【0192】
図16図18は、スケールインを実施する一例を示す説明図である。図16において、情報処理装置100は、コンテナ#4を増設済みであるとする。情報処理装置100は、コンテナ#4に関する統計情報管理テーブル600を有する。
【0193】
情報処理装置100は、統計情報管理テーブル600を参照して、高負荷クエリのレコードの母標準偏差が、第5閾値以下になったか否かを判定する。第5閾値は、例えば、予め利用者によって設定される。第5閾値は、例えば、第1閾値と同一であってもよいし、第1閾値と異なっていてもよい。第5閾値は、例えば、1である。図16の例では、情報処理装置100は、id「3」の高負荷クエリのレコード600-1の母標準偏差が、1以下になったと判定する。
【0194】
情報処理装置100は、判定した結果に基づいて、高負荷クエリのレコードの母標準偏差が、第5閾値以下になったことを検出する。図16の例では、情報処理装置100は、id「3」の高負荷クエリのレコード600-1の母標準偏差が、1以下になったことを検出する。これにより、情報処理装置100は、増設したコンテナ#4を削除してもよい状況になったことを検出することができる。情報処理装置100は、例えば、増設したコンテナ#4を削除しても、情報処理システム300の処理負荷の増大化を抑制可能な状況になったことを検出することができる。次に、図17の説明に移行する。
【0195】
図17において、情報処理装置100は、高負荷クエリのレコードの母標準偏差が、第5閾値以下になったことを検出したため、スケールインを実施し、高負荷クエリの送信先として増設したコンテナ#4を削除すると決定する。情報処理装置100は、増設したコンテナ#4に関するレコード700-3を、クエリ情報管理テーブル700から削除する。次に、図18の説明に移行する。
【0196】
図18において、情報処理装置100は、クエリ情報管理テーブル700を参照して、以降、id「3」の高負荷クエリを、テーブルグループ「テーブルC」を有する残余のいずれかのコンテナに送信するよう、通信制御装置301を制御する。情報処理装置100は、例えば、以降、id「3」の高負荷クエリを、テーブルグループ「テーブルC」を有するコンテナ#1に送信するよう、通信制御装置301を制御する。通信制御装置301は、id「3」の高負荷クエリを、クライアント装置303から受信した場合、受信したid「3」の高負荷クエリを、コンテナ#1に送信する。
【0197】
これにより、情報処理装置100は、高負荷クエリを、コンテナ#1に送信することができ、高負荷クエリを、適切に処理可能にすることができる。情報処理装置100は、スケールインを実施し、情報処理システム300の運用コストの低減化を図ることができる。情報処理装置100は、増設したコンテナ#4を削除しても、情報処理システム300の処理負荷の増大化を抑制することができる。
【0198】
(全体処理手順)
次に、図19を用いて、情報処理装置100が実行する、全体処理手順の一例について説明する。全体処理は、例えば、図5に示したCPU501と、メモリ502や記録媒体505などの記憶領域と、ネットワークI/F503とによって実現される。
【0199】
図19は、全体処理手順の一例を示すフローチャートである。図19において、情報処理装置100は、対象のコンテナについて、テーブルグループをアクセス単位とするクエリによる処理負荷に関する負荷値を含む統計情報を取得する(ステップS1901)。
【0200】
次に、情報処理装置100は、取得した統計情報に基づいて、いずれかのテーブルグループをアクセス単位とするクエリによる処理負荷に関する負荷値>スケールアウト閾値であるか否かを判定する(ステップS1902)。ここで、負荷値≦スケールアウト閾値である場合(ステップS1902:No)、情報処理装置100は、ステップS1903の処理に移行する。一方で、負荷値>スケールアウト閾値である場合(ステップS1902:Yes)、情報処理装置100は、ステップS1905の処理に移行する。
【0201】
ステップS1903では、情報処理装置100は、取得した統計情報に基づいて、いずれかのテーブルグループをアクセス単位とするクエリによる処理負荷に関する負荷値<スケールイン閾値であるか否かを判定する(ステップS1903)。ここで、負荷値≧スケールイン閾値である場合(ステップS1903:No)、情報処理装置100は、ステップS1901の処理に戻る。一方で、負荷値<スケールイン閾値である場合(ステップS1903:Yes)、情報処理装置100は、ステップS1904の処理に移行する。
【0202】
ステップS1904では、情報処理装置100は、スケールイン処理を実施する(ステップS1904)。スケールイン処理は、対象のコンテナを削除し、負荷値<スケールイン閾値であるテーブルグループをアクセス単位とするクエリの送信先を、当該テーブルグループを有する既存コンテナに設定する処理である。そして、情報処理装置100は、ステップS1901の処理に戻る。
【0203】
ステップS1905では、情報処理装置100は、統計情報に基づいて、母標準偏差が高負荷基準値以上である高負荷クエリを特定する(ステップS1905)。次に、情報処理装置100は、統計情報に基づいて、母標準偏差が高負荷基準値未満である低負荷クエリを特定する(ステップS1906)。
【0204】
次に、情報処理装置100は、スケールアウトに関する評価値Aを算出する(ステップS1907)。また、情報処理装置100は、低負荷クエリの退避に関する評価値Bを算出する(ステップS1908)。そして、情報処理装置100は、評価値A>評価値Bであるか否かを判定する(ステップS1909)。
【0205】
ここで、評価値A>評価値Bである場合(ステップS1909:Yes)、情報処理装置100は、ステップS1910の処理に移行する。一方で、評価値A≦評価値Bではない場合(ステップS1909:No)、情報処理装置100は、ステップS1911の処理に移行する。
【0206】
ステップS1910では、情報処理装置100は、スケールアウト処理を実施する(ステップS1910)。スケールアウト処理は、例えば、高負荷クエリのアクセス単位となるテーブルグループを有する新規コンテナを生成し、高負荷クエリの送信先を、生成した新規コンテナに設定する処理である。そして、情報処理装置100は、ステップS1901の処理に戻る。
【0207】
ステップS1911では、情報処理装置100は、低負荷クエリの送信先を、低負荷クエリのアクセス単位となるテーブルグループを有する既存コンテナに設定する(ステップS1911)。そして、情報処理装置100は、ステップS1901の処理に戻る。
【0208】
ここで、情報処理装置100は、図19の一部ステップの処理の順序を入れ替えて実行してもよい。例えば、ステップS1907,S1908の処理の順序は入れ替え可能である。また、情報処理装置100は、図19の一部ステップの処理を省略してもよい。
【0209】
以上説明したように、情報処理装置100によれば、第1実行環境が有する第1データ群のうち、クエリのアクセス単位となるデータグループごとに、当該クエリによる処理負荷に関する統計値を示す統計情報を記憶することができる。情報処理装置100によれば、統計情報に基づいて、第1データ群のうち、クエリによる処理負荷が第1基準値未満である第1データグループを特定することができる。情報処理装置100によれば、第1実行環境以外で、複数の実行環境に含まれる、特定した第1データグループを含む第2データ群を有する第2実行環境を特定することができる。情報処理装置100によれば、特定した第1データグループをアクセス単位とする新たなクエリを、特定した第2実行環境に送信するよう、複数の実行環境を制御することができる。これにより、情報処理装置100は、クエリを退避し、第1実行環境の処理負荷の低減化を図ることができる。
【0210】
情報処理装置100によれば、複数の実行環境に含まれる、特定した第1データグループを含み、かつ、第1データ群のうち、第1データグループ以外の少なくともいずれかのデータを含まない第2データ群を有する第2実行環境を特定することができる。これにより、情報処理装置100は、第1データグループを有するものの第1実行環境が有するいずれかのテーブルを有さない第2実行環境を特定することができる。このため、情報処理装置100は、クエリを退避した後、クエリを退避した第2実行環境において処理負荷が一定以上になってしまうことを防止することができる。
【0211】
情報処理装置100によれば、複数の実行環境に含まれる、特定した第1データグループを含むデータ群を有し、かつ、他の実行環境より処理負荷に関する測定値が小さい第2実行環境を特定することができる。これにより、情報処理装置100は、第1データグループを有し、処理負荷が比較的小さい第2実行環境を特定することができる。このため、情報処理装置100は、クエリを退避した後、クエリを退避した第2実行環境において処理負荷が一定以上になってしまうことを防止することができる。
【0212】
情報処理装置100によれば、統計情報に基づいて、第1データ群のうち、クエリによる処理負荷が第1基準値未満であり、かつ、クエリを受け付けた回数に関する指標値が所定値以上である第1データグループを特定することができる。これにより、情報処理装置100は、退避することによる第1実行環境の処理負荷の低減効果が比較的高いと期待されるクエリを特定可能にすることができる。
【0213】
情報処理装置100によれば、統計情報に基づいて、第1データ群のうち、クエリによる処理負荷が第2基準値以上である第2データグループを特定することができる。情報処理装置100によれば、特定した第2データグループを含み、かつ、少なくとも第1データ群のいずれかのデータを含まない第3データ群を有する、複数の実行環境とは異なる新たな第3実行環境を生成し、複数の実行環境に追加することができる。情報処理装置100によれば、特定した第2データグループをアクセス単位とする新たなクエリを、追加した第3実行環境に送信するよう、複数の実行環境を制御することができる。これにより、情報処理装置100は、コンテナを適切に増設することができる。情報処理装置100は、増設するコンテナにコピーすることが好ましいテーブルを選出することができ、増設するコンテナにコピーするテーブルのデータ量の増大化を抑制することができる。このため、情報処理装置100は、コンテナを増設する際にかかる所要時間の低減化を図ることができ、コンテナを増設する際にかかる情報処理システム300の処理負荷の低減化を図ることができる。
【0214】
情報処理装置100によれば、統計情報に基づいて、第1データ群のうち、特定した第2データグループについて、クエリによる処理負荷が第3基準値未満になったことを検出した場合、追加した第3実行環境を、複数の実行環境から削除することができる。情報処理装置100によれば、特定した第2データグループをアクセス単位とする新たなクエリを、複数の実行環境のうち、特定した第2データグループを含む第4データ群を有する第4実行環境に送信するよう、複数の実行環境を制御することができる。これにより、情報処理装置100は、複数の実行環境の全体の運用コストの低減化を図ることができる。
【0215】
情報処理装置100によれば、特定した第1データグループをアクセス単位とする新たなクエリを、検索した第2実行環境に送信する場合について、クエリによる処理負荷に対する低減効果の大きさを示す第1指標値を算出することができる。情報処理装置100によれば、特定した第2データグループをアクセス単位とする新たなクエリを、追加した第3実行環境に送信する場合について、クエリによる処理負荷に対する低減効果の大きさを示す第2指標値を算出することができる。情報処理装置100によれば、算出した第1指標値が、算出した第2指標値より一定値以上大きい場合には、特定した第1データグループをアクセス単位とする新たなクエリを、特定した第2実行環境に送信するよう、複数の実行環境を制御することができる。情報処理装置100によれば、算出した第1指標値が、算出した第2指標値より一定値以上大きくない場合には、特定した第2データグループをアクセス単位とする新たなクエリを、追加した第3実行環境に送信するよう、複数の実行環境を制御することができる。これにより、情報処理装置100は、クエリを退避する方が、クエリを新たな実行環境に送信するよりも好ましい場合に、クエリを退避することができ、第1実行環境の処理負荷を効率よく低減することができる。情報処理装置100は、クエリを新たな実行環境に送信する方が、クエリを退避するよりも好ましい場合に、クエリを新たな実行環境に送信することができ、第1実行環境の処理負荷を効率よく低減することができる。
【0216】
情報処理装置100によれば、第2データグループを特定したことに応じて、統計情報に基づいて、第1データ群のうち、クエリによる処理負荷が第1基準値未満である第1データグループを特定することができる。これにより、情報処理装置100は、第2データグループを特定し、処理負荷が比較的大きいクエリが存在し、第1実行環境の処理負荷の低減化を図ることが好ましい状況に限り、第1データグループを特定することができる。このため、情報処理装置100は、自装置の処理負荷の低減化を図ることができる。
【0217】
情報処理装置100によれば、統計情報に基づいて、第2データグループ以外で、第1データ群のうち、クエリによる処理負荷が第1基準値未満である第1データグループを特定することができる。これにより、情報処理装置100は、第2データグループと、第1データグループとが重複することを防止することができ、実行環境の処理負荷の低減化を図る際にエラーが発生しないようにすることができる。
【0218】
情報処理装置100によれば、現時点における複数の実行環境のそれぞれの実行環境の処理負荷に関する測定値に基づいて、他の実行環境より処理負荷に関する測定値が大きい第1実行環境を選択することができる。情報処理装置100によれば、統計情報に基づいて、選択した第1実行環境が有する第1データ群のうち、クエリによる処理負荷が第1基準値未満である第1データグループを特定することができる。これにより、情報処理装置100は、処理対象とする第1実行環境を選出することができ、自装置の処理負荷の低減化を図ることができる。
【0219】
情報処理装置100によれば、複数の実行環境のそれぞれの実行環境が、コンテナである場合に対して適用することができる。これにより、情報処理装置100は、コンテナの処理負荷の低減化を図ることができる。
【0220】
情報処理装置100によれば、データが、テーブルである場合に対して適用することができる。これにより、情報処理装置100は、テーブルを有する実行環境の処理負荷の低減化を図ることができる。
【0221】
情報処理装置100によれば、第1実行環境が有する第1データ群のうち、クエリのアクセス単位となるデータグループごとに、当該クエリによる処理負荷に関する統計値を示す統計情報を記憶することができる。情報処理装置100によれば、統計情報に基づいて、第1データ群のうち、クエリによる処理負荷が第1基準値以上である第1データグループを特定することができる。情報処理装置100によれば、特定した第1データグループを含み、かつ、少なくとも第1データ群のいずれかのデータを含まない第2データ群を有する、複数の実行環境とは異なる新たな第2実行環境を生成し、複数の実行環境に追加することができる。情報処理装置100によれば、特定した第1データグループをアクセス単位とする新たなクエリを、追加した第2実行環境に送信するよう、複数の実行環境を制御することができる。これにより、情報処理装置100は、コンテナを適切に増設することができる。情報処理装置100は、増設するコンテナにコピーすることが好ましいテーブルを選出することができ、増設するコンテナにコピーするテーブルのデータ量の増大化を抑制することができる。このため、情報処理装置100は、コンテナを増設する際にかかる所要時間の低減化を図ることができ、コンテナを増設する際にかかる情報処理システム300の処理負荷の低減化を図ることができる。
【0222】
なお、本実施の形態で説明した制御方法は、予め用意されたプログラムをPCやワークステーションなどのコンピュータで実行することにより実現することができる。本実施の形態で説明した制御プログラムは、コンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。記録媒体は、ハードディスク、フレキシブルディスク、CD(Compact Disc)-ROM、MO(Magneto Optical disc)、DVD(Digital Versatile Disc)などである。また、本実施の形態で説明した制御プログラムは、インターネットなどのネットワークを介して配布してもよい。
【0223】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0224】
(付記1)異なるデータ群を有する複数の実行環境に含まれる第1実行環境が有する第1データ群のうち、クエリのアクセス単位となるデータグループごとに、当該クエリによる処理負荷に関する統計値を示す統計情報に基づいて、前記第1データ群のうち、クエリによる処理負荷が第1基準値未満である第1データグループを特定し、
前記第1実行環境以外で、前記複数の実行環境に含まれる、特定した前記第1データグループを含む第2データ群を有する第2実行環境を特定し、
特定した前記第1データグループをアクセス単位とする新たなクエリを、特定した前記第2実行環境に送信するよう、前記複数の実行環境を制御する、
処理をコンピュータが実行することを特徴とする制御方法。
【0225】
(付記2)前記第2実行環境を特定する処理は、
前記第1実行環境以外で、前記複数の実行環境に含まれる、特定した前記第1データグループを含み、かつ、前記第1データ群のうち、特定した前記第1データグループ以外の少なくともいずれかのデータを含まない第2データ群を有する第2実行環境を特定する、ことを特徴とする付記1に記載の制御方法。
【0226】
(付記3)前記第2実行環境を特定する処理は、
現時点における前記複数の実行環境のそれぞれの実行環境の処理負荷に関する測定値に基づいて、前記第1実行環境以外で、前記複数の実行環境に含まれる、特定した前記第1データグループを含むデータ群を有し、かつ、他の実行環境より処理負荷に関する測定値が小さい第2実行環境を特定する、ことを特徴とする付記1に記載の制御方法。
【0227】
(付記4)前記統計値は、クエリを受け付けた回数を含み、
前記第1データグループを特定する処理は、
前記統計情報に基づいて、前記第1データ群のうち、クエリによる処理負荷が前記第1基準値未満であり、かつ、クエリを受け付けた回数に関する指標値が所定値以上である第1データグループを特定する、ことを特徴とする付記1~3のいずれか一つに記載の制御方法。
【0228】
(付記5)前記統計情報に基づいて、前記第1データ群のうち、クエリによる処理負荷が第2基準値以上である第2データグループを特定し、
特定した前記第2データグループを含み、かつ、少なくとも前記第1データ群のいずれかのデータを含まない第3データ群を有する、前記複数の実行環境とは異なる新たな第3実行環境を生成し、前記複数の実行環境に追加し、
特定した前記第2データグループをアクセス単位とする新たなクエリを、追加した前記第3実行環境に送信するよう、前記複数の実行環境を制御する、
処理を前記コンピュータが実行することを特徴とする付記1~3のいずれか一つに記載の制御方法。
【0229】
(付記6)前記統計情報に基づいて、前記第1データ群のうち、特定した前記第2データグループについて、クエリによる処理負荷が第3基準値未満になったことを検出した場合、追加した前記第3実行環境を、前記複数の実行環境から削除し、
特定した前記第2データグループをアクセス単位とする新たなクエリを、前記複数の実行環境のうち、特定した前記第2データグループを含む第4データ群を有する第4実行環境に送信するよう、前記複数の実行環境を制御する、
処理を前記コンピュータが実行することを特徴とする付記5に記載の制御方法。
【0230】
(付記7)特定した前記第1データグループをアクセス単位とする新たなクエリを、検索した前記第2実行環境に送信する場合について、クエリによる処理負荷に対する低減効果の大きさを示す第1指標値を算出し、
特定した前記第2データグループをアクセス単位とする新たなクエリを、追加した前記第3実行環境に送信する場合について、クエリによる処理負荷に対する低減効果の大きさを示す第2指標値を算出する、
処理を前記コンピュータが実行し、
前記第2実行環境に送信する処理は、
算出した前記第1指標値が、算出した前記第2指標値より一定値以上大きい場合には、特定した前記第1データグループをアクセス単位とする新たなクエリを、特定した前記第2実行環境に送信するよう、前記複数の実行環境を制御し、
前記第3実行環境に送信する処理は、
算出した前記第1指標値が、算出した前記第2指標値より前記一定値以上大きくない場合には、特定した前記第2データグループをアクセス単位とする新たなクエリを、追加した前記第3実行環境に送信するよう、前記複数の実行環境を制御する、ことを特徴とする付記5に記載の制御方法。
【0231】
(付記8)前記第1データグループを特定する処理は、
前記第2データグループを特定したことに応じて、前記統計情報に基づいて、前記第1データ群のうち、クエリによる処理負荷が前記第1基準値未満である第1データグループを特定する、ことを特徴とする付記5に記載の制御方法。
【0232】
(付記9)前記第1データグループを特定する処理は、
前記統計情報に基づいて、前記第2データグループ以外で、前記第1データ群のうち、クエリによる処理負荷が前記第1基準値未満である第1データグループを特定する、ことを特徴とする付記5に記載の制御方法。
【0233】
(付記10)現時点における前記複数の実行環境のそれぞれの実行環境の処理負荷に関する測定値に基づいて、他の実行環境より処理負荷に関する測定値が大きい第1実行環境を選択する、
処理を前記コンピュータが実行し、
前記第1データグループを特定する処理は、
前記統計情報に基づいて、選択した前記第1実行環境が有する第1データ群のうち、クエリによる処理負荷が前記第1基準値未満である第1データグループを特定する、ことを特徴とする付記1~3のいずれか一つに記載の制御方法。
【0234】
(付記11)前記複数の実行環境のそれぞれの実行環境は、コンテナである、ことを特徴とする付記1~3のいずれか一つに記載の制御方法。
【0235】
(付記12)前記データ群のデータは、テーブルである、ことを特徴とする付記1~3のいずれか一つに記載の制御方法。
【0236】
(付記13)異なるデータ群を有する複数の実行環境に含まれる第1実行環境が有する第1データ群のうち、クエリのアクセス単位となるデータグループごとに、当該クエリによる処理負荷に関する統計値を示す統計情報に基づいて、前記第1データ群のうち、クエリによる処理負荷が第1基準値未満である第1データグループを特定し、
前記第1実行環境以外で、前記複数の実行環境に含まれる、特定した前記第1データグループを含む第2データ群を有する第2実行環境を特定し、
特定した前記第1データグループをアクセス単位とする新たなクエリを、特定した前記第2実行環境に送信するよう、前記複数の実行環境を制御する、
処理をコンピュータに実行させることを特徴とする制御プログラム。
【0237】
(付記14)異なるデータ群を有する複数の実行環境に含まれる第1実行環境が有する第1データ群のうち、クエリのアクセス単位となるデータグループごとに、当該クエリによる処理負荷に関する統計値を示す統計情報に基づいて、前記第1データ群のうち、クエリによる処理負荷が第1基準値未満である第1データグループを特定し、
前記第1実行環境以外で、前記複数の実行環境に含まれる、特定した前記第1データグループを含む第2データ群を有する第2実行環境を特定し、
特定した前記第1データグループをアクセス単位とする新たなクエリを、特定した前記第2実行環境に送信するよう、前記複数の実行環境を制御する、
制御部を有することを特徴とする情報処理装置。
【0238】
(付記15)異なるデータ群を有する複数の実行環境に含まれる第1実行環境が有する第1データ群のうち、クエリのアクセス単位となるデータグループごとに、当該クエリによる処理負荷に関する統計値を示す統計情報に基づいて、前記第1データ群のうち、クエリによる処理負荷が第1基準値以上である第1データグループを特定し、
特定した前記第1データグループを含み、かつ、少なくとも前記第1データ群のいずれかのデータを含まない第2データ群を有する、前記複数の実行環境とは異なる新たな第2実行環境を生成し、前記複数の実行環境に追加し、
特定した前記第1データグループをアクセス単位とする新たなクエリを、追加した前記第2実行環境に送信するよう、前記複数の実行環境を制御する、
処理をコンピュータが実行することを特徴とする制御方法。
【符号の説明】
【0239】
100 情報処理装置
300 情報処理システム
301 通信制御装置
302 情報蓄積装置
303 クライアント装置
310 ネットワーク
401 制御コンテナ
402 負荷分散コンテナ
403 アプリケーションコンテナ
404 DBコンテナ
500 バス
501 CPU
502 メモリ
503 ネットワークI/F
504 記録媒体I/F
505 記録媒体
600 統計情報管理テーブル
700 クエリ情報管理テーブル
800 記憶部
801 取得部
802 判定部
803 特定部
804 算出部
805 更新部
806 設定部
807 出力部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19