JP2013196384A - 制御装置、管理装置、情報処理システム、制御装置の動作方法、管理装置の動作方法、情報処理システムの動作方法およびプログラム - Google Patents

制御装置、管理装置、情報処理システム、制御装置の動作方法、管理装置の動作方法、情報処理システムの動作方法およびプログラム Download PDF

Info

Publication number
JP2013196384A
JP2013196384A JP2012062827A JP2012062827A JP2013196384A JP 2013196384 A JP2013196384 A JP 2013196384A JP 2012062827 A JP2012062827 A JP 2012062827A JP 2012062827 A JP2012062827 A JP 2012062827A JP 2013196384 A JP2013196384 A JP 2013196384A
Authority
JP
Japan
Prior art keywords
memory
information processing
information
control device
access
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.)
Granted
Application number
JP2012062827A
Other languages
English (en)
Other versions
JP5831319B2 (ja
Inventor
Takatsugu Ono
貴継 小野
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012062827A priority Critical patent/JP5831319B2/ja
Priority to US13/783,853 priority patent/US9086803B2/en
Publication of JP2013196384A publication Critical patent/JP2013196384A/ja
Application granted granted Critical
Publication of JP5831319B2 publication Critical patent/JP5831319B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1012Load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】アクセスが集中している情報処理装置の負荷を軽減する。
【解決手段】制御装置30は、複数の情報処理装置20A〜20Bのいずれかを介して管理装置10から発行されるアクセス要求を受け、複数の情報処理装置の各々に割り当てられた複数のメモリ1A、2A、1B、2Bを含む記憶装置40のアクセスを制御する。第1検出部32は、複数のメモリから所定のアクセス頻度を超えるか相対的にアクセス頻度の高い第1のメモリを検出し、第2検出部34は、所定のアクセス頻度以下の第2のメモリを検出し、複数のメモリの各々にアクセスする情報処理装置の割り当て対応情報を記憶し、第1のメモリを第1の情報処理装置から第2のメモリを割り当てた第2の情報処理装置に割り当てるように対応情報を変更して管理装置に通知するとともに、第1のメモリから読み出したデータを第2の情報処理装置を介して管理装置に出力する。
【選択図】図1

Description

本発明は、制御装置、管理装置、情報処理システム、制御装置の動作方法、管理装置の動作方法、情報処理システムの動作方法およびプログラムに関する。
ファイルや画像などのデータを記憶するデータベース等の情報処理システムは、サーバ等の複数の情報処理装置を並列に設けることで、アクセスによる負荷を分散できる。しかし、特定の情報処理装置へのアクセスが集中する場合、アクセスが集中した情報処理装置がボトルネックになり、情報処理システム全体の性能は低下する。
例えば、情報処理装置の負荷を分散させるために、複数の情報処理装置にそれぞれ対応して設けられるデータ領域のうち参照頻度の高いデータ領域が、他の情報処理装置からアクセス可能な共有データ領域に設定される(例えば、特許文献1参照。)。
また、構造型データベースにおいて、レコードを参照するための情報を含むインデックスに、検索条件に合致するレコードの数を示す領域を追加することで、不要なレコードの読み込みは防止され、検索速度は高くなる(例えば、特許文献2参照。)。
特開2005−339236号公報 特開平6−103307号公報
情報処理装置にアクセス要求を出力する管理装置は、情報処理装置の負荷を分散させるために、アクセス要求をどのように分散させるかを決める処理を実施する必要があり、管理装置の負荷は増える。これにより、情報処理システムの性能の向上は抑制される。
1つの側面では、本発明は、管理装置の負荷に配慮した、アクセスが集中している情報処理装置の負荷を軽減することを目的とする。
本発明の一形態では、制御装置は、複数の情報処理装置のいずれかを介して管理装置から発行されるアクセス要求を受け、複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御する制御装置において、それぞれのアクセス頻度に基づき、複数のメモリから所定のアクセス頻度を超えるか又は相対的にアクセス頻度の高い第1のメモリを検出する第1検出部と、それぞれのアクセス頻度に基づき、複数のメモリから所定のアクセス頻度以下の第2のメモリを検出する第2検出部と、複数のメモリの各々にアクセスする情報処理装置の割り当てを示す対応情報を記憶する記憶部と、第1のメモリに第1の情報処理装置を割り当てた旨を、第2のメモリを割り当てた第2の情報処理装置を割り当てるように、対応情報を変更する変更部と、変更部が変更した対応情報を管理装置に通知するとともに、第1のメモリから読み出したデータを、第2の情報処理装置を介して管理装置に出力する出力部とを有している。
アクセスが集中している情報処理装置の負荷を軽減でき、情報処理システムの性能を向上できる。
一実施形態における情報処理システムの例を示している。 別の実施形態における情報処理システムの例を示している。 図2に示した管理テーブルの例を示している。 図2に示した負荷分散テーブルの例を示している。 図2に示した情報処理システムの動作の例を示している。 図2に示した情報処理システムにおいて、記憶装置のメモリをサーバのいずれかに割り当てる動作の例を示している。 図2に示した情報処理システムにデータを書き込むときの管理装置の動作の例を示している。 図2に示した情報処理システムからデータを読み出すときの管理装置の動作の例を示している。 図7に示した書き込み要求および図8に示した読み出し要求を受けた制御装置の動作の例を示している。 図2に示した情報処理システムの負荷分散動作における制御装置の動作の例を示している。 図10に示した負荷分散動作後の管理テーブルの例を示している。 図2に示した情報処理システムの負荷分散動作における割り当ての変更動作の例を示している。 図12に示したステップS150の動作の例を示している。 別の実施形態の情報処理システムの負荷分散動作における制御装置の動作の例を示している。 図14に示した負荷分散動作後の管理テーブルの例を示している。 図14に示したステップS350Aに伴う管理装置およびサーバによる割り当ての変更動作の例を示している。 図15に示した負荷分散動作後の負荷分散テーブルの例を示している。 別の実施形態におけるサーバによる書き込み動作の例を示している。 図18に示した書き込み動作を実施するサーバによる読み出し動作の例を示している。 別の実施形態の制御装置の動作の例を示している。 別の実施形態の情報処理システムにおける負荷分散動作の例を示している。 図21に示した負荷分散動作における割り当ての変更時のアクセス禁止処理の例を示している。 図21に示した負荷分散動作における割り当ての変更動作の例を示している。
以下、図面を用いて実施形態を説明する。信号が伝達される信号線には、信号名と同様の符号を使用する。
図1は、一実施形態における情報処理システムIPSの例を示している。情報処理システムIPSは、管理装置10、複数の情報処理装置20(20A、20B)、制御装置30および記憶装置40を有している。
管理装置10は、情報処理装置20A、20Bのいずれかにアクセス要求を出力する。各情報処理装置20A、20Bは、管理装置10からのアクセス要求を制御装置30に出力する。制御装置30は、情報処理装置20A、20Bのいずれかを介して管理装置10から供給されるアクセス要求を受け、記憶装置40のアクセスを制御する制御装置である。記憶装置40は、情報処理装置20Aに割り当てられたメモリA(1A、2A)と、情報処理装置20Bに割り当てられたメモリB(1B、2B)とを有している。
制御装置30は、他のメモリよりもアクセス頻度が高いメモリの少なくとも1つ(例えば、1A)を高頻度メモリとして求める。また、制御装置30は、高頻度メモリ1Aを割り当てている情報処理装置20Aを除く情報処理装置20Bに割り当てられているメモリBの中で、他のメモリよりもアクセス頻度が低いメモリの少なくとも1つ(例えば、1B)を低頻度メモリとして求める。
ここで、例えば、記憶装置40が有するメモリの平均アクセス頻度よりも高いメモリのいずれかを高頻度メモリとしてもよく、記憶装置40が有するメモリの平均アクセス頻度よりも低いメモリのいずれかを低頻度メモリとしてもよい。
また、制御装置30は、メモリ1A、2A、1B、2B毎のアクセス回数を所定間隔で計数する計数部を有してもよい。そして、検出部32は、アクセス回数が所定のしきい値より多いメモリの中から、アクセス回数が最も多いメモリを高頻度メモリとして求めてもよい。検出部34は、アクセス回数が所定のしきい値より少ないメモリの中から、アクセス回数が最も少ないメモリを低頻度メモリとして求めてもよい。
制御装置30は、メモリA、Bを割り当てている情報処理装置20を示す対応情報が格納される装置情報領域において、高頻度メモリ1Aに対応して格納されている情報を、低頻度メモリ1Bを割り当てている情報処理装置20Bを示す情報に変更し、変更した情報を管理装置10に通知する。通知を受けた管理装置10は、高頻度メモリ1Aへのアクセス要求を、情報処理装置20Aを介してではなく、低頻度メモリ1Bを割り当てている情報処理装置20Bを介して制御装置30に出力する。制御装置30は、アクセス要求に応答して高頻度メモリ1Aから読み出したデータを、装置情報領域において変更した情報により示される低頻度メモリ1Bを割り当てている情報処理装置20Bを介して管理装置10に出力する。例えば、装置情報領域は、メモリ等の記憶部に割り当てられる。なお、装置情報領域は、制御装置20内のメモリに割り当てられてもよい。
この実施形態では、管理装置10は、制御装置30からの通知にしたがって、メモリ等の記憶部に割り当てられるアクセス変更領域を更新し、高頻度メモリ1Aへのアクセス要求の経路を変更すればよい。このため、アクセスの集中を考慮してどの情報処理装置20にアクセス要求を出力すればよいかを判断する必要なない。なお、アクセス変更領域は、管理装置10内のメモリに割り当てられてもよい。
例えば、管理装置10が論理回路等のハードウエアである場合、管理装置10は、受信部12、格納部14および出力部16を有している。受信部12は、制御装置30から高頻度メモリ1Aおよび情報処理装置20Bを示す情報を受けた場合、高頻度メモリ1Aへのアクセス要求を、低頻度メモリ1Bを割り当てている情報処理装置20Bに出力する旨を認識する。
格納部14は、高頻度メモリ1Aに格納されているデータに対応するキーK(K1、K2、K3、...)を示すキー情報とともに、情報処理装置20Bを示す識別情報をアクセス変更領域に格納する。ここで、データに対応するキーは、アクセス要求(書き込み要求)とともにデータを情報処理装置20に出力するときに、管理装置10により予め保持される。
出力部16は、管理装置10にアクセス要求を出力するコンピュータ装置等の上位のシステムからアクセス要求とともに受けるキーが、アクセス変更領域に格納されているときに、アクセス変更領域に格納されている情報処理装置にアクセス要求を出力する。また、出力部16は、上位のシステムから受けるキーが、アクセス変更領域に格納されていないときに、例えば、ハッシュ関数等のアルゴリズムを用いて、キーから得られるバリューが示す情報処理装置20にアクセス要求を出力する。
なお、管理装置10が、CPU(Central Processing Unit)等のプロセッサを含み、管理装置10の機能が、CPUが実行するプログラムにより実現される場合、受信部12、格納部14および出力部16の機能は、プログラムにより実現される。
例えば、制御装置30が論理回路等のハードウエアロジックにより設計される場合、制御装置30は、検出部32、34、変更部36および出力部38を有している。検出部32は、少なくとも1つの高頻度メモリを求め、検出部34は、少なくとも1つの低頻度メモリを求める。変更部36は、高頻度メモリに対応して装置情報領域に格納されている情報処理装置20(この例では、20A)を示す情報を、低頻度メモリを割り当てている情報処理装置20(この例では、20B)を示す情報に変更する。
出力部38は、変更した装置情報領域の内容を管理装置10に通知する。また、出力部38は、高頻度メモリから読み出したデータを、装置情報領域の内容に基づいて、低頻度メモリを割り当てている情報処理装置20を介して管理装置10に出力する。
また、制御装置30が、CPU(Central Processing Unit)等のプログラムを実行するプロセッサを含む場合、制御装置30の検出部32、34、変更部36および出力部38の機能が、プログラムにより実現されてもよい。
以上、この実施形態では、管理装置10にアクセス要求を出力する情報処理装置20を決める等の処理を行うことなく、負荷分散テーブルTBL1を参照することで高頻度メモリ1Aの割り当てを、情報処理装置20Aから情報処理装置20Bに変更できる。この結果、管理装置10の負荷を増やすことなく、アクセスが集中している情報処理装置20Aの負荷を軽減でき、情報処理システムIPSの性能を向上できる。
図2は、別の実施形態における情報処理システムIPSの例を示している。上述した実施形態で説明した要素と同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
情報処理システムIPSは、負荷分散テーブルTBL1を有する管理装置LB、データベースDB、複数のサーバSV(SV0、SV1、SV2)、スイッチSW、制御装置CTRL、管理テーブルTBL2および記憶装置MDを有している。サーバSV0−SV2は、情報処理装置の一例であり、3台に限定されない。管理テーブルTBL2は、記憶部の一例であり、制御装置CTRLの内部メモリやレジスタの一部に含まれてもよい。制御装置CTRLおよび管理テーブルTBL2は、記憶装置MD内に設けられてもよい。図6に示した太い破線は、PCI Express規格の信号を伝達するケーブルまたは信号線を示している。なお、太い破線は、他の規格の信号を伝達するケーブルまたは信号線が使用されてもよい。
情報処理システムIPSは、例えばHTTP(Hyper Text Transfer Protocol)を用いて通信を行うWebサーバであり、インターネット等のコンピュータネットワークNETに接続されたクライアントであるコンピュータPC(Personal Computer)等からアクセスされる。情報処理システムIPSは、アクセス要求に応じて、管理装置LBおよび記憶装置MDに新たなデータを格納し、あるいは、管理装置LBおよび記憶装置MDに格納されているデータを更新する。また、情報処理システムIPSは、アクセス要求に応じて、管理装置LBまたは記憶装置MDに蓄積しているデータを読み出し、読み出したデータをコンピュータネットワークNETに出力する。
管理装置LBは、プロセッサCPUa、メモリMEMa、ネットワークインタフェースカードNICおよびPCI ExpressインタフェースカードPCIeI/Fを有している。管理装置LBは、ネットワークインタフェースカードNICおよび光回線終端装置ONU(Optical Network Unit)等を介してコンピュータネットワークNETに接続されている。また、管理装置LBは、ネットワークインタフェースカードNICを介してデータベースDBおよびサーバSV0−SV2のネットワークインタフェースカードNICに接続されている。
例えば、管理装置LB、データベースDBおよびサーバSV0−SV2は、イーサネット(登録商標)規格のケーブルEthで相互に接続されている。なお、管理装置LB、データベースDBおよびサーバSV0−SV2は、他の規格のケーブルで相互に接続されていてもよい。管理装置LBの負荷分散テーブルTBL1は、記憶部の一例であり、メモリMEMaの一部に含まれ、あるいは、プロセッサCPUの内部メモリやレジスタの一部に含まれる。負荷分散テーブルTBL1については、図4で説明する。
なお、管理装置LBは、ASIC(Application Specific Integrated Circuit)等のロジックLSIにより設計されてもよい。管理装置LBによる処理は、管理装置LBがロジックLSIであるとき、ハードウエアロジックを用いて実行され、管理装置LBがプロセッサやマイクロコントローラであるとき、プログラムにより実行される。
プロセッサCPUaは、メモリMEMaに格納されているプログラムを実行することで動作する。プロセッサCPUaは、ネットワークNETから供給されるデータを、データベースDBおよび記憶装置MDに書き込み、データベースDBまたは記憶装置MDから読み出されるデータをネットワークNETに出力する機能を有している。この際、管理装置LBは、ハッシュ関数等の所定のアルゴリズムを用いて、クエリ等のキー毎に、アクセスするサーバSVを決定する。ここで、キー(クエリ)は、情報処理システムIPSに対する処理要求を示す情報であり、例えば、”コンピュータ”または”サーバ”などの文字列である。
例えば、メモリMEMaは、複数のDRAM(Dynamic Random Access Memory)チップが搭載されたDIMM(Dual Inline Memory Module)等のメモリモジュールである。管理装置LBは、サーバSV0−SV2へのアクセス要求を分散するための負荷分散装置(ロードバランサ)として機能する。但し、管理装置LBは、どのサーバSVにアクセスするかを決める処理は行わない。このため、管理装置LBの負荷を軽減できる。
データベースDBは、例えば、リレーショナルデータベースであり、プロセッサCPUc、ネットワークインタフェースカードNICおよび少なくとも1つのハードディスクドライブ装置HDを有している。
サーバSV0−SV2は、互いに同様の構成であるため、ここでは、サーバSV0について説明する。なお、管理装置LBに接続されるサーバSV0−SV2の数は、2以上であればよい。サーバSV0は、プロセッサCPUb、メモリMEMb、ネットワークインタフェースカードNICおよびPCI ExpressインタフェースカードPCIeI/Fを有している。プロセッサCPUbは、メモリMEMbに格納されているプログラムを実行することで動作する。プロセッサCPUbは、管理装置LBから供給されるデータを、記憶装置MDに書き込み、記憶装置MDから読み出されるデータを管理装置LBに出力する。例えば、メモリMEMbは、メモリMEMaと同様に、複数のDRAMチップが搭載されたメモリモジュールである。
スイッチSWは、サーバSV0−SV2を、PCI Express規格のケーブルまたは信号線を介して記憶装置MDに接続するために、サーバSV0−SV2に共通に設けられている。例えば、サーバSV0−SV2と記憶装置MDとは、MR−IOV(Multi Root I/O Virtualization)技術を用いて、スイッチSWを介して接続されている。そして、各サーバSV0−SV2から出力されるデータが記憶装置MDに伝達され、記憶装置MDから出力されるデータがサーバSV0−SV2のいずれかに伝達される。
記憶装置MDは、複数のメモリMEM(MEM0−MEM9)を有している。例えば、各メモリMEMは、メモリMEMa、MEMbと同様に、複数のDRAMチップが搭載されたメモリモジュールである。なお、メモリMEMは、サーバSVの数より多く設けられればよく、10個に限定されない。メモリMEM0−MEM9は、管理テーブルTBL2に設定される情報に応じて、サーバSV0−SV2のいずれかに割り当てられ、あるいは、予備として割り当てられる。
例えば、制御装置CTRLは、ASIC等のロジックLSIにより設計されている。管理テーブルTBL2は、RAM(Random Access Memory)等のメモリチップ内に設けられてもよく、制御装置CTRLの内部のレジスタやメモリ内に設けられてもよい。管理テーブルTBL2については、図3で説明する。なお、制御装置CTRLは、ROM(Read Only Memory)およびRAMを内蔵するマイクロコントローラやプロセッサCPUであってもよい。
制御装置CTRLは、書き込み要求とともにサーバSV0−SV2から出力されるデータ(クエリに対応するバリュー)を、クエリに関連づけてメモリMEM0−MEM9のいずれかに書き込む。制御装置CTRLは、各サーバSV0−SV2からの読み出し要求に応じて、メモリMEM0−MEM9のいずれかからクエリに対応するデータを読み出し、読み出したデータを、サーバSV0−SV2に出力する。
制御装置CTRLおよび管理テーブルTBL2は、メモリMEM0−MEM9とともに記憶装置MD内に設けられてもよい。サーバSV0−SV2、制御装置CTRLおよび記憶装置MDは、データベースDBに格納されるデータにアクセスするための分散キャッシュサーバとして機能する。
なお、図2に示した情報処理システムIPSは、Webサーバに限定されず、データサーバ、メールサーバ、ファイルサーバ等、HTTPプロトコル以外のプロトコルを用いて通信を行うサーバに適用されてもよい。また、情報処理システムIPSは、オフィスコンピュータ、ワークステーションやメインフレームの分散キャッシュサーバに適用されてもよい。
図3は、図2に示した管理テーブルTBL2の例を示している。管理テーブルTBL2は、制御装置CTRLにより読み書き可能なメモリやレジスタ内に割り当てられる。管理テーブルTBL2は、メモリMEM0−MEM9毎に、メモリMEM0−MEM9を割り当てているサーバ名SVID、クエリ名、アクセス回数およびしきい値を格納する装置情報領域を有している。サーバ名SVIDは、各メモリMEM0−MEM9にアクセスするサーバSV0−SV2を示すための情報が格納される。サーバ名SVIDは、図6に示す情報処理システムIPSの割り当て動作時に、管理装置LBからの通知に基づいて制御装置CTRLにより管理テーブルTBL2に格納される。
クエリが格納されるクエリ名の領域は、各メモリMEMのアドレス空間に対応して区画されている。クエリに対応するデータのメモリMEM内の格納先は、クエリ名の領域内のクエリの格納位置により検出される。図3に示す例では、クエリA、B、Cは、メモリMEM0の先頭の3ブロックにそれぞれ格納され、クエリD、E、Fは、メモリMEM1の2番目、4番目、7番目にそれぞれ格納されていることを示している。クエリ名の空白の領域は、データが書き込まれていないとき、データが消去されているとき、またはタイムアウトによりデータが無効になったことを示している。
制御装置CTRLは、サーバSVからクエリとともにデータの書き込み要求を受けたとき、サーバ名SVIDに対応する複数のメモリMEMの1つを選択し、対応するクエリ名の領域にクエリを書き込む。例えば、制御装置CTRLは、クエリ名の領域を参照することで、空き領域の多いメモリMEMを求め、求めたメモリMEMに対応するクエリ名の領域にクエリを書き込む。あるいは、制御装置CTRLは、ラウンドロビン等の手法を用いて、サーバ名SVIDに対応する複数のメモリMEMのクエリ名の領域に、順次クエリを書き込む。そして、制御装置CTRLは、クエリに対応するデータ(バリュー)を、クエリを格納したクエリ名の領域に対応するメモリMEMの領域に書き込む。
一方、制御装置CTRLは、サーバSVからデータの読み出し要求を受けたとき、読み出し要求とともに受けたクエリを用いて、クエリ名の領域を検索し、クエリに対応するデータが格納されているメモリMEMのブロック領域を求める。そして、制御装置CTRLは、求めたメモリMEMのブロック領域からクエリに対応するデータを読み出し、読み出したデータを、読み出し要求を受けたサーバSVに出力する。
アクセス回数は、メモリMEM毎のアクセス回数を示している。例えば、読み出し要求によるメモリMEMへのアクセスが、書き込み要求によるメモリMEMへのアクセスより十分に多い情報処理システムIPSでは、読み出し要求の数がアクセス回数として登録されてもよい。このとき、制御装置CTRLは、アクセス回数を読み出し要求毎にインクリメントする。読み出し要求の数と書き込み要求の数に大きな差がない情報処理システムIPSでは、読み出し要求と書き込み要求の数の合計がアクセス回数として登録されてもよい。このとき、制御装置CTRLは、アクセス回数を読み出し要求毎および書き込み要求毎にインクリメントする。
制御装置CTRLは、所定の期間が経過したときにアクセス回数をリセットし、図9に示す負荷分散動作時にアクセス回数をリセットする。これにより、アクセス回数により、各メモリMEMのアクセス頻度を示すことができる。アクセス回数が他のメモリMEMより多いメモリMEMはアクセス頻度が高いと判断され、アクセス回数が他のメモリMEMより少ないメモリMEMはアクセス頻度が低いと判断される。制御装置CTRLが、アクセス回数をインクリメントし、所定の期間毎にリセットすることで、メモリMEM毎のアクセス回数を所定間隔で計数する動作は、制御装置CTRLの計数部により実施される。
しきい値は、各メモリMEMのアクセス頻度の高低を判定するために使用される値であり、図6に示す情報処理システムIPSの割り当て動作時に設定される。アクセス頻度は、アクセス回数がしきい値より大きいときに高いと判定され、アクセス回数がしきい値より低いときに低いと判定される。
この例では、メモリMEM0−MEM9のしきい値は、全て同様の値に設定されているが、しきい値は、メモリMEM0−MEM9毎に相違させてもよい。例えば、プロセッサCPUbの性能がサーバSV毎に異なる場合、他のCPUbよりも性能の高いCPUbを含むサーバSVによりアクセスされるメモリMEMは、管理テーブルTBL2のしきい値を高く設定してもよい。また、全てのメモリMEM0−MEM9でしきい値が同様である場合、管理テーブルTBL2におけるメモリMEM0−MEM9に共通な領域にしきい値を設定してもよい。
図4は、図2に示した負荷分散テーブルTBL1の例を示している。負荷分散テーブルTBL1は、クエリ名、アクセスするサーバ名SVID、時間カウンタ値およびアクセス回数を格納する複数のアクセス変更領域を有している。
クエリ名の領域は、アクセス頻度が他のサーバSVより高いサーバSVに割り当てられているクエリに対応するデータを、アクセス頻度が他のサーバSVより低いサーバSVを経由してアクセスするために設けられる。管理装置LBは、負荷分散テーブルTBL1に登録されているクエリに対応するデータをアクセスするときに、ハッシュ関数等のアルゴリズムを使用して求めたサーバSVではなく、サーバ名SVIDの欄に格納されているサーバSVにアクセス要求を発行する。これにより、後述するように、ハッシュ関数等のアルゴリズムを変更することなく、アクセスが集中しているサーバSVの負荷を分散できる。負荷分散テーブルTBL1よるサーバSVの負荷の分散方法は、図10から図13で説明する。
時間カウンタ値およびアクセス回数は、負荷分散テーブルTBL1に空き領域がない状態で、クエリの割り当てを、アクセスが集中しているサーバSVから別のサーバSVに変更するときに、負荷分散テーブルTBL1に空き領域を作るために使用される。空き領域の作り方は、図13で説明する。
なお、負荷分散テーブルTBL1に空き領域を作るために、格納されているクエリ名を所定間隔でランダムに消去し、または順番に消去する場合、時間カウンタ値およびアクセス回数の領域は設けられなくてもよい。あるいは、負荷分散テーブルTBL1のサイズが大きく、全てのクエリ名を負荷分散テーブルTBL1に登録可能なとき、時間カウンタ値およびアクセス回数の領域は設けられなくてもよい。
図5は、図2に示した情報処理システムIPSの動作の例を示している。図5に示す動作は、管理装置LB、サーバSVおよび制御装置CTRLが協業して動作することにより実施される。
まず、ステップS10では、情報処理システムIPSは、メモリMEM0−MEM9のサーバSV0−SV2への割り当てを実施する。例えば、ステップS10は、情報処理システムIPSのパワーオン時またはリセット時に実施される。ステップS10の動作の例は、図6に記載する。
次に、ステップS20では、情報処理システムIPSは、コンピュータネットワークNETに接続されたコンピュータPC等からのアクセス要求(読み出し要求または書き込み要求)に対する処理を実施する。管理装置LBは、クエリとともに読み出し要求を受けたときに、サーバSV0−SV2のいずれかを介して記憶装置MDからクエリに対応するデータを読み出し、またはデータベースDBからクエリに対応するデータを読み出す。管理装置LBは、読み出したデータをコンピュータPC等に送信する。管理装置LBは、クエリおよびデータとともに書き込み要求を受けたときに、サーバSV0−SV2のいずれかを介して記憶装置MDにデータを書き込み、データベースDBにデータを書き込む。ステップS20の動作の例は、図7から図9に記載する。
ステップS30では、情報処理システムIPSは、所定時間が経過したか否かを判定する。所定時間が経過したとき、ステップS40の負荷分散動作が実施される。すなわち、負荷分散動作は、所定の間隔で実施される。所定時間が経過するまで、情報処理システムIPSは、ステップS20を繰り返し実施する。
ステップS40の負荷分散動作では、各サーバSV0−SV2へのアクセスの集中度に応じて、クエリ(すなわちメモリMEM)のサーバSV1−SV2への割り当てが変更される。ステップS40の動作の例は、図10から図13に記載する。
図6は、図2に示した情報処理システムIPSにおいて、記憶装置MDのメモリMEMをサーバSVのいずれかに割り当てる動作の例を示している。図6に示す管理装置LBの処理は、図2に示したプロセッサCPUaがプログラムを実行することで実施される。図6に示すサーバSVの処理は、図2に示したプロセッサCPUbがプログラムをそれぞれ実行することで実施される。なお、管理装置LBの処理およびサーバSVの処理は、ハードウエアロジックを用いた処理により実施されてもよい。図6に示す制御装置CTRLによる処理は、制御装置CTRLがASIC等のロジックLSIであるとき、ハードウエアロジックを用いて実行され、制御装置CTRLがプロセッサやマイクロコントローラであるとき、プログラムにより実行される。
先ず、ステップS100において、管理装置LBは、記憶装置MDに搭載されているメモリMEMの総数を問い合わせるパケットを、サーバSV0−SV2のいずれかに出力する。例えば、問い合わせを受けるサーバSVは、サーバ名SVIDの番号が最も小さいサーバSV0でもよい。ステップS200において、問い合わせを受けたサーバSVは、記憶装置MDの制御装置CTRLに、記憶装置MDに搭載されているメモリMEMの総数を問い合わせるパケットを出力する。
ステップS300において、制御装置CTRLは、問い合わせを発行したサーバSVにメモリMEMの総数を通知する。例えば、制御装置CTRLは、メモリMEMの総数を格納しているレジスタを有している。メモリMEMが増設可能なメモリモジュールのとき、制御装置CTRLは、メモリスロットに装着されたメモリモジュールを検出することで、メモリMEMの総数を判断してもよい。
ステップS202において、問い合わせを発行したサーバSVは、制御装置CTRLから受けたメモリMEMの総数を、管理装置LBに通知する。ステップS102において、管理装置LBは、メモリMEMの総数をサーバSVの数で除し、例えば、小数点以下を切り下げて整数値を求め、各サーバSVに割り当てるメモリMEMの数とする。例えば、メモリMEMの総数が10個で、サーバSVの数が3個のとき、3個のメモリMEMが各サーバSVに割り当てられ、余った1個のメモリMEMが予備として確保される。
ステップS104において、管理装置LBは、各サーバSVに割り当てるメモリMEMのID(Identification)を決める。メモリMEMのIDは、図2に示したメモリMEMの末尾の番号である。例えば、管理装置LBは、図3に示したように、メモリMEM0−MEM8を、番号が小さい順から3つずつサーバSV0−SV2にそれぞれ割り当てることを決定し、メモリMEM9を予備として確保することを決定する。次に、ステップS106において、管理装置LBは、各サーバSV0−SV2に割り当てるメモリMEMのIDを各サーバSV0−SV2に通知する。
ステップS204において、各サーバSV0−SV2は、通知されたメモリMEMのIDを制御装置CTRLに通知する。ステップS302において、制御装置CTRLは、メモリMEMにアクセスするサーバSVのIDを、メモリMEM毎に管理テーブルTBL2のサーバ名SVIDの領域に登録する。次に、ステップS304において、制御装置CTRLは、管理テーブルTBL2に所定のしきい値を登録する。図6の処理の実施により、管理テーブルTBL2は、初期状態になる。初期状態では、図3に示したクエリ名およびアクセス回数の領域は空である。
図7は、図2に示した情報処理システムIPSにデータを書き込むときの管理装置LBの動作の例を示している。例えば、図7に示す処理は、図2に示したプロセッサCPUaがプログラムを実行することで実施される。
ステップS110において、管理装置LBは、クエリおよびデータとともに書き込み要求を受けたとき、負荷分散テーブルTBL1にクエリが登録されているか否かを判定する。負荷分散テーブルTBL1にクエリが登録されているとき、処理はステップS116に移行する。負荷分散テーブルTBL1にクエリが登録されていないとき、処理はステップS112に移行する。
ステップS112において、管理装置LBは、クエリをハッシュ関数に与え、ハッシュ値を求める。ステップS114において、例えば、管理装置LBは、ハッシュ値をサーバSVに割り当てられたサーバSVの数(この例では”3”)で除して余りを求め、余りと同じ値のIDを有するサーバSVを、アクセスするサーバSVとする。
例えば、ハッシュ値が16進数で”F12D”(10進数で61741)のとき、余りは”1”であり、サーバSV1がアクセスされる。なお、クエリをハッシュ関数以外のアルゴリズムに与え、アクセスするサーバSVのIDを示す値を求めてもよい。あるいは、アクセスするサーバSVのIDを直接求めるためのハッシュ関数を用いてもよい。
一方、ステップS116において、管理装置LBは、クエリが負荷分散テーブルTBL1に登録されているとき、クエリに対応するサーバ名SVIDの領域に登録されているサーバSVを、アクセスするサーバSVとする。なお、管理装置LBは、クエリに対応するデータが書き込まれるメモリMEMを把握できない。このため、クエリに対応するデータが書き込まれるメモリMEMは、サーバSVまたは制御装置CTRLにより決定される。
管理装置LBは、負荷分散テーブルTBL1を参照することで、書き込み要求を発行するサーバSVを認識できる。このため、管理装置LBは、サーバSVの負荷を分散させるために、アクセス要求を出力するサーバSVを決める処理を行う必要はない。したがって、管理装置LBの負荷を増やすことなく、情報処理システムIPSの性能を向上できる。
ステップS118において、管理装置LBは、クエリに対応するデータをメモリMEMに書き込むために、ステップS114またはS116で求めたサーバSVに、クエリ、データとともに書き込み要求を発行する。書き込み要求を受けたサーバSVは、クエリ、データとともに書き込み要求を制御装置CTRLに出力する。制御装置CTRLによるデータの書き込み動作については、図9で説明する。
ステップS120において、管理装置LBは、サーバSV(すなわちメモリMEM)とデータベースDBとに格納されているデータの整合性を保つために、メモリMEMに書き込んだデータと同様のデータを、クエリとともにデータベースDBに書き込む。なお、データベースDBへのデータの書き込み時期は、メモリMEMへのデータの書き込みと同期していなくてもよい。例えば、クエリに対応するフラグを管理装置LBに設け、管理装置LBは、メモリMEMに書き込んだデータをデータベースDBに書き込むまでの期間、メモリMEMのデータとデータベースDBのデータとが一致しない旨のダーティフラグをセットする。このダーティフラグにより、サーバSVとデータベースDBとの整合性が取れていない場合にも、ダーティフラグがセットされている場合にはデータベースDBからのデータの読み出しを抑止することにより、誤ったデータがデータベースDBから読み出されることを防止できる。例えば、管理装置LBは、サーバSVとデータベースDBの整合性を保つために、ダーティフラグがセットされているクエリに対応するデータの消去命令を受けたとき、メモリMEM内のデータを消去する処理とともに、データベースDB内のデータを消去する処理を実施する。
なお、管理装置LBによる処理がハードウエアロジックにより実施される場合、ステップS110、S112、S114、S116に基づいて、ステップS118でサーバSVに書き込み要求を発行する動作は、管理装置LBの出力部により実施される。
図8は、図2に示した情報処理システムIPSからデータを読み出すときの管理装置LBの動作の例を示している。例えば、図8に示す処理は、図2に示したプロセッサCPUaがプログラムを実行することで実施される。ステップS130、S132、S134、S136は、図7に示したステップS110、S112、S114、S116と同様の処理であるため、説明は省略する。
ステップS138において、管理装置LBは、クエリに対応するデータをメモリMEMから読み出すために、ステップS134またはS136で求めたサーバSVに、クエリとともに読み出し要求を発行する。読み出し要求を受けたサーバSVは、クエリとともに読み出し要求を制御装置CTRLに出力する。制御装置CTRLによるデータの読み出し動作については、図9で説明する。
ステップS140において、管理装置LBは、クエリに対応するデータをサーバSVから受信したとき、処理をステップS144に移行する。管理装置LBは、クエリに対応するデータがサーバSV(すなわちメモリMEM)に格納されておらず、データを受信できないとき、処理をステップS142に移行する。クエリに対応するデータがサーバSVに格納されていないことを示す情報は、読み出し要求の応答(例えば、読み出しエラー)としてサーバSVから管理装置LBに通知される。
ステップS142において、管理装置LBは、データベースDBにクエリとともに読み出し要求を発行し、クエリに対応するデータをデータベースDBから読み出す。次に、ステップS144において、管理装置LBは、読み出したデータをコンピュータネットワークNETに接続されたコンピュータPC等に送信する。
なお、管理装置LBによる処理がハードウエアロジックにより実施される場合、ステップS130、S132、S134、S136に基づいて、ステップS138でサーバSVに読み出し要求を発行する動作は、管理装置LBの出力部により実施される。
図9は、図7に示した書き込み要求および図8に示した読み出し要求を受けた制御装置CTRLの動作の例を示している。図9に示す処理は、制御装置CTRLがASIC等のロジックLSIであるとき、ハードウエアロジックを用いて実行され、制御装置CTRLがプログラムを実行するプロセッサやマイクロコントローラであるとき、プログラムにより実行される。
ステップS310において、制御装置CTRLは、サーバSVから読み出し要求を受けたときに、処理をステップS330に移行する。ステップS312において、制御装置CTRLは、サーバSVから書き込み要求を受けたときに、処理をステップS314に移行する。制御装置CTRLは、サーバSVから読み出し要求および書き込み要求のいずれも受けていないとき、処理を終了する。
ステップS314において、制御装置CTRLは、管理テーブルTBL2を参照して、書き込み要求を発行したサーバSVに対応するメモリMEMの空きをチェックする。例えば、制御装置CTRLは、管理テーブルTBL2のクエリ名の領域に空きがあるとき、メモリMEMに空きがあると判定する。また、制御装置CTRLは、管理テーブルTBL2のクエリ名の全ての領域にクエリが登録されているとき、メモリMEMに空きがないと判定する。ステップS316において、制御装置CTRLは、メモリMEMに空きがあるとき、処理をステップS318に移行し、メモリMEMに空きがないとき、処理をステップS322に移行する。
ステップS318において、制御装置CTRLは、管理テーブルTBL2を参照し、サーバSVに対応する複数のメモリMEMの中で、アクセス回数が最も少ないメモリを選択する。次に、ステップS320において、制御装置CTRLは、選択したメモリMEMにデータを書き込む。この際、制御装置CTRLは、例えば、ラウンドロビン手法を用いて、データを書き込むメモリMEMを順次選択する。
アクセス回数が最も少ないメモリMEMにデータを書き込むことで、サーバSVによりアクセスされる複数のメモリMEMのアクセス頻度を平均化できる。一般に、メモリMEMは、読み出し要求を受けてからデータを出力するまでのクロックサイクル数(レイテンシ)が決められている。ランダムアクセスによる読み出し動作が連続して実行されるとき、1つのメモリMEMに読み出し要求を発行してからデータが出力されるまでに、別のメモリMEMに読み出し要求を発行することで、データ転送レートは従来よりも高くなる。このため、読み出し効率を向上するために、メモリMEMに格納されるデータの数は、均等であることが望ましい。
なお、記憶装置MDの消費電力を抑える要望がある場合、ステップS318において、アクセス回数が最も多いメモリMEMを選択し、あるいは、1つのメモリMEMを選択して、データを所定のメモリMEMに集中的に書き込んでもよい。これにより、データが格納されないメモリMEMを低消費電力モードに設定でき、記憶装置MDの消費電力を抑えることができる。低消費電力モードでは、メモリMEMの内部電圧生成回路等の動作が停止し、あるいは、DRAMではリフレッシュ動作が禁止されることにより消費電力を低減できる。
一方、メモリMEMに空きがないとき、ステップS322において、制御装置CTRLは、管理テーブルTBL2を参照し、サーバSVに対応する複数のメモリMEMの中で、アクセス回数の最も少ないメモリMEMを選択する。次に、ステップS324において、制御装置CTRLは、例えば、LRU(Least Recently Used)手法を用いて、選択したメモリMEMに格納されている最も古いデータを消去する。ここで、最も古いデータは、最も長い期間アクセスされていないデータである。LRU手法を用いるために、クエリに対応するデータ毎に、最後にアクセスされた時刻を示す情報が、メモリMEMに格納されている。
ステップS326において、制御装置CTRLは、データを消去した領域に、クエリに対応する新たなデータを書き込む。ステップS328において、制御装置CTRLは、管理テーブルTBL2において、データを書き込んだメモリMEMの領域に対応するクエリ名の領域に、クエリを書き込む。
一方、ステップS330において、制御装置CTRLは、管理テーブルTBL2のクエリ名の領域を参照し、読み出し要求とともに受けたクエリに対応するデータが格納されているメモリMEMのIDと、メモリMEM内の格納場所を求める。管理テーブルTBL2のクエリ名の領域に、サーバSVから送られたクエリがないとき、クエリに対応するデータが格納されていないことを示すミス情報を保持する。ステップS332において、制御装置CTRLは、求めた格納場所からデータを読み出す。但し、制御装置CTRLは、ミス情報を保持しているとき、データの読み出し処理を実施しない。
ステップS334において、制御装置CTRLは、読み出したデータをサーバSVに送信する。なお、ステップS330において、ミス情報が保持されたとき、制御装置CTRLは、クエリに対応するデータが格納されていないことを示す情報をサーバSVに送信する。
図10は、図2に示した情報処理システムIPSの負荷分散動作における制御装置CTRLの動作の例を示している。図10に示す処理は、図9と同様に、制御装置CTRLのハードウエアロジックの動作、または制御装置CTRLが実行するプログラムにより実施される。図10に示す処理は、所定間隔(例えば、30分間隔)で実施される。
先ず、ステップS340において、制御装置CTRLは、管理テーブルTBL2を参照し、アクセス回数がしきい値より多いメモリMEMを選択する。図3に示した管理テーブルTBL2の例では、メモリMEM0、MEM2が選択される。ステップS342において、制御装置CTRLは、選択されたメモリMEMがあるとき、処理をステップS344に移行し、選択されたメモリMEMがないとき、処理をステップS352に移行する。
ステップS344において、制御装置CTRLは、選択したメモリMEMのうち、アクセス回数が最も多いメモリMEMを、サーバSVの割り当てを変更するメモリMEMmax(変更対象)として選択する。メモリMEMmaxは、アクセス頻度が他のメモリMEMより高い高頻度メモリとして認識される。図3に示した管理テーブルTBL2の例では、メモリMEM0が選択される。アクセス回数が最も多いメモリMEMが複数存在するとき、例えば、制御装置CTRLは、IDが最も小さいメモリMEMをメモリMEMmaxとして選択する。なお、制御装置CTRLは、アクセス回数が最も多い2つのメモリMEMをメモリMEMmaxとして選択してもよい。
ステップS346において、制御装置CTRLは、管理テーブルTBL2を参照し、メモリMEMmaxを割り当てているサーバSVを除くサーバSVの中で、アクセス回数がしきい値より少ないメモリMEMを選択する。さらに、制御装置CTRLは、アクセス回数がしきい値より少ないメモリMEMの中から、アクセス回数が最も少ないメモリMEMをメモリMEMminとして選択する。メモリMEMminは、アクセス頻度が他のメモリMEMより低い低頻度メモリとして認識される。
メモリMEMmaxを割り当てているサーバSVを除くサーバSVの中で、アクセス回数がしきい値より少ないメモリMEMがないとき、図10には示していないが、ステップS348、S350の処理を省略して、ステップS352の処理に移行する。なお、制御装置CTRLは、アクセス回数が最も少ない2つのメモリMEMをメモリMEMminとして選択してもよい。
図3に示した管理テーブルTBL2の例では、メモリMEM0を割り当てているサーバSV0を除くサーバSV1、SV3に割り当てられているメモリMEMの中から、アクセス回数が最も少ないメモリMEM3がメモリMEMminとして選択される。アクセス回数が最も少ないメモリMEMが複数存在するとき、例えば、制御装置CTRLは、IDが最も小さいメモリMEMをメモリMEMminとして選択する。
ステップS348において、制御装置CTRLは、メモリMEMmaxを割り当てているサーバSVを、メモリMEMminを割り当てているサーバSVに変更するために、管理テーブルTBL2を書き換える。例えば、制御装置CTRLは、メモリMEMmaxに対応するサーバ名SVIDの領域に格納されているサーバSVのIDを、メモリMEMminに割り当てているサーバSVのIDに書き換える。管理テーブルTBL2の書き換えの例は、図11に示す。
ステップS350において、制御装置CTRLは、メモリMEMmaxの割り当ての変更を、アクセス回数が最も少ないメモリMEMを割り当てているサーバSVを介して管理装置LBに通知する。例えば、制御装置CTRLは、メモリMEMmaxに対応して管理テーブルTBL2に格納されている全てのクエリ名をサーバSVに通知する。ステップS352において、制御装置CTRLは、管理テーブルTBL2の全てのアクセス回数をリセットする。
アクセス頻度の高いメモリMEMを、アクセス頻度の低いメモリMEMに対応する別のサーバSVに割り当てることで、上述した実施形態と同様に、どのサーバSVにアクセスするかを決める処理を管理装置LBにより行うことなく、アクセスが集中しているサーバSVの負荷を軽減できる。この結果、管理装置LBの負荷を増やすことなく、情報処理システムIPSの性能を向上できる。
なお、制御装置CTRLによる処理がハードウエアロジックにより実施される場合、ステップS340、S344による高頻度メモリMEMmaxを選択する動作は、制御装置CTRLの第1検出部により実施される。ステップS346による低頻度メモリMEMminを選択する動作は、制御装置CTRLの第2検出部により実施される。ステップS348による管理テーブルTBL2に格納されているサーバ名SVIDを変更する動作は、制御装置CTRLの変更部により実施される。ステップS350による管理テーブルTBL2の情報をサーバSVを介して管理装置LBに通知する動作は、制御装置CTRLの出力部により実施される。制御装置CTRLの出力部は、アクセス要求に応答してメモリMEM0−MEM9のいずれかから読み出したデータを、サーバSVを介して管理装置LBに出力する機能も有する。
ステップS340で、アクセス回数がしきい値より多いメモリMEMがないとき、またはステップS346で、アクセス回数がしきい値より少ないメモリMEMがないとき、制御装置CTRLは、管理テーブルTBL2を変更しない。これは、メモリMEM毎のアクセス回数に顕著な差がないとき、メモリMEMを割り当てているサーバSVが変更されても、サーバSVの負荷の削減効果は小さいためである。
これに対して、メモリMEMの割り当てを変更するとき、制御装置CTRL、サーバSV、管理装置LBは、図12に示すメモリMEMの割り当てを変更するための処理をする。このため、制御装置CTRL、サーバSV、管理装置LBのアクセス要求に対する処理能力は、一時的に低下する。メモリMEMの割り当ての変更の要否をしきい値により判断することで、サーバSVの負荷の削減効果が小さいときにメモリMEMの割り当ての変更を禁止することにより、アクセス要求に対する処理能力が低下することを防止できる。
なお、メモリMEMの割り当てを変更する処理に要する制御装置CTRL、サーバSV、管理装置LBの負荷が、アクセス要求に対する処理をするための負荷より十分に小さいとき、しきい値を用いなくてもよい。この場合、アクセス回数が最も多いメモリMEMの割り当てが、メモリMEMのアクセス回数が最も少ないメモリMEMを割り当てている別のサーバSVに変更される。
図11は、図10に示した負荷分散動作後の管理テーブルTBL2の例を示している。例えば、制御装置CTRLは、管理テーブルTBL2において、アクセス回数が最も多いメモリMEMmax(=MEM0)に対応するサーバ名SVIDをSV0からSV1に変更する。この後、図10に示したステップS352において、制御装置CTRLは、管理テーブルTBL2の全てのアクセス回数をゼロにリセットする。なお、図10では、説明を分かりやすくするために、メモリMEM0に対応するサーバ名SVIDの欄に、SV0がSV1に変更されることを矢印で示し、アクセス回数の欄に、アクセス回数がゼロにリセットされることを矢印で示している。
図12は、図2に示した情報処理システムIPSの負荷分散動作における割り当ての変更動作の例を示している。図6と同様に、管理装置LBの処理は、プロセッサCPUaがプログラムを実行することで実施され、サーバSVの処理は、プロセッサCPUbがプログラムを実行することで実施される。なお、管理装置LBの処理およびサーバSVの処理は、ハードウエア処理により実施されてもよい。制御装置CTRLの処理は、ハードウエアロジックの動作、または制御装置CTRLが実行するプログラムにより実施される。
制御装置CTRLが実施するステップS350の処理は、図10に示したステップS350と同様である。ステップS210において、メモリMEMminを割り当てているサーバSVは、制御装置CTRLからの割り当ての変更通知として、メモリMEMmaxに対応して管理テーブルTBL2に格納されている全てのクエリ名を受ける。ステップS212において、メモリMEMminを割り当てているサーバSVは、制御装置CTRLから受けたクエリ名を管理装置LBに通知する。
メモリMEMminを割り当てているサーバSVは、メモリMEMmaxを割り当てているサーバSVよりもアクセス頻度が低い可能性が高い。割り当ての変更動作を、メモリMEMminを割り当てているサーバSVを用いて実施することで、アクセスが集中しているサーバSVに余分な負荷が掛かることを防止でき、サーバSVの処理効率が低下することを防止できる。
ステップS150において、管理装置LBは、メモリMEMminを割り当てているサーバSVからクエリ名の通知を受ける。管理装置LBは、受けたクエリ名を負荷分散テーブルTBL1に格納し、クエリ名を受けたサーバSVのIDをクエリ名毎にサーバ名SVIDの領域に格納する。これにより、メモリMEMmaxに対するアクセスは、サーバ名SVIDに書き込まれたメモリMEMminにアクセスするサーバSVを経由して実施される。
なお、管理装置LBによる処理がハードウエアロジックにより実施される場合、ステップS150でサーバSVからの情報を受ける動作は、管理装置LBの受信部により実施される。また、ステップS150でサーバSVから受けた情報に基づいて負荷分散テーブルTBL1を更新する動作は、管理装置LBの格納部により実施される。
図13は、図12に示したステップS150の動作の例を示している。図13に示す処理は、図2に示したプロセッサCPUaがプログラムを実行することで実施される。なお、図13に示す処理は、管理装置LBのハードウエア処理により実施されてもよい。
ステップS164において、管理装置LBは、サーバSVからの通知を受け、負荷分散テーブルTBL1を参照する。ステップS166において、管理装置LBは、負荷分散テーブルTBL1の空きが、サーバSVから受けたクエリの数以上あるとき、処理をステップS174に移行する。管理装置LBは、負荷分散テーブルTBL1の空きが、サーバSVから受けたクエリの数より少ないとき、処理をステップS168に移行する。
ステップS168において、管理装置LBは、負荷分散テーブルTBL1を参照し、クエリ名毎に、アクセス回数を時間カウンタ値で除して、アクセス頻度を算出する。ステップS170において、管理装置LBは、アクセス頻度の低い順にクエリを削除する対象に決定する。この際、削除する対象のクエリの数は、サーバSVから受けたクエリの数またはそれ以上に設定される。
ステップS172において、管理装置LBは、負荷分散テーブルTBL1から削除対象のクエリと、その関連情報、すなわち、サーバ名SVID、時間カウンタ値、アクセス回数を削除する。ステップS174において、管理装置LBは、負荷分散テーブルTBL1の空き領域に、サーバSVから受けたクエリ名を格納し、クエリ名毎に、通知を受けたサーバSVのIDをサーバ名SVIDとして登録する。ステップS176において、管理装置LBは、新たに格納したクエリ名の時間カウンタ値およびアクセス回数のインクリメントを開始する。
以上、この実施形態においても、上述した実施形態と同様に、管理装置LBにアクセス要求を出力するサーバSVを決める等の処理を行うことなく、負荷分散テーブルTBL1を参照することで高頻度メモリMEMmaxの割り当てを、あるサーバSVから別のサーバSVに変更できる。この結果、管理装置LBの負荷を増やすことなく、アクセスが集中しているサーバSVの負荷を軽減でき、情報処理システムIPSの性能を向上できる。
さらに、メモリMEMの割り当ての変更の要否をしきい値により判断することで、サーバSVの負荷の削減効果が小さいときに、メモリMEMの割り当ての変更を禁止できる。これにより、管理装置LBおよびサーバSVのアクセス要求に対する処理能力が、メモリMEMの割り当てを変更することにより低下することを防止できる。
管理装置LBは、負荷分散テーブルTBL1に空きがないときに、アクセス頻度の低いクエリと、そのクエリに対応する情報を負荷分散テーブルTBL1から削除する。これにより、管理装置LBは、サーバSVの最新のアクセス頻度に基づいて、メモリMEMの割り当てを変更するサーバ名SVIDを負荷分散テーブルTBL1に登録できる。この結果、現在のアクセスの集中度に応じてメモリMEMの割り当てを変更でき、情報処理システムIPSの性能を向上できる。
図14は、別の実施形態の情報処理システムIPSの負荷分散動作における制御装置CTRLの動作の例を示している。上述した実施形態で説明した要素と同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
この実施形態では、アクセス回数が最も多いメモリMEMmaxにアクセスするサーバSVと、アクセス回数が最も少ないメモリMEMminにアクセスするサーバSVとの割り当てが入れ替えられる。このため、図2に示した管理装置LB、サーバSV0−SV2および制御装置CTRLが実施する負荷分散動作における割り当ての変更動作が図10および図12と相違している。負荷分散動作における割り当ての変更動作を除く処理については、上述した実施形態と同様である。すなわち、情報処理システムIPSの構成は、図2と同様である。
ステップS340、S342、S344、S346、S352は、図10に示した処理と同様であるため、説明は省略する。ステップS348Aでは、制御装置CTRLは、メモリMEMmaxを割り当てているサーバSVと、メモリMEMminを割り当てているサーバSVとを入れ替えるために、管理テーブルTBL2のサーバ名SVIDを書き換える。管理テーブルTBL2の書き換えの例は、図15に示す。
次にステップS350Aにおいて、制御装置CTRLは、メモリMEMminとメモリMEMmaxとのサーバSVの割り当てを入れ替えることを、メモリMEMminを割り当てているサーバSVを介して管理装置LBに通知する。すなわち、メモリMEMmaxを割り当てているサーバSVによりメモリMENminをアクセスすることが、メモリMEMminを割り当てているサーバSVに通知される。例えば、割り当てが入れ替えられたサーバ名SVIDと、各サーバ名SVIDに対応して管理テーブルTBL2に格納されているクエリ名とが、メモリMEMminを割り当てているサーバSVに通知される。
なお、制御装置CTRLによる処理がハードウエアロジックにより実施される場合、ステップS348Aによる管理テーブルTBL2のサーバ名SVIDを書き換える動作は、制御装置CTRLの変更部により実施される。ステップS350Aによる管理テーブルTBL2の情報を、サーバSVを介して管理装置LBに通知する動作は、制御装置CTRLの出力部により実施される。
図15は、図14に示した負荷分散動作後の管理テーブルTBL2の例を示している。この実施形態では、図11と同様に、メモリMEM0の割り当てがサーバSV0からサーバSV1に変更され、さらに、メモリMEM3の割り当てがサーバSV1からサーバSV0に変更される。管理テーブルTBL2に格納されているその他の情報は、図11と同様である。アクセス回数のゼロへのリセットは、図14に示したステップS352により実施される。
図16は、図14に示したステップS350Aに伴う管理装置LBおよびサーバSVによる割り当ての変更動作の例を示している。図6および図12と同様に、管理装置LBの処理は、プロセッサCPUaがプログラムを実行することで実施し、サーバSVの処理は、プロセッサCPUbがプログラムを実行することで実施される。なお、管理装置LBの処理およびサーバSVの処理は、ハードウエア処理により実施されてもよい。制御装置CTRLの処理は、ハードウエアロジックの動作、または制御装置CTRLが実行するプログラムにより実施される。
ステップS350Aは、図14に示したステップS350Aと同様の処理であり、図12に示したS350に対応する処理である。ステップS210A、S212Aは、図12に示したステップS210、S212に対応する処理である。ステップS150Aは、図12に示したS150に対応する処理である。
ステップS210Aにおいて、メモリMEMminを割り当てているサーバSVは、制御装置CTRLから、割り当てを入れ替えるメモリMEMmin、MEMmaxに新たに割り当てられるサーバ名SVIDと、各サーバ名SVIDに対応するクエリ名とを受ける。ステップS212Aにおいて、MEMminを割り当てているサーバSVは、新たに割り当てられるサーバ名SVIDと、各サーバ名SVIDに対応するクエリ名とを管理装置LBに通知する。
ステップS150Aにおいて、管理装置LBは、図12に示したステップS150と同様に、メモリMEMminを割り当てているサーバSVからの通知を受け、クエリ名およびサーバ名SVIDを負荷分散テーブルTBL1にそれぞれ格納する。管理装置LBによる処理がハードウエアロジックにより実施される場合、ステップS150の動作は、管理装置LBの受信部および格納部により実施される。
図17は、図16に示した負荷分散動作後の負荷分散テーブルTBL1の例を示している。この例では、図15に示した管理テーブルTBL2の変更に対応して、変更された負荷分散テーブルTBL1(時間カウンタ値が30経過した後)を示している。すなわち、管理装置LBは、図16に示したステップS150Aにより、メモリMEMmax(例えば、MEM0のクエリA、B、C)をサーバSV1によりアクセスすることを示す情報を、負荷分散テーブルTBL1に設定する。同様に、管理装置LBは、図16に示したステップS150Aにより、メモリMEMmin(例えば、MEM3のクエリJ、K、L)をサーバSV0によりアクセスすることを示す情報を、負荷分散テーブルTBL1に設定する。
管理装置LBは、クエリAに対するアクセス要求を受けたときに、負荷分散テーブルTBL1を参照し、負荷が相対的に小さいサーバSV1を介して、制御装置CTRLにアクセス要求を発行する。また、管理装置LBは、クエリJに対するアクセス要求を受けたときに、負荷分散テーブルTBL1を参照し、負荷が相対的に大きいサーバSV0を介して、制御装置CTRLにアクセス要求を発行する。
負荷が相対的に大きいサーバSV0は、アクセス頻度の高いクエリA、B、Cに対するアクセスの代わりに、アクセス頻度の低いクエリJ、K、Lに対するアクセスを処理する。負荷が相対的に小さいサーバSV1は、アクセス頻度の低いクエリJ、K、Lに対するアクセスの代わりに、アクセス頻度の高いクエリA、B、Cに対するアクセスを処理する。サーバSV0に割り当てられているメモリは、MEM1、MEM2、MEM3に変更されている。サーバSV1に割り当てられているメモリは、MEM0、MEM4、MEM5に変更されている。したがって、サーバSV0の負荷の一部を、サーバSV1に移行でき、サーバSV0−SV2間の負荷のばらつきを抑制できる。
以上、この実施形態においても、上述した実施形態と同様に、高頻度メモリMEMmaxの割り当てを、あるサーバSVから別のサーバSVに変更でき、管理装置LBの負荷を増やすことなく、アクセスが集中しているサーバSVの負荷を軽減できる。メモリMEMの割り当ての変更の要否をしきい値により判断することで、サーバSVの負荷の削減効果が小さいときに、メモリMEMの割り当ての変更を禁止でき、管理装置LBおよびサーバSVのアクセス要求に対する処理能力が、メモリMEMの割り当てを変更することにより低下することを防止できる。また、負荷分散テーブルTBL1に空きがないときに、アクセス頻度の低いクエリを負荷分散テーブルTBL1から削除することで、現在のアクセスの集中度に応じてメモリMEMの割り当てを変更でき、情報処理システムIPSの性能を向上できる。
さらに、メモリMEMのサーバSVへの割り当てを、アクセス頻度に応じて入れ換えることで、サーバSV0−SV2間の負荷のばらつきを抑制でき、情報処理システムIPSの性能を向上できる。
図18は、別の実施形態におけるサーバSV0−SV2による書き込み動作の例を示している。上述した実施形態で説明した要素と同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
この実施形態では、図2に示した記憶装置MDのメモリMEM0−MEM9だけでなく、各サーバSV0−SV2のメモリMEMbにもデータが記憶される。このため、図2に示したサーバSV0−SV2の動作が、上述した実施形態と相違する。各サーバSV0−SV2によるメモリMEMbのアクセスを除く処理については、上述した実施形態と同様である。すなわち、情報処理システムIPSの構成は、図2と同様である。
なお、上述した実施形態では、各サーバSV0−SV2は、管理装置LBからの書き込み要求および読み出し要求を制御装置CTRLに送信し、制御装置CTRLからのデータを管理装置LBに送信する。すなわち、上述した実施形態では、各サーバSV0−SV2は、自身のメモリMEMbに対するデータの書き込みおよびデータの読み出しは実施していない。
図18は、図7に示したステップS118による書き込み要求に応答する各サーバSV0−SV2の動作のフローチャートを示している。例えば、図18に示すサーバSVの処理は、図2に示したプロセッサCPUbがプログラムをそれぞれ実行することで実施される。なお、サーバSVの動作は、ハードウエア処理により実施されてもよい。
まず、ステップS230において、サーバSVは、自身のメモリMEMbに空きがあるか否かを判定する。サーバSVは、メモリMEMbに空きがないときに処理をステップS232に移行し、制御装置CTRLに書き込み要求を発行し、処理を終了する。サーバSVから書き込み要求を受けたときの制御装置CTRLの動作は、図9に示している。
一方、サーバSVは、自身のメモリMEMbに空きがあるときに、ステップS234において、書き込み要求とともに受けたクエリに対応するデータがメモリMEMbに格納されているか否かをチェックする。ここで、サーバSVは、メモリMEMb内のデータを格納するブロック領域をクエリに基づいて求めるためのクエリテーブルを有している。例えば、クエリテーブルは、図3に示したクエリ名の領域と同様に、メモリMEMbの各ブロック領域に対応してクエリ名を格納する領域を有している。
ステップS236において、サーバSVは、クエリに対応するデータがメモリMEMbにあるときに、処理をステップS238に移行し、クエリに対応するデータがメモリMEMbにないときに、処理をステップS240に移行する。ステップS238において、サーバSVは、クエリに対応してメモリMEMbに格納されているデータを消去する。なお、サーバSVは、対応するデータを消去せずに、無効にしてもよい。ステップS240において、サーバSVは、クエリとともに管理装置LBから受けたデータをメモリMEMbの所定のブロック領域に書き込む。
図19は、図18に示した書き込み動作を実施するサーバSV0−SV2による読み出し動作の例を示している。図19は、図8に示したステップS138による読み出し要求に応答する各サーバSV0−SV2の動作を示している。例えば、図19に示すサーバSVの処理は、図2に示したプロセッサCPUbがプログラムをそれぞれ実行することで実施される。なお、サーバSVの動作は、ハードウエア処理により実施されてもよい。
まず、ステップS250において、サーバSVは、読み出し要求とともに受けたクエリに対応するデータがメモリMEMbに格納されているか否かをチェックする。ステップS252において、サーバSVは、クエリに対応するデータがメモリMEMbにあるときに、処理をステップS256に移行し、クエリに対応するデータがメモリMEMbにないときに、処理をステップS254に移行する。
ステップS254において、サーバSVは、制御装置CTRLに読み出し要求を発行し、処理を終了する。サーバSVから読み出し要求を受けたときに制御装置CTRLの動作は、図9に示している。ステップS256において、サーバSVは、自身のメモリMEMbからクエリに対応するデータを読み出す。ステップS328において、サーバSVは、メモリMEMbから読み出したデータまたは記憶装置MDのメモリMEMから読み出されたデータを管理装置LBに送信する。
なお、図14から図17に示した実施形態のサーバSV0−SV2に、図18および図19に示した処理を実施させてもよい。このとき、各サーバSV0−SV2は、メモリMEMbおよびメモリMEM0−MEM9のいずれかにクエリに対応するデータを格納し、メモリMEBbおよびメモリMEM0−MEM9のいずれかからデータを読み出す。
以上、この実施形態においても、上述した実施形態と同様に、高頻度メモリMEMmaxの割り当てを、あるサーバSVから別のサーバSVに変更でき、管理装置LBの負荷を増やすことなく、アクセスが集中しているサーバSVの負荷を軽減できる。メモリMEMの割り当ての変更の要否をしきい値により判断することで、サーバSVの負荷の削減効果が小さいときに、メモリMEMの割り当ての変更を禁止でき、管理装置LBおよびサーバSVのアクセス要求に対する処理能力が、メモリMEMの割り当てを変更することにより低下することを防止できる。
また、負荷分散テーブルTBL1に空きがないときに、アクセス頻度の低いクエリを負荷分散テーブルTBL1から削除することで、現在のアクセスの集中度に応じてメモリMEMの割り当てを変更でき、情報処理システムIPSの性能を向上できる。メモリMEMのサーバSVへの割り当てを、アクセス頻度に応じて入れ換えることで、サーバSV0−SV2間の負荷のばらつきを抑制できる。
さらに、記憶装置MDのメモリMEMおよびサーバSVのメモリMEMbにデータを格納する情報処理システムIPSにおいて、管理装置LBおよびサーバSVの負荷を増やすことなく、アクセスが集中しているサーバSVの負荷を軽減できる。
図20は、別の実施形態における制御装置CTRLの動作の例を示している。上述した実施形態で説明した要素と同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
この実施形態では、図2に示した制御装置CTRLは、memcachedのプログラム(ライブラリ)を利用して、メモリMEM0−MEM9にアクセスする。このため、制御装置CTRLによるデータの書き込み動作および読み出し動作が、図9と相違している。ここで、memcachedとは、データベース等に対するアクセス結果を保持しておくことにより,データベースへのアクセス回数を減らし、Webアクセスの高速化を実現することができる分散メモリキャッシュサーバのプログラムをいう。
管理装置LBおよびサーバSVの動作と、制御装置CTRLによる負荷分散動作は、図2から図13に示した実施形態と同様である。すなわち、情報処理システムIPSの構成は、図2と同様である。例えば、制御装置CTRLは、ROMおよびRAMを内蔵するマイクロコントローラやプロセッサCPUである。ROMまたはRAMには、memcachedのプログラムと、memcachedのプログラムを起動する制御プログラムとが格納されている。図20は、制御プログラムにより実施される処理を示している。
memcachedのプログラムの実行により、メモリMEM0−MEM9は、データベースDBのキャッシュサーバとして機能する。以降の説明では、memcachedをプログラムとしてだけではなく、キャッシュサーバの名称、すなわち、キャッシュサーバとして動作するmemcachedシステムの名称としても使用する。
例えば、memcachedは、各サーバSV0−SV2から読み出し要求および書き込み要求とともに供給されるクエリを用いてハッシュ値を求める。memcachedは、各サーバSV0−SV2毎に、求めたハッシュ値をメモリMEMの数で除し、剰余からアクセスするメモリMEMを求める。例えば、サーバSV0から読み出し要求を受けたとき、memcachedは、ハッシュ値を”3”で除して得られる剰余が示すIDのメモリMEM(MEM0−MEM2のいずれか)にアクセスする。サーバSV1から読み出し要求を受けたとき、memcachedは、ハッシュ値を”3”で除して得られる剰余に”3”を加えたIDのメモリMEM(MEM3−MEM5のいずれか)にアクセスする。
図20において、ステップS310、S312、S328、S334の処理は、図9のステップS310、S312、S328、S334と同様の処理である。図20では、memcachedにより実施される処理は、記載を省略している。例えば、図9に示したステップS314、S316、S318、S320、S322、S324、S326は、memcachedにより実施される。このため、制御装置CTRLの制御プログラムは、図9に示したステップS314、S316、S318、S320、S322、S324、S326の代わりに、ステップS320Cで、memcachedに”書き込み命令(set命令)”を発行すればよい。
なお、set命令のパラメータに”expires(期限;タイムスタンプや秒数)”を入れることで、期限が経過したデータは、memcachedにより無効なデータとして扱われる。この機能を利用することにより、データが頻繁に書き込まれるときにも、メモリMEMが満杯になる頻度を下げることができ、メモリMEMの満杯時にmemcachedが実施するLRU手法による消去動作の頻度を下げることができる。
図9に示したステップS330は、通常、memcachedにより実施されるため、制御装置CTRLの制御プログラムは、図9に示したステップS330の代わりに、ステップS332Cで、memcachedに”読み出し命令(get命令)”を発行すればよい。
以上、この実施形態においても、上述した実施形態と同様に高頻度メモリMEMmaxの割り当てを、あるサーバSVから別のサーバSVに変更でき、管理装置LBの負荷を増やすことなく、アクセスが集中しているサーバSVの負荷を軽減できる。メモリMEMの割り当ての変更の要否をしきい値により判断することで、サーバSVの負荷の削減効果が小さいときに、メモリMEMの割り当ての変更を禁止でき、管理装置LBおよびサーバSVのアクセス要求に対する処理能力が、メモリMEMの割り当てを変更することにより低下することを防止できる。
また、負荷分散テーブルTBL1に空きがないときに、アクセス頻度の低いクエリを負荷分散テーブルTBL1から削除することで、現在のアクセスの集中度に応じてメモリMEMの割り当てを変更でき、情報処理システムIPSの性能を向上できる。メモリMEMのサーバSVへの割り当てを、アクセス頻度に応じて入れ換えることで、サーバSV0−SV2間の負荷のばらつきを抑制できる。記憶装置MDのメモリMEMおよびサーバSVのメモリMEMbにデータを格納する情報処理システムIPSにおいて、管理装置LBおよびサーバSVの負荷を増やすことなく、アクセスが集中しているサーバSVの負荷を軽減できる。
さらに、memcachedのプログラムにより、メモリMEM0−MEM9にアクセスする情報処理システムIPSにおいて、管理装置LBおよびサーバSVの負荷を増やすことなく、アクセスが集中しているサーバSVの負荷を軽減できる。
なお、図14から図17に示した実施形態の制御装置CTRLにmemcachedのプログラムを実行させて、図20に示した処理を実施させてもよい。
さらに、図18および図19に示したように、各サーバSV0−SV2が、メモリMEMbにクエリに対応するデータを格納するように設計されるとき、各サーバSV0−SV2にmemcachedを搭載してもよい。このとき、各サーバSV0−SV2のプロセッサCPUbは、メモリMEMbにアクセスするためのmemcachedのプログラムと、memcachedおよびメモリMEMのアクセスを制御する制御プログラムとを実行する。
制御プログラムは、図18および図19に示した処理と同様の処理を実施する。但し、図18に示したステップS230、S234、S240および図19に示したステップS250、S256は、memcachedに命令を発行することで実施される。図18に示したステップS236、S238は、memcachedに実装されている機能により実現される。
図21、図22、図23は、別の実施形態の情報処理システムIPSにおける負荷分散動作の例を示している。上述した実施形態で説明した要素と同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
この実施形態では、負荷分散動作による管理テーブルTBL2の変更から負荷分散テーブルTBL1の更新までの間、メモリMEMのアクセスが禁止される。このため、図2に示した管理装置LB、サーバSV0−SV2および制御装置CTRLが実施する負荷分散動作における割り当ての変更動作が図10および図12と相違している。負荷分散動作における割り当ての変更動作を除く処理については、上述した実施形態と同様である。すなわち、情報処理システムIPSの構成は、図2と同様である。
図21は、負荷分散動作における制御装置CTRLの動作の例を示している。制御装置CTRLの処理は、ハードウエアロジックの動作、または制御装置CTRLが実行するプログラムにより実施される。
この例では、ステップS346、S348の間に、ステップS354D、S356Dが挿入される。ステップS340、S342、S344、S346、S348、S350、S352は、図10と同様の処理である。
ステップS354Dにおいて、制御装置CTRLは、メモリMEMmax、MEMminに対応するサーバSVに記憶装置MDへのアクセスの禁止を通知する。次に、ステップS356Dにおいて、制御装置CTRLは、サーバSVを介して管理装置LBからアクセス禁止が開始されたことを示す通知を待つ。制御装置CTRLは、管理装置LBからアクセス禁止が開始されたことを示す通知を受けたとき、処理をステップS348に移行する。これにより、管理装置LBがアクセス禁止を開始するまで、制御装置CTRLは管理テーブルTBL2を変更しないため、負荷分散テーブルTBL1と管理テーブルTBL2との不一致期間を無くすことができる。
図22は、図21に示した負荷分散動作における割り当ての変更時のアクセス禁止処理の例を示している。管理装置LBの処理は、プロセッサCPUaがプログラムを実行することで実施され、サーバSVの処理は、プロセッサCPUbがプログラムを実行することで実施される。なお、管理装置LBの処理およびサーバSVの処理は、ハードウエア処理により実施されてもよい。
制御装置CTRLが実施するステップS354D、S356Dの処理は、図21に示したステップS354D、S356Dの処理と同様である。ステップS218Dにおいて、メモリMEMmax、MEMminを割り当てているサーバSVの各々は、制御装置CTRLからのアクセス禁止の通知を、管理装置LBに通知する。
ステップS154Dにおいて、管理装置LBは、各サーバSVからの通知を受け、通知を受けたサーバSVにアクセスする代わりに、データベースDBにアクセスする。すなわち、メモリMEMmax、MEMminに対するアクセス禁止処理が実施される。なお、管理装置LBは、メモリMEMmax、MEMminを割り当てているサーバSVへのアクセス要求を保留することで、アクセス禁止処理を実施してもよい。ステップS156Dにおいて、管理装置LBは、アクセス禁止処理を開始したことを、メモリMEMmax、MEMminを割り当てているサーバSVに通知する。
ステップS220Dにおいて、メモリMEMmax、MEMminを割り当てているサーバSVの各々は、制御装置CTRLからのアクセス禁止処理の開始の通知を、制御装置CTRLに通知する。そして、ステップS356Dにおいて、制御装置CTRLは、サーバSVを介して管理装置LBからアクセス禁止処理の開始の通知を受ける。
図23は、図21に示した負荷分散動作における割り当ての変更動作の例を示している。管理装置LBの処理は、プロセッサCPUaがプログラムを実行することで実施され、サーバSVの処理は、プロセッサCPUbがプログラムを実行することで実施される。なお、管理装置LBの処理およびサーバSVの処理は、ハードウエア処理により実施されてもよい。
この例では、図12に示した管理装置LBが実施するステップS150の処理の後に、ステップS158Dが追加される。ステップS350、S210、S212、S150の処理は、図12に示したステップS350、S210、S212、S150の処理と同様である。
ステップS158Dにおいて、管理装置LBは、負荷分散テーブルTBL1を更新した後、アクセス禁止処理の禁止を解除する。これにより、メモリMEMmax、MEMminを割り当てているサーバSVへのアクセス要求が再開される。メモリMEMmax、MEMminを割り当てているサーバSVへのアクセス要求が、アクセス禁止処理により保留される場合、管理装置LBは、ステップS158Dの後、保留しているアクセス要求を順にサーバSVに発行する。以上の処理により、負荷分散テーブルTBL1および管理テーブルTBL2に登録されたサーバ名SVIDが不一致の状態で、アクセス要求がサーバSVに発行されることを防止でき、制御装置CTRLによるデータの読み出しエラーが発生することを防止できる。
これに対して、例えば、情報処理システムIPSが、図12に示すステップS350の処理とステップS150の処理との間に、メモリMEMmax(例えば、MEM0)に対するアクセス要求を受けるとする。このとき、負荷分散テーブルTBL1は、更新されていないため、管理装置LBは、メモリMEMmaxを割り当てているサーバSV(例えば、SV0)を介して制御装置CTRLにアクセス要求を発行する。
しかし、図11に示した管理テーブルTBL2では、メモリMEM0の割り当ては、サーバSV0ではなく、サーバSV1に変更されている。このため、アクセス要求を発行するサーバSVと、管理テーブルTBL2のサーバ名SVIDとが一致せず、制御装置CTRLは、データの読み出しを実施できない。正しいデータが読み出せないため、制御装置CTRLは、サーバSVを介して管理装置LBに読み出しエラー(キャッシュミスに相当)を通知する。管理装置LBは、制御装置CTRLからの読み出しエラーを受けて、データベースDBにアクセスする。
なお、図21のステップS348、S350の代わりに、図14のステップS348A、S350Aを実施し、図23のステップS210、S212、S150の代わりに、図16のステップS210A、S212A、S150Aを実施してもよい。これにより、2つのメモリMEMを割り当てている2つのサーバSVを、負荷分散動作により互いに入れ替える情報処理システムIPSにおいて、負荷分散動作中のサーバSVへのアクセスを禁止できる。
さらに、図20から図23に示した実施形態の負荷分散動作を、図20および図21に示したmemcachedの機能を搭載する実施形態に適用してもよい。
以上、この実施形態においても、上述した実施形態と同様に、高頻度メモリMEMmaxの割り当てを、あるサーバSVから別のサーバSVに変更でき、管理装置LBの負荷を増やすことなく、アクセスが集中しているサーバSVの負荷を軽減できる。メモリMEMの割り当ての変更の要否をしきい値により判断することで、サーバSVの負荷の削減効果が小さいときに、メモリMEMの割り当ての変更を禁止でき、管理装置LBおよびサーバSVのアクセス要求に対する処理能力が、メモリMEMの割り当てを変更することにより低下することを防止できる。
また、負荷分散テーブルTBL1に空きがないときに、アクセス頻度の低いクエリを負荷分散テーブルTBL1から削除することで、現在のアクセスの集中度に応じてメモリMEMの割り当てを変更でき、情報処理システムIPSの性能を向上できる。メモリMEMのサーバSVへの割り当てを、アクセス頻度に応じて入れ換えることで、サーバSV0−SV2間の負荷のばらつきを抑制できる。記憶装置MDのメモリMEMおよびサーバSVのメモリMEMbにデータを格納する情報処理システムIPSにおいて、管理装置LBおよびサーバSVの負荷を増やすことなく、アクセスが集中しているサーバSVの負荷を軽減できる。memcachedのプログラムにより、メモリMEM0−MEM9にアクセスする情報処理システムIPSにおいて、管理装置LBおよびサーバSVの負荷を増やすことなく、アクセスが集中しているサーバSVの負荷を軽減できる。
さらに、この実施形態では、管理装置LBがアクセス禁止を開始した後に管理テーブルTBL2を変更し、負荷分散テーブルTBL1が更新された後に、アクセス禁止が解除される。これにより、負荷分散テーブルTBL1と管理テーブルTBL2とが一致していない期間に、アクセス要求がサーバSVに発行されることを防止でき、制御装置CTRLによるデータの読み出しエラーが発生することを防止できる。
以上の実施形態において説明した発明を整理して、付記として開示する。
(付記1)
複数の情報処理装置のいずれかを介して管理装置から発行されるアクセス要求を受け、前記複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御する制御装置において、
それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度を超えるか又は相対的にアクセス頻度の高い第1のメモリを検出する第1検出部と、
それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度以下の第2のメモリを検出する第2検出部と、
前記複数のメモリの各々にアクセスする情報処理装置の割り当てを示す対応情報を記憶する記憶部と、
前記第1のメモリに第1の情報処理装置を割り当てた旨を、前記第2のメモリを割り当てた第2の情報処理装置を割り当てるように、前記対応情報を変更する変更部と、
前記変更部が変更した対応情報を前記管理装置に通知するとともに、前記第1のメモリから読み出したデータを、前記第2の情報処理装置を介して前記管理装置に出力する出力部と
を備えていることを特徴とする制御装置。
(付記2)
前記変更部はさらに、
前記第2のメモリに前記第2の情報処理装置を割り当てた旨を、前記第1の情報処理装置を割り当てるように、前記対応情報を変更し、
前記出力部はさらに、
前記第2のメモリから読み出したデータを、前記第1の情報処理装置を介して前記管理装置に出力すること
を特徴とする付記1に記載の制御装置。
(付記3)
前記制御装置はさらに、
前記複数のメモリ各々に対する前記複数の情報処理装置からのアクセス回数を計数する計数部を備え、
前記第1検出部は、
前記複数のメモリからそれぞれの計数部が計数したアクセス回数が最も多いメモリを前記第1のメモリとして検出し、
前記第2検出部は、
前記複数のメモリからそれぞれの計数部が計数したアクセス回数が最も少ないメモリを前記第2のメモリとして検出すること
を特徴とする付記1または付記2に記載の制御装置。
(付記4)
前記制御装置はさらに、
前記第1検出部が前記第1のメモリを検出し、前記第2検出部が前記第2のメモリを検出した後、前記変更部が前記対応情報を変更する前に、前記管理装置にアクセス要求の発行を禁止させ、
前記管理装置から前記アクセス要求の発行を禁止する旨の通知を受けた後、前記変更部が変更した対応情報を前記出力部から前記管理装置に通知すること
を特徴とする付記1ないし付記3のいずれか1項に記載の制御装置。
(付記5)
複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御する制御装置に、前記複数の情報処理装置のいずれかを介してアクセス要求を発行する管理装置において、
それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度を超える第1のメモリへの第1の情報処理装置を介したアクセス要求を、それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度を超える第2のメモリを割り当てた第2の情報処理装置を介して出力する旨の変更情報を前記制御装置から受ける受信部と、
前記第1のメモリに格納されているデータに対応するキー情報を、前記第2のメモリを割り当てた前記第2の情報処理装置を示す識別情報に対応付けて記憶する記憶部と、
前記キー情報を前記識別情報に対応付けて、前記記憶部に格納する格納部と、
前記アクセス要求とともに受けたキー情報が、前記記憶部に格納された識別情報に対応付けられている場合、対応付けられた前記識別情報が示す情報処理装置に前記アクセス要求を出力するとともに、前記キー情報が、前記記憶部に格納された識別情報に対応づけられていない場合、前記キー情報から求めた情報処理装置に前記アクセス要求を出力する出力部と
を備えていることを特徴とする管理装置。
(付記6)
前記格納部はさらに、
前記キー情報毎のアクセス頻度を示す頻度情報を前記記憶部に格納し、
前記記憶部に空きがない場合、格納した前記頻度情報に基づき、前記記憶部に格納されたキー情報と対応する識別情報を消去すること
を特徴とする付記5に記載の管理装置。
(付記7)
複数の情報処理装置と、前記複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置と、前記複数の情報処理装置のいずれかにアクセス要求を出力する管理装置と、前記複数の情報処理装置のいずれかを介して前記管理装置が発行する前記アクセス要求を受け、前記記憶装置のアクセスを制御する制御装置とを含む情報処理システムにおいて、
前記制御装置は、
それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度を超える第1のメモリを検出する第1検出部と、
それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度以下の第2のメモリを検出する第2検出部と、
前記複数のメモリの各々にアクセスする情報処理装置の割り当てを示す対応情報を記憶する第1記憶部と、
前記第1のメモリに第1の情報処理装置を割り当てた旨を、前記第2のメモリを割り当てた第2の情報処理装置を割り当てるように、前記対応情報を変更する変更部と、
前記変更部が変更した対応情報を前記管理装置に通知するとともに、前記第1のメモリから読み出したデータを、前記第2の情報処理装置を介して前記管理装置に出力する出力部と
を備え、
前記管理装置は、
前記変更部が変更した対応情報を前記制御装置から受ける受信部と、
前記第1のメモリに格納されているデータに対応するキー情報を、前記第2のメモリを割り当てた前記第2の情報処理装置を示す識別情報に対応付けて記憶する第2記憶部と、
前記キー情報を前記識別情報に対応付けて、前記第2記憶部に格納する格納部と、
前記アクセス要求とともに受けたキー情報が、前記第2記憶部に格納された識別情報に対応付けられている場合、対応付けられた前記識別情報が示す情報処理装置に前記アクセス要求を出力するとともに、前記キー情報が、前記第2記憶部に格納された識別情報に対応づけられていない場合、前記キー情報から求めた情報処理装置に前記アクセス要求を出力する出力部と
を備えていることを特徴とする情報処理システム。
(付記8)
前記管理装置によりアクセスされるデータベースを備え、
前記情報処理装置、前記制御装置および前記記憶装置は、前記データベースの分散キャッシュサーバとして動作すること
を特徴とする付記7に記載の情報処理システム。
(付記9)
複数の情報処理装置のいずれかを介して管理装置から発行されるアクセス要求を受け、前記複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御するとともに、前記複数のメモリの各々にアクセスする情報処理装置の割り当てを示す対応情報を記憶する記憶部を有する制御装置の制御方法において、
前記制御装置が有する第1検出部が、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度を超える第1のメモリを検出し、
前記制御装置が有する第2検出部が、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度以下の第2のメモリを検出し、
前記制御装置が有する変更部が、前記第1のメモリに第1の情報処理装置を割り当てた旨を、前記第2のメモリを割り当てた第2の情報処理装置を割り当てるように、前記対応情報を変更し、
前記制御装置が有する出力部が、前記変更部が変更した対応情報を前記管理装置に通知するとともに、前記第1のメモリから読み出したデータを、前記第2の情報処理装置を介して前記管理装置に出力することを特徴とする制御装置の制御方法。
(付記10)
前記制御装置は、
前記第2のメモリに前記第2の情報処理装置を割り当てた旨を、前記第1の情報処理装置を割り当てるように、前記対応情報を変更し、
前記出力部はさらに、
前記第2のメモリから読み出したデータを、前記第1の情報処理装置を介して前記管理装置に出力すること
を特徴とする付記9に記載の制御装置の動作方法。
(付記11)
前記制御装置はさらに、
前記複数のメモリ各々に対する前記複数の情報処理装置からのアクセス回数を計数し、
前記第1検出部は、
前記複数のメモリからそれぞれの計数部が計数したアクセス回数が最も多いメモリを前記第1のメモリとして検出し、
前記第2検出部は、
前記複数のメモリからそれぞれの計数部が計数したアクセス回数が最も少ないメモリを前記第2のメモリとして検出すること
を特徴とする付記9または付記10に記載の制御装置の動作方法。
(付記12)
前記制御装置はさらに、
前記第1検出部が前記第1のメモリを検出し、前記第2検出部が前記第2のメモリを検出した後、前記変更部が前記対応情報を変更する前に、前記管理装置にアクセス要求の発行を禁止させ、
前記管理装置から前記アクセス要求の発行を禁止する旨の通知を受けた後、前記変更部が変更した対応情報を前記出力部から前記管理装置に通知すること
を特徴とする付記9ないし付記11のいずれか1項に記載の制御装置の動作方法。
(付記13)
複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御する制御装置に、前記複数の情報処理装置のいずれかを介してアクセス要求を発行する管理装置の制御方法において、
前記管理装置の受信部が、それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度を超える第1のメモリへの第1の情報処理装置を介したアクセス要求を、それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度を超える第2のメモリを割り当てた第2の情報処理装置を介して出力する旨の変更情報を前記制御装置から受け、
前記管理装置の格納部が、前記第1のメモリに格納されているデータに対応するキー情報を、前記第2のメモリを割り当てた前記第2の情報処理装置を示す識別情報に対応付けて、記憶部に格納し、
前記管理装置の出力部が、前記アクセス要求とともに受けたキー情報が、前記記憶部に格納された識別情報に対応付けられている場合、対応付けられた前記識別情報が示す情報処理装置に前記アクセス要求を出力するとともに、前記キー情報が、前記記憶部に格納された識別情報に対応づけられていない場合、前記キー情報から求めた情報処理装置に前記アクセス要求を出力することを特徴とする管理装置の制御方法。
(付記14)
前記格納部はさらに、
前記キー情報毎のアクセス頻度を示す頻度情報を前記記憶部に格納し、
前記記憶部に空きがない場合、格納した前記頻度情報に基づき、前記記憶部に格納されたキー情報と対応する識別情報を消去すること
を特徴とする付記13に記載の管理装置の動作方法。
(付記15)
複数の情報処理装置と、前記複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置と、前記複数の情報処理装置のいずれかにアクセス要求を出力する管理装置と、前記複数の情報処理装置のいずれかを介して前記管理装置が発行する前記アクセス要求を受け、前記記憶装置のアクセスを制御するとともに、前記複数のメモリの各々にアクセスする情報処理装置の割り当てを示す対応情報を記憶する第1記憶部を有する制御装置とを含む情報処理システムの制御方法において、
前記制御装置が有する第1の検出部が、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度を超える第1のメモリを検出し、
前記制御装置が有する第2の検出部が、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度以下の第2のメモリを検出し、
前記制御装置が有する変更部が、前記第1のメモリに第1の情報処理装置を割り当てた旨を、前記第2のメモリを割り当てた第2の情報処理装置を割り当てるように、前記対応情報を変更し、
前記制御装置が有する出力部が、前記変更部が変更した対応情報を前記管理装置に通知するとともに、前記第1のメモリから読み出したデータを、前記第2の情報処理装置を介して前記管理装置に出力し、
前記管理装置が有する受信部が、前記変更部が変更した対応情報を前記制御装置から受信し、
前記管理装置が有する格納部が、前記第1のメモリに格納されているデータに対応するキー情報を、前記第2のメモリを割り当てた前記第2の情報処理装置を示す識別情報に対応付けて、第2記憶部に格納し、
前記管理装置が有する出力部が、前記アクセス要求とともに受けたキー情報が、前記第2記憶部に格納された識別情報に対応付けられている場合、対応付けられた前記識別情報が示す情報処理装置に前記アクセス要求を出力するとともに、前記キー情報が、前記第2記憶部に格納された識別情報に対応づけられていない場合、前記キー情報から求めた情報処理装置に前記アクセス要求を出力することを特徴とする情報処理システムの制御方法。
(付記16)
複数の情報処理装置のいずれかを介して管理装置から発行されるアクセス要求を受け、前記複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御するとともに、前記複数のメモリの各々にアクセスする情報処理装置の割り当てを示す対応情報を記憶する記憶部を有する制御装置の制御プログラムにおいて、
前記制御装置が有する第1検出部に、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度を超える第1のメモリを検出させ、
前記制御装置が有する第2検出部に、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度以下の第2のメモリを検出させ、
前記制御装置が有する変更部に、前記第1のメモリに第1の情報処理装置を割り当てた旨を、前記第2のメモリを割り当てた第2の情報処理装置を割り当てるように、前記対応情報を変更させ、
前記制御装置が有する出力部に、前記変更部が変更した対応情報を前記管理装置に通知するとともに、前記第1のメモリから読み出したデータを、前記第2の情報処理装置を介して前記管理装置に出力させることを特徴とする制御装置の制御プログラム。
(付記17)
複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御する制御装置に、前記複数の情報処理装置のいずれかを介してアクセス要求を発行する管理装置の制御プログラムにおいて、
前記管理装置の受信部に、それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度を超える第1のメモリへの第1の情報処理装置を介したアクセス要求を、それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度を超える第2のメモリを割り当てた第2の情報処理装置を介して出力する旨の変更情報を前記制御装置から受信させ、
前記管理装置の格納部に、前記第1のメモリに格納されているデータに対応するキー情報を、前記第2のメモリを割り当てた前記第2の情報処理装置を示す識別情報に対応付けて、前記記憶部に格納させ、
前記管理装置の出力部に、前記アクセス要求とともに受けたキー情報が、前記記憶部に格納された識別情報に対応付けられている場合、対応付けられた前記識別情報が示す情報処理装置に前記アクセス要求を出力するとともに、前記キー情報が、前記記憶部に格納された識別情報に対応づけられていない場合、前記キー情報から求めた情報処理装置に前記アクセス要求を出力させることを特徴とする管理装置の制御プログラム。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
1A、2A、1B、2B‥メモリ;10‥管理装置;12‥受信部;14‥格納部;16‥出力部;20A、20B‥情報処理装置;30‥制御装置;32、34‥検出部;36‥変更部;38‥出力部;40‥記憶装置;CPUa、CPUb‥プロセッサ;CTRL‥制御装置;DB‥データベース;IPS‥情報処理システム;K1、K2、K3‥キー;LB‥管理装置;MD‥記憶装置;MEM0−MDM9、MEMa、MEMb‥メモリ;SV0−SV2‥サーバ;SW‥スイッチ;TBL1‥負荷分散テーブル;TBL2‥管理テーブル

Claims (12)

  1. 複数の情報処理装置のいずれかを介して管理装置から発行されるアクセス要求を受け、前記複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御する制御装置において、
    それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度を超えるか又は相対的にアクセス頻度の高い第1のメモリを検出する第1検出部と、
    それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度以下の第2のメモリを検出する第2検出部と、
    前記複数のメモリの各々にアクセスする情報処理装置の割り当てを示す対応情報を記憶する記憶部と、
    前記第1のメモリに第1の情報処理装置を割り当てた旨を、前記第2のメモリを割り当てた第2の情報処理装置を割り当てるように、前記対応情報を変更する変更部と、
    前記変更部が変更した対応情報を前記管理装置に通知するとともに、前記第1のメモリから読み出したデータを、前記第2の情報処理装置を介して前記管理装置に出力する出力部と
    を備えていることを特徴とする制御装置。
  2. 前記変更部はさらに、
    前記第2のメモリに前記第2の情報処理装置を割り当てた旨を、前記第1の情報処理装置を割り当てるように、前記対応情報を変更し、
    前記出力装置はさらに、
    前記第2のメモリから読み出したデータを、前記第1の情報処理装置を介して前記管理装置に出力すること
    を特徴とする請求項1に記載の制御装置。
  3. 前記制御装置はさらに、
    前記複数のメモリ各々に対する前記複数の情報処理装置からのアクセス回数を計数する計数部を備え、
    前記第1検出部は、
    前記複数のメモリからそれぞれの計数部が計数したアクセス回数が最も多いメモリを前記第1のメモリとして検出し、
    前記第2検出部は、
    前記複数のメモリからそれぞれの計数部が計数したアクセス回数が最も少ないメモリを前記第2のメモリとして検出すること
    を特徴とする請求項1または請求項2に記載の制御装置。
  4. 前記制御装置はさらに、
    前記第1検出部が前記第1のメモリを検出し、前記第2検出部が前記第2のメモリを検出した後、前記変更部が前記対応情報を変更する前に、前記管理装置にアクセス要求の発行を禁止させ、
    前記管理装置から前記アクセス要求の発行を禁止する旨の通知を受けた後、前記変更部が変更した対応情報を前記出力装置から前記管理装置に通知すること
    を特徴とする請求項1ないし請求項3のいずれか1項に記載の制御装置。
  5. 複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御する制御装置に、前記複数の情報処理装置のいずれかを介してアクセス要求を発行する管理装置において、
    それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度を超える第1のメモリへの第1の情報処理装置を介したアクセス要求を、それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度を超える第2のメモリを割り当てた第2の情報処理装置を介して出力する旨の変更情報を前記制御装置から受ける受信部と、
    前記第1のメモリに格納されているデータに対応するキー情報を、前記第2のメモリを割り当てた前記第2の情報処理装置を示す識別情報に対応付けて記憶する記憶部と、
    前記キー情報を前記識別情報に対応付けて、前記記憶部に格納する格納部と、
    前記アクセス要求とともに受けたキー情報が、前記記憶部に格納された識別情報に対応付けられている場合、対応付けられた前記識別情報が示す情報処理装置に前記アクセス要求を出力するとともに、前記キー情報が、前記記憶部に格納された識別情報に対応づけられていない場合、前記キー情報から求めた情報処理装置に前記アクセス要求を出力する出力部と
    を備えていることを特徴とする管理装置。
  6. 前記格納部はさらに、
    前記キー情報毎のアクセス頻度を示す頻度情報を前記記憶部に格納し、
    前記記憶部に空きがない場合、格納した前記頻度情報に基づき、前記記憶部に格納されたキー情報と対応する識別情報を消去すること
    を特徴とする請求項5に記載の管理装置。
  7. 複数の情報処理装置と、前記複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置と、前記複数の情報処理装置のいずれかにアクセス要求を出力する管理装置と、前記複数の情報処理装置のいずれかを介して前記管理装置が発行する前記アクセス要求を受け、前記記憶装置のアクセスを制御する制御装置とを含む情報処理システムにおいて、
    前記制御装置は、
    それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度を超える第1のメモリを検出する第1検出部と、
    それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度以下の第2のメモリを検出する第2検出部と、
    前記複数のメモリの各々にアクセスする情報処理装置の割り当てを示す対応情報を記憶する第1記憶部と、
    前記第1のメモリに第1の情報処理装置を割り当てた旨を、前記第2のメモリを割り当てた第2の情報処理装置を割り当てるように、前記対応情報を変更する変更部と、
    前記変更部が変更した対応情報を前記管理装置に通知するとともに、前記第1のメモリから読み出したデータを、前記第2の情報処理装置を介して前記管理装置に出力する出力部と
    を備え、
    前記管理装置は、
    前記変更部が変更した対応情報を前記制御装置から受ける受信部と、
    前記第1のメモリに格納されているデータに対応するキー情報を、前記第2のメモリを割り当てた前記第2の情報処理装置を示す識別情報に対応付けて記憶する第2記憶部と、
    前記キー情報を前記識別情報に対応付けて、前記第2記憶部に格納する格納部と、
    前記アクセス要求とともに受けたキー情報が、前記第2記憶部に格納された識別情報に対応付けられている場合、対応付けられた前記識別情報が示す情報処理装置に前記アクセス要求を出力するとともに、前記キー情報が、前記第2記憶部に格納された識別情報に対応づけられていない場合、前記キー情報から求めた情報処理装置に前記アクセス要求を出力する出力部と
    を備えていることを特徴とする情報処理システム。
  8. 複数の情報処理装置のいずれかを介して管理装置から発行されるアクセス要求を受け、前記複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御するとともに、前記複数のメモリの各々にアクセスする情報処理装置の割り当てを示す対応情報を記憶する記憶部を有する制御装置の制御方法において、
    前記制御装置が有する第1検出部が、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度を超える第1のメモリを検出し、
    前記制御装置が有する第2検出部が、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度以下の第2のメモリを検出し、
    前記制御装置が有する変更部が、前記第1のメモリに第1の情報処理装置を割り当てた旨を、前記第2のメモリを割り当てた第2の情報処理装置を割り当てるように、前記対応情報を変更し、
    前記制御装置が有する出力部が、前記変更部が変更した対応情報を前記管理装置に通知するとともに、前記第1のメモリから読み出したデータを、前記第2の情報処理装置を介して前記管理装置に出力することを特徴とする制御装置の制御方法。
  9. 複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御する制御装置に、前記複数の情報処理装置のいずれかを介してアクセス要求を発行する管理装置の制御方法において、
    前記管理装置の受信部が、それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度を超える第1のメモリへの第1の情報処理装置を介したアクセス要求を、それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度を超える第2のメモリを割り当てた第2の情報処理装置を介して出力する旨の変更情報を前記制御装置から受け、
    前記管理装置の格納部が、前記第1のメモリに格納されているデータに対応するキー情報を、前記第2のメモリを割り当てた前記第2の情報処理装置を示す識別情報に対応付けて、記憶部に格納し、
    前記管理装置の出力部が、前記アクセス要求とともに受けたキー情報が、前記記憶部に格納された識別情報に対応付けられている場合、対応付けられた前記識別情報が示す情報処理装置に前記アクセス要求を出力するとともに、前記キー情報が、前記記憶部に格納された識別情報に対応づけられていない場合、前記キー情報から求めた情報処理装置に前記アクセス要求を出力することを特徴とする管理装置の制御方法。
  10. 複数の情報処理装置と、前記複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置と、前記複数の情報処理装置のいずれかにアクセス要求を出力する管理装置と、前記複数の情報処理装置のいずれかを介して前記管理装置が発行する前記アクセス要求を受け、前記記憶装置のアクセスを制御するとともに、前記複数のメモリの各々にアクセスする情報処理装置の割り当てを示す対応情報を記憶する第1記憶部を有する制御装置とを含む情報処理システムの制御方法において、
    前記制御装置が有する第1の検出部が、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度を超える第1のメモリを検出し、
    前記制御装置が有する第2の検出部が、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度以下の第2のメモリを検出し、
    前記制御装置が有する変更部が、前記第1のメモリに第1の情報処理装置を割り当てた旨を、前記第2のメモリを割り当てた第2の情報処理装置を割り当てるように、前記対応情報を変更し、
    前記制御装置が有する出力部が、前記変更部が変更した対応情報を前記管理装置に通知するとともに、前記第1のメモリから読み出したデータを、前記第2の情報処理装置を介して前記管理装置に出力し、
    前記管理装置が有する受信部が、前記変更部が変更した対応情報を前記制御装置から受信し、
    前記管理装置が有する格納部が、前記第1のメモリに格納されているデータに対応するキー情報を、前記第2のメモリを割り当てた前記第2の情報処理装置を示す識別情報に対応付けて、第2記憶部に格納し、
    前記管理装置が有する出力部が、前記アクセス要求とともに受けたキー情報が、前記第2記憶部に格納された識別情報に対応付けられている場合、対応付けられた前記識別情報が示す情報処理装置に前記アクセス要求を出力するとともに、前記キー情報が、前記第2記憶部に格納された識別情報に対応づけられていない場合、前記キー情報から求めた情報処理装置に前記アクセス要求を出力することを特徴とする情報処理システムの制御方法。
  11. 複数の情報処理装置のいずれかを介して管理装置から発行されるアクセス要求を受け、前記複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御するとともに、前記複数のメモリの各々にアクセスする情報処理装置の割り当てを示す対応情報を記憶する記憶部を有する制御装置の制御プログラムにおいて、
    前記制御装置が有する第1検出部に、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度を超える第1のメモリを検出させ、
    前記制御装置が有する第2検出部に、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度以下の第2のメモリを検出させ、
    前記制御装置が有する変更部に、前記第1のメモリに第1の情報処理装置を割り当てた旨を、前記第2のメモリを割り当てた第2の情報処理装置を割り当てるように、前記対応情報を変更させ、
    前記制御装置が有する出力部に、前記変更部が変更した対応情報を前記管理装置に通知するとともに、前記第1のメモリから読み出したデータを、前記第2の情報処理装置を介して前記管理装置に出力させることを特徴とする制御装置の制御プログラム。
  12. 複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御する制御装置に、前記複数の情報処理装置のいずれかを介してアクセス要求を発行する管理装置の制御プログラムにおいて、
    前記管理装置の受信部に、それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度を超える第1のメモリへの第1の情報処理装置を介したアクセス要求を、それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度を超える第2のメモリを割り当てた第2の情報処理装置を介して出力する旨の変更情報を前記制御装置から受信させ、
    前記管理装置の格納部に、前記第1のメモリに格納されているデータに対応するキー情報を、前記第2のメモリを割り当てた前記第2の情報処理装置を示す識別情報に対応付けて、前記記憶部に格納させ、
    前記管理装置の出力部に、前記アクセス要求とともに受けたキー情報が、前記記憶部に格納された識別情報に対応付けられている場合、対応付けられた前記識別情報が示す情報処理装置に前記アクセス要求を出力するとともに、前記キー情報が、前記記憶部に格納された識別情報に対応づけられていない場合、前記キー情報から求めた情報処理装置に前記アクセス要求を出力させることを特徴とする管理装置の制御プログラム。
JP2012062827A 2012-03-19 2012-03-19 制御装置、管理装置、情報処理システム、制御装置の動作方法、管理装置の動作方法、情報処理システムの動作方法およびプログラム Expired - Fee Related JP5831319B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012062827A JP5831319B2 (ja) 2012-03-19 2012-03-19 制御装置、管理装置、情報処理システム、制御装置の動作方法、管理装置の動作方法、情報処理システムの動作方法およびプログラム
US13/783,853 US9086803B2 (en) 2012-03-19 2013-03-04 Changing correspondence among control devices and memories based on memory access frequencies

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012062827A JP5831319B2 (ja) 2012-03-19 2012-03-19 制御装置、管理装置、情報処理システム、制御装置の動作方法、管理装置の動作方法、情報処理システムの動作方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2013196384A true JP2013196384A (ja) 2013-09-30
JP5831319B2 JP5831319B2 (ja) 2015-12-09

Family

ID=49158789

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012062827A Expired - Fee Related JP5831319B2 (ja) 2012-03-19 2012-03-19 制御装置、管理装置、情報処理システム、制御装置の動作方法、管理装置の動作方法、情報処理システムの動作方法およびプログラム

Country Status (2)

Country Link
US (1) US9086803B2 (ja)
JP (1) JP5831319B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016095665A (ja) * 2014-11-14 2016-05-26 富士通株式会社 処理プログラム、データ処理方法、および処理装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9483191B2 (en) * 2013-03-15 2016-11-01 Arris Enterprises, Inc. Multi-tier storage for delivery of services
US10254961B2 (en) * 2017-02-21 2019-04-09 International Business Machines Corporation Dynamic load based memory tag management
US11561603B2 (en) * 2018-12-20 2023-01-24 Micron Technology, Inc. Memory device low power mode
US11256427B2 (en) 2018-12-28 2022-02-22 Micron Technology, Inc. Unauthorized memory access mitigation

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2706021B2 (ja) 1992-09-18 1998-01-28 日立ソフトウエアエンジニアリング株式会社 構造型データベースにおける検索高速化方法
US7272640B1 (en) * 2000-12-08 2007-09-18 Sun Microsystems, Inc. Dynamic network session redirector
JP4574230B2 (ja) 2004-05-27 2010-11-04 株式会社日立製作所 データベース管理方法及びデータベースシステム
US7886299B2 (en) * 2004-06-01 2011-02-08 Hitachi, Ltd. Method of dynamically balancing workload of a storage system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016095665A (ja) * 2014-11-14 2016-05-26 富士通株式会社 処理プログラム、データ処理方法、および処理装置

Also Published As

Publication number Publication date
US9086803B2 (en) 2015-07-21
JP5831319B2 (ja) 2015-12-09
US20130246718A1 (en) 2013-09-19

Similar Documents

Publication Publication Date Title
US10289555B1 (en) Memory read-ahead using learned memory access patterns
US10180908B2 (en) Method and apparatus for virtualized control of a shared system cache
US9824011B2 (en) Method and apparatus for processing data and computer system
US9223712B2 (en) Data cache method, device, and system in a multi-node system
US10719479B2 (en) Data unit cloning in memory-based file systems
US10089238B2 (en) Method and apparatus for a shared cache with dynamic partitioning
US11163452B2 (en) Workload based device access
US9612970B2 (en) Method and apparatus for flexible cache partitioning by sets and ways into component caches
US9619150B2 (en) Data arrangement control method and data arrangement control apparatus
JP5831319B2 (ja) 制御装置、管理装置、情報処理システム、制御装置の動作方法、管理装置の動作方法、情報処理システムの動作方法およびプログラム
EP2919120B1 (en) Memory monitoring method and related device
US10198180B2 (en) Method and apparatus for managing storage device
US9489295B2 (en) Information processing apparatus and method
US20160085450A1 (en) System for providing remote memory and temporary page pool operating method for providing remote memory
CN110737607B (zh) 管理hmb内存的方法、装置、计算机设备及存储介质
US9401870B2 (en) Information processing system and method for controlling information processing system
JP2018500697A (ja) トランザクションコンフリクトを検出するための方法および装置、ならびにコンピュータシステム
JP6281442B2 (ja) 割り当て制御プログラム、割り当て制御方法及び割り当て制御装置
TWI779338B (zh) 用於記憶體管理機會與記憶體交換任務之運算系統及管理其之方法
US20150177987A1 (en) Augmenting memory capacity for key value cache
US20230297512A1 (en) Information processing system and memory system
US20230418642A1 (en) Memory coherence in virtualized environments
JP6565729B2 (ja) 演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法
TW202418076A (zh) 用於記憶體管理機會與記憶體交換任務之運算系統及管理其之方法
CN117667776A (zh) 存储器带宽分配方法及设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150612

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150714

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150909

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151012

R150 Certificate of patent or registration of utility model

Ref document number: 5831319

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees