JP6278908B2 - 管理装置、および、ソフトウェアコンポーネントグルーピング方法 - Google Patents

管理装置、および、ソフトウェアコンポーネントグルーピング方法 Download PDF

Info

Publication number
JP6278908B2
JP6278908B2 JP2015019051A JP2015019051A JP6278908B2 JP 6278908 B2 JP6278908 B2 JP 6278908B2 JP 2015019051 A JP2015019051 A JP 2015019051A JP 2015019051 A JP2015019051 A JP 2015019051A JP 6278908 B2 JP6278908 B2 JP 6278908B2
Authority
JP
Japan
Prior art keywords
software components
communication frequency
pair
layer
group
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
JP2015019051A
Other languages
English (en)
Other versions
JP2016143257A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2015019051A priority Critical patent/JP6278908B2/ja
Publication of JP2016143257A publication Critical patent/JP2016143257A/ja
Application granted granted Critical
Publication of JP6278908B2 publication Critical patent/JP6278908B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、分散システムに適用されるアプリケーションを構成する複数のソフトウェアコンポーネントの適切な配置を決定する技術に関する。
近年、階層化された分散システムにアプリケーションを適用することが増えている。例えば、図10に示すように、対象とする分散システムは、下位層から順に、データセンタ、同スイッチ配下のラック、物理サーバ、仮想サーバの4つの階層からなる。
データセンタは、複数設けられている。
1つのデータセンタに、複数のラックが対応して設けられている。
1つのラックに、複数の物理サーバが対応して設けられている。
1つの物理サーバに、複数の仮想サーバが対応して設けられている。
1つの仮想サーバに、複数のプロセスが対応して設けられている。
そして、プロセスに、ソフトウェアコンポーネントが1対1対応で配置(ロード)される。
アプリケーションは、複数のソフトウェアコンポーネントから構成される。ここで、ソフトウェアコンポーネントとは、何らかの機能を提供するソフトウェアのひとまとまりを指す。
図10に示す分散システムでは、任意のソフトウェアコンポーネント間で通信が発生する。そして、ソフトウェアコンポーネント同士の通信は、経由する階層が下位層であるほど時間がかかる。つまり、このような階層化された分散システムでは、通信経路が下位層に及ぶほど通信遅延が増大してしまうため、通信頻度の高いソフトウェアコンポーネント間の通信経路が下位層に及んでしまうと、通信遅延の影響が顕著に表れてしまう。
したがって、ソフトウェアコンポーネントの配置が処理時間(通信時間)を大きく左右するので、通信遅延を低減するには、ソフトウェアコンポーネント間の通信が、なるべく上位層で行われるようにすることが必要である。
また、これに関連して、非特許文献1では、物理サーバに対して仮想マシンを割り当てるアルゴリズムについて開示されている。
Gaston Keller, Michael Tighe, Hanan Lutfiyya and Michael Bauer, "An Analysis of First Fit Heuristics for the Virtual Machine Relocation Problem", 6th International DMTF workshop on Systems and Virtualization Management (SVM 2012) / CNSM 2012, p.406-413
しかしながら、各階層の装置(仮想サーバ、物理サーバなど)にはそれぞれの容量があり、また、ソフトウェアコンポーネントの数が多いと、通信を行うソフトウェアコンポーネントのペアの組み合わせが多くなるので、通信遅延を低減するためにソフトウェアコンポーネントの適切な配置を決定するのは難しい。この点、上記した非特許文献1の技術によっても解決することができない。
そこで、本発明は、複数階層を有する分散システムに適用されるアプリケーションを構成する複数のソフトウェアコンポーネントの適切な配置を決定するために、ソフトウェアコンポーネントを適切にグルーピングすることを課題とする。
前記課題を解決するために、本発明は、第1階層から第N階層(Nは2以上の整数)まで有する分散システムに適用されるアプリケーションを構成する複数のソフトウェアコンポーネントの配置を決定する管理装置であって、前記分散システムにおいて、前記ソフトウェアコンポーネントは前記第1階層に配置され、前記ソフトウェアコンポーネント同士の通信は、経由する階層が下位層であるほど時間がかかり、前記管理装置は、通信する前記ソフトウェアコンポーネントのペアごとの通信頻度データを記憶する記憶部と、前記記憶部の通信頻度データを参照し、通信する前記ソフトウェアコンポーネントのすべてのペアについて、通信頻度の高いペアから順に、ペアを同じ第1階層グループに所属させるか、または、所定の第1制約条件によりペアを同じ前記第1階層グループに所属させられない場合には、ペアの通信頻度を、それぞれが所属する第1階層グループ間の通信頻度として加算することで、第1階層グルーピングを完了し、次に、通信する前記第1階層グループのすべてのペアについて、通信頻度の高いペアから順に、ペアを同じ第2階層グループに所属させるか、または、所定の第2制約条件によりペアを同じ前記第2階層グループに所属させられない場合には、ペアの通信頻度を、それぞれが所属する第2階層グループ間の通信頻度として加算することで、第2階層グルーピングを完了し、さらに、同様のグルーピング処理を前記第N階層まで繰り返し実施し、前記ソフトウェアコンポーネントを階層的にグルーピングする処理部と、を備えることを特徴とする。
これによれば、アプリケーションを構成する複数のソフトウェアコンポーネントについて、通信頻度が高いペアほど上位層でグルーピングすることができる、つまり、ソフトウェアコンポーネントを適切にグルーピングすることができる。
また、本発明は、前記所定の第1制約条件が、前記第1階層グループに所属させることができる前記ソフトウェアコンポーネントの数の上限値であり、前記所定の第2制約条件が、前記第2階層グループに所属させることができる前記第1階層グループの数の上限値であることが好ましい。
これによれば、第1階層グループに対応する装置(例えば仮想サーバ)、第2階層グループに対応する装置(例えば物理サーバ)の容量に基づいて、それぞれ、所定の第1制約条件、所定の第2制約条件を設定することができるので、分散システムの仕様に基づいたソフトウェアコンポーネントのグルーピングを実行することができる。
また、本発明は、前記通信頻度データが、前記分散システムへ前記ソフトウェアコンポーネントを配置する前に予測した前記ソフトウェアコンポーネント同士の通信頻度のデータであり、前記処理部が、当該通信頻度データに基づき、前記ソフトウェアコンポーネントを階層的にグルーピングし、前記分散システムに対する前記ソフトウェアコンポーネントの初期配置を実行することが好ましい。
これによれば、分散システムへソフトウェアコンポーネントを配置する前に予測したソフトウェアコンポーネント同士の通信頻度のデータに基づき、ソフトウェアコンポーネントを階層的にグルーピングし、分散システムに対するソフトウェアコンポーネントの初期配置を実行することができる。
また、本発明は、前記通信頻度データが、前記分散システムにおける前記ソフトウェアコンポーネント間の実際の通信頻度を集計したデータであり、前記処理部が、当該通信頻度データに基づき、前記ソフトウェアコンポーネントを階層的にグルーピングし、前記分散システムに対する前記ソフトウェアコンポーネントの再配置を実行することが好ましい。
これによれば、分散システムにおけるソフトウェアコンポーネント間の実際の通信頻度を集計した通信頻度データに基づき、ソフトウェアコンポーネントを階層的にグルーピングし、分散システムに対するソフトウェアコンポーネントの再配置を実行することができる。
本発明によれば、複数階層を有する分散システムに適用されるアプリケーションを構成する複数のソフトウェアコンポーネントの適切な配置を決定するために、ソフトウェアコンポーネントを適切にグルーピングすることができる。
本実施形態の分散システムと管理装置の全体構成図である。 ソフトウェアコンポーネントのグルーピング処理のステップ1の説明図である。 ソフトウェアコンポーネントのグルーピング処理のステップ2の説明図である。 ステップ2における判定アルゴリズムのケース1の場合の説明図である。 ステップ2における判定アルゴリズムのケース2の場合の説明図である。 ステップ2における判定アルゴリズムのケース3の場合の説明図である。 ステップ2における判定アルゴリズムのケース4の場合の説明図である。 ソフトウェアコンポーネントのグルーピング処理のステップ3の説明図である。 ソフトウェアコンポーネントのグルーピング処理のステップ4の説明図である。 従来技術の分散システムにおける通信遅延の説明図である。
以下、本発明に係る分散システム1および管理装置2の実施形態について、図面を参照して説明する。
図1に示すように、分散システム1は、複数のソフトウェアコンポーネントから構成されるアプリケーションを適用する対象のシステムであり、下位層から順に、データセンタ11、同スイッチ配下のラック12、物理サーバ13、仮想サーバ14の4つの階層からなる。
データセンタ11は、複数設けられている。
1つのデータセンタ11に、複数のラック12が対応して設けられている。
1つのラック12に、複数の物理サーバ13が対応して設けられている。
1つの物理サーバ13に、複数の仮想サーバ14が対応して設けられている。
1つの仮想サーバ14に、複数のプロセス15が対応して設けられている。
プロセス15に、ソフトウェアコンポーネント3(以下、符号無しで「ソフトウェアコンポーネント」と称する。)が1対1対応で配置される。
分散システム1において、プロセス15に対応して配置されたソフトウェアコンポーネント同士の通信は、経由する階層が下位層であるほど時間がかかる。例えば、仮想サーバ14を経由するよりも物理サーバ13を経由するほうが、時間がかかる。また、物理サーバ13を経由するよりもラック12を経由するほうが、時間がかかる。さらに、ラック12を経由するよりもデータセンタ11を経由するほうが、時間がかかる。
管理装置2は、分散システム1に適用されるアプリケーションを構成する複数のソフトウェアコンポーネントの配置を決定するコンピュータ装置であり、処理部21、記憶部22、入力部23、出力部24、通信部25を備えて構成される。
処理部21は、記憶部22に記憶された各データに基づいて、分散システム1に適用されるアプリケーションを構成する複数のソフトウェアコンポーネントの配置を決定する。具体的には、初期配置を決定して実行し、また、再配置を決定し実行する。処理部21は、例えばCPU(Central Processing Unit)によって実現される。
記憶部22は、通信頻度データ、グルーピングデータ、ソフトウェアコンポーネント配置データなどを記憶し、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)などによって実現される。
通信頻度データは、ソフトウェアコンポーネントのペアごとの通信頻度のデータであり、例えば、分散システム1へソフトウェアコンポーネントを配置する前に予測したソフトウェアコンポーネント同士の通信頻度のデータである。
その場合、処理部21は、当該通信頻度データに基づき、ソフトウェアコンポーネントを階層的にグルーピングし、分散システム1に対するソフトウェアコンポーネントの初期配置を実行する(詳細は後記)。
また、通信頻度データは、分散システム1におけるソフトウェアコンポーネント間の実際の通信頻度を集計したデータであってもよい。
その場合、処理部21は、当該通信頻度データに基づき、ソフトウェアコンポーネントを階層的にグルーピングし、分散システム1に対するソフトウェアコンポーネントの再配置を実行する(詳細は後記)。
グルーピングデータは、処理部21が記憶部22の通信頻度データに基づいてソフトウェアコンポーネント間の通信がなるべく上位層で行われるようにソフトウェアコンポーネントのグルーピングを行った結果のデータである。
ソフトウェアコンポーネント配置データは、処理部21が記憶部22のグルーピングデータに基づいて分散システム1に対するソフトウェアコンポーネントの配置を行った結果のデータである。
入力部23は、管理装置2のユーザが情報を入力するための入力インタフェースであり、例えばキーボード、マウス、タッチパネルなどによって実現される。
出力部24は、情報を出力するための出力インタフェースであり、例えば、液晶画面表示装置により実現される。
通信部25は、分散システム1などの外部装置との通信を行うための通信インタフェースである。
次に、本実施形態における処理の概要を説明する。なお、説明を簡潔にするために、処理主体が管理装置2の処理部21であることや、その処理部21が記憶部22の各データを用いることなどの記載は、適宜省略する。
また、第1階層グループとは、通信頻度が高いソフトウェアコンポーネント(各図では単に「コンポーネント」と記載している場合もある。)をグルーピングしたグループである。そして、1つの第1階層グループは、1つの仮想サーバ14に対応する。
また、第2階層グループとは、通信頻度が中程度のソフトウェアコンポーネントをグルーピングしたグループである。つまり、通信頻度が中程度のソフトウェアコンポーネントのペアは、第1階層グループとしてはグルーピングされていないが、第2階層グループとしてグルーピングされることになる。そして、1つの第2階層グループは、1つの物理サーバ13に対応する。
また、第3階層グループとは、通信頻度が低いソフトウェアコンポーネントをグルーピングしたグループである。つまり、通信頻度が低いソフトウェアコンポーネントのペアは、第1階層グループ、第2階層グループとしてはグルーピングされていないが、第3階層グループとしてグルーピングされることになる。そして、1つの第3階層グループは、1つのラック12に対応する。
なお、図1には図示していないが、図8、図9に図示しているように、第4階層グループとは、通信頻度がさらに低いソフトウェアコンポーネントをグルーピングしたグループである。つまり、通信頻度がさらに低いソフトウェアコンポーネントのペアは、第1階層グループ、第2階層グループ、第3階層グループとしてはグルーピングされていないが、第4階層グループとしてグルーピングされることになる。そして、1つの第4階層グループは、1つのデータセンタ11に対応する。
本実施形態では、通信頻度が高いソフトウェアコンポーネントのペアがなるべく上位層で通信できるよう、ソフトウェアコンポーネント間の通信頻度に基づいてソフトウェアコンポーネントを階層的にグルーピングする(図1の符号A)。
そして、そのグルーピング結果に基づいて、分散システム1にソフトウェアコンポーネントを配置する(符号B)。
より具体的には、本実施形態によるグルーピング処理は、次のステップ1〜4により実現できる。なお、ここでは、ソフトウェアコンポーネントの初期配置ではなく再配置の場合を例にとって説明する。
<ステップ1>
アプリケーションを構成するすべてのソフトウェアコンポーネント間の通信回数(通信頻度)を一定期間計測する。
<ステップ2>
ソフトウェアコンポーネント間の通信頻度(記憶部22の通信頻度データ)に基づき、ソフトウェアコンポーネントの第1階層でのグルーピングを実施する。
<ステップ3>
グルーピングを階層的に繰り返し実施する。
<ステップ4>
階層的にグルーピングしたソフトウェアコンポーネントを、階層化された分散システム1へ対応付けて配置する。
以下、各ステップについて詳述する。
<ステップ1>
ステップ1では、前記したように、アプリケーションを構成するすべてのソフトウェアコンポーネント間の通信回数を一定期間計測する。
具体的には、図2に示すように、アプリケーションを構成するソフトウェアコンポーネントの集合Sに含まれるソフトウェアコンポーネントs,s間の通信回数をc(s,s)として、本ステップによりcの集合C={c(s,s)|s<s∧s∈S∧s∈S}を得る。例えば、s,sの間の通信回数が18回であることは、c(s,s)=18と表すことができる。
<ステップ2>
ステップ2では、まず、通信するソフトウェアコンポーネントのすべてのペアについて、通信頻度の高いペアから順に、ペアを同じ第1階層グループに所属させるか、または、所定の第1制約条件によりペアを同じ第1階層グループに所属させられない場合には、ペアの通信頻度を、それぞれが所属する第1階層グループ間の通信頻度として加算することで、第1階層グルーピングを完了する。
その後、通信する第1階層グループのすべてのペアについて、通信頻度の高いペアから順に、ペアを同じ第2階層グループに所属させるか、または、所定の第2制約条件によりペアを同じ第2階層グループに所属させられない場合には、ペアの通信頻度を、それぞれが所属する第2階層グループ間の通信頻度として加算することで、第2階層グルーピングを完了する。
その後、さらに、同様のグルーピング処理を第N階層(Nは2以上の整数)まで繰り返し実施する。
このステップ2を実現するための具体的なステップ2−1〜2−5について、図3を参照して説明する。
ステップ2−1では、集合Cの要素c(s,s)を降順にソートする。
次に、ステップ2−2では、先頭の要素c(s,s)を取得する。つまり、通信回数の多いペアからグルーピング処理を実施する。
次に、ステップ2−3では、判定アルゴリズムに基づいてグルーピング条件判定を行う。この判定アルゴリズムについては、図4〜図7を用いて後記する。
次に、ステップ2−4では、適切なグループgへソフトウェアコンポーネントs,sを追加する。この際、符号2−4−1に示すように、一例として、c(s,s)を処理する場合、例えば、既にsが属していたグループgへsを挿入することが考えられる。その場合、そのペアの通信回数c(s,s)は保存される。
また、符号2−4−2に示すように、ペア(sとs)が別グループに分かれる場合、グループ間の通信回数c(g,g)に、そのペアの通信回数c(s,s)を加算(カウント)する。
次に、ステップ2−5(不図示)では、ステップ2−2〜2−4を繰り返し実施する。つまり、集合Cのすべての要素に対してステップ2−2〜2−4を実施する。
このようにして、ステップ2を実現することができる。
次に、ステップ2−3で用いる判定アルゴリズムにおける4つの場合分けであるケース1〜ケース4について、図4〜図7を参照して説明する。
なお、ケース1〜ケース4とは、次の通りである。
ケース1:s,sのいずれも既存のグループに属さない場合
ケース2:s,sのどちらか一方だけ既存のグループに属する場合
ケース3:s,sのそれぞれが既存の別々のグループに属する場合
ケース4:s,sの両方が既存の同じグループに属する場合
(ケース1)
まず、ケース1について、図4を参照して説明する。
,sのいずれも既存のグループに属さない場合、新しくグループを作成する。例えば、図4(a)に示すように、判定対象のソフトウェアコンポーネントペアがs,sで、いずれも既存のグループg,gに属さない場合、図4(b)に示すように、新しくグループgを作成し、そのグループgにs,sを入れる。その場合、そのペアの通信回数(c(s,s)=75)は保存される。
(ケース2)
次に、ケース2について、図5を参照して説明する。ここで、所定の第1制約条件として、第1階層グループに所属させることができるソフトウェアコンポーネントの数の上限値(max(|g|))が決まっているものとする。この上限値(max(|g|))は、仮想サーバ14の容量等に基づいて予め決定しておく。
,sのどちらか一方だけ既存のグループに属する場合、sが既存のグループgに属すると仮定する。そのとき、グループgの要素数が上限値に達していないとすると(max(|g|)>|g|)、gにsを挿入する。例えば、図5(a)に示すように、判定対象のソフトウェアコンポーネントのペアであるs5,のうち、sだけが既存のグループgに属するとき、グループgの要素数が上限値に達していないとすると(max(|g|)>5)、図5(b)に示すように、gにsを挿入する。その場合、そのペアの通信回数(c(s,s)=66)は保存される。
また、グループgの要素数が既に上限値に達しているとすると(max(|g|)=|g|)、新たなグループgを作成し、グループgにsを挿入する。さらに、グループ間の通信回数c(g,g)に、そのペアの通信回数c(s,s)を加算する。例えば、図5(a)の例で、sが属する既存のグループgの要素数が既に上限値に達しているとすると(max(|g|)=5)、新たなグループgを作成し、そのグループgにsを挿入する。さらに、グループ間の通信回数c(g,g)に、そのペアの通信回数(c(s,s)=66)を加算する。
なお、既存のグループに属するのがsではなくsの場合も同様である。
(ケース3)
次に、ケース3について、図6を参照して説明する。s,sのそれぞれが既存の別々のグループに属する場合、例えば、s,sのそれぞれが既存の別々のグループg,gに属すると仮定する。そのとき、グループgとgの要素数の合計が上限値を超えないとすると(max(|g|)≧|g|+|g|)、gとgをマージ(統合)する。例えば、図6(a)に示すように、判定対象のソフトウェアコンポーネントのペアであるs1,のそれぞれが既存の別々のグループg,gに属するとき、グループgとgの要素数の合計が上限値を超えないとすると(max(|g|)≧6(=3+3))、図6(b)に示すように、gとgをマージする。その場合、そのペアの通信回数(c(s,s)=60)は保存される。
一方、グループgとgの要素数の合計が上限値を超えるとすると(max(|g|)<|g|+|g|)、グループ間の通信回数c(g,g)に、そのペアの通信回数c(s,s)を加算する。例えば、図6(a)の例で、グループgとgの要素数の合計が上限値を超えるとすると(max(|g|)<6(=3+3))、グループ間の通信回数c(g,g)に、そのペアの通信回数(c(s,s)=60)を加算する。
(ケース4)
次に、ケース4について、図7を参照して説明する。
,sの両方が既存の同じグループに属する場合、グルーピングはそのままで、通信回数c(s,s)の情報を追加する。例えば、図7(a)に示すように、判定対象のソフトウェアコンポーネントのペアs,sの両方が既存のグループgに属する場合、図7(b)に示すように、グルーピングはそのままで、通信回数(c(s,s)=70)の情報を追加する。
<ステップ3>
次に、ステップ3では、ステップ2と同様のグルーピングを階層的に繰り返し実施する。つまり、ステップ2ですでに第1階層グループとしてのグルーピングが完了しているので、まず、第1階層グループ単位でグルーピングを行って第2階層グループを作成し、その第2階層グループ単位でグルーピングを行って第3階層グループを作成し、という処理を最終の第N階層グループを作成するまで行う。
このステップ3に関し、第1階層グループのグルーピング結果に基づいて次のグルーピングを行う具体的な手順であるステップ3−1〜3−5について、図8を参照して説明する。なお、ステップ2で用いていた所定の第1制約条件の代わりに、ステップ3では第2階層グループに所属させることができる第1階層グループの数の上限値である所定の第2制約条件を用いる。この所定の第2制約条件としての上限値は、例えば、一つの物理サーバ13上に搭載可能な仮想サーバ14の数などである。
ステップ3−1では、集合Cの要素c(g,g)を降順にソートする。
次に、ステップ3−2では、先頭の要素c(g,g)を取得する。つまり、通信回数の多いペアからグルーピング処理を実施する。
次に、ステップ3−3では、判定アルゴリズムに基づいてグルーピング条件判定を行う。この判定アルゴリズムについては、ステップ2における判定アルゴリズムと同様であるので、説明を省略する。
次に、ステップ3−4では、適切なグループ(第2階層グループ)へg,gを追加する。この際、ステップ2−4と同様、ペア(g,g)が別グループに分かれる場合、そのグループ間の通信回数に、そのペアの通信回数c(g,g)を加算する。
次に、ステップ3−5(不図示)では、ステップ3−2〜3−4を繰り返し実施する。つまり、集合Cのすべての要素に対してステップ3−2〜3−4を実施する。
このようなステップ3を、最終階層グループを作成するまで行う。最終階層グループが第4階層グループである場合、階層的なグルーピングが完了した状態は、図8(b)に示す通りである。このグルーピングの結果のデータは、記憶部22のグルーピングデータとして記憶される。
<ステップ4>
ステップ4では、図9に示すように、ソフトウェアコンポーネントのグループ階層を分散システム1の階層と対応付け、ソフトウェアコンポーネントを分散システム1へ配置する。つまり、同じ第1階層グループ内のソフトウェアコンポーネントは、同じ仮想サーバ14内に配置される。また、同じ第2階層グループ内の第1階層グループは、同じ物理サーバ13内に配置される。また、同じ第3階層グループ内の第2階層グループは、同じラック12内に配置される。また、同じ第4階層グループ内の第3階層グループは、同じデータセンタ11内に配置される。このソフトウェアコンポーネントの配置のデータは、記憶部22のソフトウェアコンポーネント配置データとして記憶される。
このように、本実施形態の管理装置2によれば、ソフトウェアコンポーネント同士の通信がなるべく上位層を通るようにソフトウェアコンポーネントの配置を適切に決定することで、下位層の通信を減らし、分散システム1における通信遅延を低減することができる。
また、第1階層グループに対応する仮想サーバ14、第2階層グループに対応する物理サーバ13の容量に基づいて、それぞれ、所定の第1制約条件、所定の第2制約条件を設定することができるので、分散システム1の仕様に基づいたソフトウェアコンポーネントのグルーピングを実行することができる。
また、合理的で簡潔なアルゴリズムなので、ソフトウェアコンポーネント間の通信の組み合わせが増大して通信関係が複雑になった場合でも、ソフトウェアコンポーネントの適切な配置を容易に決定できる。
なお、上記した実施形態では、分散システム1におけるソフトウェアコンポーネント間の実際の通信頻度を集計した通信頻度データに基づき、ソフトウェアコンポーネントを階層的にグルーピングし、分散システム1に対するソフトウェアコンポーネントの再配置を実行するものとした。しかし、それ以外に、分散システム1へソフトウェアコンポーネントを配置する前に予測したソフトウェアコンポーネント同士の通信頻度のデータに基づき、ソフトウェアコンポーネントを階層的にグルーピングし、分散システム1に対するソフトウェアコンポーネントの初期配置を実行するようにしてもよい。つまり、本実施形態の方式によれば、分散システム1に対するソフトウェアコンポーネントの初期配置を決定し、その後、運用状況に追従してソフトウェアコンポーネントの再配置を行うことができる。
以上で本実施形態の説明を終えるが、本発明の態様はこれらに限定されるものではない。
例えば、本実施形態では分散システム1が4つの階層を有する場合について説明したが、これに限定されず、2つの階層、3つの階層、または、5つ以上の階層を有する場合にも適用できる。
また、ソフトウェアコンポーネントとプロセスとの対応は、1対1対応に限定されず、1対N対応(Nは2以上の整数)、N対1対応(Nは2以上の整数)であってもよい。
また、所定の第1制約条件、所定の第2制約条件は、サーバ容量の制限に基づく数値に限定されず、所定の理由により同じグループにグルーピングできないソフトウェアコンポーネントに関する情報などでもよい。
また、ソフトウェアコンポーネントのグルーピング処理を実行するのは、分散システム1の外部にある管理装置2に限定されず、例えば、分散システム1内のデータセンタ11内のコンピュータ装置など、他の装置であってもよい。
その他、具体的な構成について、本発明の主旨を逸脱しない範囲で適宜変更が可能である。
1 分散システム
2 管理装置
3 ソフトウェアコンポーネント
11 データセンタ
12 ラック
13 物理サーバ
14 仮想サーバ
15 プロセス
21 処理部
22 記憶部
23 入力部
24 出力部
25 通信部

Claims (8)

  1. 第1階層から第N階層(Nは2以上の整数)まで有する分散システムに適用されるアプリケーションを構成する複数のソフトウェアコンポーネントの配置を決定する管理装置であって、
    前記分散システムにおいて、前記ソフトウェアコンポーネントは前記第1階層に配置され、前記ソフトウェアコンポーネント同士の通信は、経由する階層が下位層であるほど時間がかかり、
    前記管理装置は、
    通信する前記ソフトウェアコンポーネントのペアごとの通信頻度データを記憶する記憶部と、
    前記記憶部の通信頻度データを参照し、
    通信する前記ソフトウェアコンポーネントのすべてのペアについて、
    通信頻度の高いペアから順に、ペアを同じ第1階層グループに所属させるか、または、所定の第1制約条件によりペアを同じ前記第1階層グループに所属させられない場合には、ペアの通信頻度を、それぞれが所属する第1階層グループ間の通信頻度として加算することで、第1階層グルーピングを完了し、
    次に、
    通信する前記第1階層グループのすべてのペアについて、
    通信頻度の高いペアから順に、ペアを同じ第2階層グループに所属させるか、または、所定の第2制約条件によりペアを同じ前記第2階層グループに所属させられない場合には、ペアの通信頻度を、それぞれが所属する第2階層グループ間の通信頻度として加算することで、第2階層グルーピングを完了し、
    さらに、
    同様のグルーピング処理を前記第N階層まで繰り返し実施し、前記ソフトウェアコンポーネントを階層的にグルーピングする処理部と、
    を備えることを特徴とする管理装置。
  2. 前記所定の第1制約条件は、前記第1階層グループに所属させることができる前記ソフトウェアコンポーネントの数の上限値であり、
    前記所定の第2制約条件は、前記第2階層グループに所属させることができる前記第1階層グループの数の上限値である
    ことを特徴とする請求項1に記載の管理装置。
  3. 前記通信頻度データは、前記分散システムへ前記ソフトウェアコンポーネントを配置する前に予測した前記ソフトウェアコンポーネント同士の通信頻度のデータであり、
    前記処理部は、当該通信頻度データに基づき、前記ソフトウェアコンポーネントを階層的にグルーピングし、前記分散システムに対する前記ソフトウェアコンポーネントの初期配置を実行する
    ことを特徴とする請求項1または請求項2に記載の管理装置。
  4. 前記通信頻度データは、前記分散システムにおける前記ソフトウェアコンポーネント間の実際の通信頻度を集計したデータであり、
    前記処理部は、当該通信頻度データに基づき、前記ソフトウェアコンポーネントを階層的にグルーピングし、前記分散システムに対する前記ソフトウェアコンポーネントの再配置を実行する
    ことを特徴とする請求項1または請求項2に記載の管理装置。
  5. 第1階層から第N階層(Nは2以上の整数)まで有する分散システムに適用されるアプリケーションを構成する複数のソフトウェアコンポーネントの配置を決定する管理装置によるソフトウェアコンポーネントグルーピング方法であって、
    前記分散システムにおいて、前記ソフトウェアコンポーネントは前記第1階層に配置され、前記ソフトウェアコンポーネント同士の通信は、経由する階層が下位層であるほど時間がかかり、
    前記管理装置は、
    通信する前記ソフトウェアコンポーネントのペアごとの通信頻度データを記憶する記憶部と、処理部と、を備えており、
    前記処理部は、
    前記記憶部の通信頻度データを参照し、
    通信する前記ソフトウェアコンポーネントのすべてのペアについて、
    通信頻度の高いペアから順に、ペアを同じ第1階層グループに所属させるか、または、所定の第1制約条件によりペアを同じ前記第1階層グループに所属させられない場合には、ペアの通信頻度を、それぞれが所属する第1階層グループ間の通信頻度として加算することで、第1階層グルーピングを完了し、
    次に、
    通信する前記第1階層グループのすべてのペアについて、
    通信頻度の高いペアから順に、ペアを同じ第2階層グループに所属させるか、または、所定の第2制約条件によりペアを同じ前記第2階層グループに所属させられない場合には、ペアの通信頻度を、それぞれが所属する第2階層グループ間の通信頻度として加算することで、第2階層グルーピングを完了し、
    さらに、
    同様のグルーピング処理を前記第N階層まで繰り返し実施し、前記ソフトウェアコンポーネントを階層的にグルーピングする
    ことを特徴とするソフトウェアコンポーネントグルーピング方法。
  6. 前記所定の第1制約条件は、前記第1階層グループに所属させることができる前記ソフトウェアコンポーネントの数の上限値であり、
    前記所定の第2制約条件は、前記第2階層グループに所属させることができる前記第1階層グループの数の上限値である
    ことを特徴とする請求項5に記載のソフトウェアコンポーネントグルーピング方法。
  7. 前記通信頻度データは、前記分散システムへ前記ソフトウェアコンポーネントを配置する前に予測した前記ソフトウェアコンポーネント同士の通信頻度のデータであり、
    前記処理部は、当該通信頻度データに基づき、前記ソフトウェアコンポーネントを階層的にグルーピングし、前記分散システムに対する前記ソフトウェアコンポーネントの初期配置を実行する
    ことを特徴とする請求項5または請求項6に記載のソフトウェアコンポーネントグルーピング方法。
  8. 前記通信頻度データは、前記分散システムにおける前記ソフトウェアコンポーネント間の実際の通信頻度を集計したデータであり、
    前記処理部は、当該通信頻度データに基づき、前記ソフトウェアコンポーネントを階層的にグルーピングし、前記分散システムに対する前記ソフトウェアコンポーネントの再配置を実行する
    ことを特徴とする請求項5または請求項6に記載のソフトウェアコンポーネントグルーピング方法。
JP2015019051A 2015-02-03 2015-02-03 管理装置、および、ソフトウェアコンポーネントグルーピング方法 Active JP6278908B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015019051A JP6278908B2 (ja) 2015-02-03 2015-02-03 管理装置、および、ソフトウェアコンポーネントグルーピング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015019051A JP6278908B2 (ja) 2015-02-03 2015-02-03 管理装置、および、ソフトウェアコンポーネントグルーピング方法

Publications (2)

Publication Number Publication Date
JP2016143257A JP2016143257A (ja) 2016-08-08
JP6278908B2 true JP6278908B2 (ja) 2018-02-14

Family

ID=56570492

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015019051A Active JP6278908B2 (ja) 2015-02-03 2015-02-03 管理装置、および、ソフトウェアコンポーネントグルーピング方法

Country Status (1)

Country Link
JP (1) JP6278908B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6617087B2 (ja) * 2016-09-01 2019-12-04 日本電信電話株式会社 分散処理システム、分散処理方法および分散処理プログラム
KR20240107119A (ko) * 2021-11-22 2024-07-08 소니 세미컨덕터 솔루션즈 가부시키가이샤 정보 처리 장치, 정보 처리 방법, 프로그램

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5666620B2 (ja) * 2010-12-07 2015-02-12 株式会社日立製作所 ネットワークシステム、及びそのサービス品質制御方法
JP5887149B2 (ja) * 2012-01-25 2016-03-16 株式会社エヌ・ティ・ティ・データ 仮想マシン配置装置、仮想マシン配置方法
JP5911319B2 (ja) * 2012-02-02 2016-04-27 三菱電機株式会社 情報処理装置および情報処理方法およびプログラム
WO2014033882A1 (ja) * 2012-08-30 2014-03-06 富士通株式会社 稼働管理装置、稼働管理方法、稼働管理プログラム及び記録媒体

Also Published As

Publication number Publication date
JP2016143257A (ja) 2016-08-08

Similar Documents

Publication Publication Date Title
CN102968503B (zh) 数据库系统的数据处理方法以及数据库系统
US10409696B2 (en) Scalable data storage pools
JP6083300B2 (ja) プログラム、並列演算方法および情報処理装置
US20140320497A1 (en) Graph partitioning for massive scale graphs
US11341049B2 (en) Method, apparatus, and computer program product for managing storage system
JP6446125B2 (ja) リソースリーク検出の方法、装置及びシステム
JP2019536146A (ja) プログラム可能クロックモニタ
US20190004728A1 (en) Method and device for managing storage system
WO2021189695A1 (zh) 分布式的数据库动态扩容方法、装置、设备及存储介质
CN103345519B (zh) 无共享分布式数据库的数据分布的方法和装置
US10229145B2 (en) Building of a hash table
JP6278908B2 (ja) 管理装置、および、ソフトウェアコンポーネントグルーピング方法
CN111083189A (zh) 用于在运行时处理数据倾斜的系统和方法
JP6387994B2 (ja) 管理装置、管理方法及びプログラム
US10884861B2 (en) Write-balanced parity assignment within a cluster
JP6714158B2 (ja) 制御装置、制御方法及び制御プログラム
CN104238834A (zh) 一种提高触控灵敏度的方法及系统
JP6417341B2 (ja) 管理装置、および、ソフトウェアコンポーネントグルーピング方法
US9569470B2 (en) Managing sharing relationship of tables
CN105988954B (zh) 区域描述元管理方法及其电子装置
US11709755B2 (en) Method, device, and program product for managing storage pool of storage system
US10725879B2 (en) Resource management apparatus, resource management method, and nonvolatile recording medium
US10586007B1 (en) Multi-dimensional placement
CN113391758A (zh) 在存储系统中管理条带的方法、设备和计算机程序产品
RU2515211C1 (ru) Спецпроцессор для поиска гамильтоновых циклов в графах

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171221

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180116

R150 Certificate of patent or registration of utility model

Ref document number: 6278908

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150