(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-01-24
(54)【発明の名称】ページセットにおけるメッセージのインテリジェント・ストレージ
(51)【国際特許分類】
G06F 16/13 20190101AFI20250117BHJP
G06F 11/34 20060101ALI20250117BHJP
G06F 9/54 20060101ALI20250117BHJP
【FI】
G06F16/13 100
G06F11/34 133
G06F9/54 A
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024538744
(86)(22)【出願日】2022-12-07
(85)【翻訳文提出日】2024-06-25
(86)【国際出願番号】 EP2022084819
(87)【国際公開番号】W WO2023126139
(87)【国際公開日】2023-07-06
(32)【優先日】2022-01-03
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】チャン、ジュアン
(72)【発明者】
【氏名】シャーキー、アンソニー、ジョン
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042MA08
5B042MA14
5B042MC22
(57)【要約】
ページセットにおけるメッセージのインテリジェント・ストレージ
メッセージのインテリジェント・ストレージが提供される。事前定義ターゲット・ページセットが事前定義最低未使用ページ閾値レベルに達したことに応答して、アプリケーション・ワークロードに関連付けられた事前定義ターゲット・ページセットに対応する受信メッセージを記憶するために、スピルオーバー・ページセットが、選択される。事前定義ターゲット・ページセットが事前定義最低未使用ページ閾値レベルに達した後に事前定義ターゲット・ページセットのためのメッセージ・ストレージを拡張するように、アプリケーション・ワークロードに関連付けられた事前定義ターゲット・ページセットに対応する受信メッセージについて、メッセージ記憶先として、スピルオーバー・ページセットが利用される。
【特許請求の範囲】
【請求項1】
メッセージのインテリジェント・ストレージのためのコンピュータ実施方法であって、
コンピュータによって、事前定義ターゲット・ページセットが事前定義最低未使用ページ閾値レベルに達したことに応答して、アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットに対応する受信メッセージを記憶するために、スピルオーバー・ページセットを選択することと、
前記コンピュータによって、前記事前定義ターゲット・ページセットが前記事前定義最低未使用ページ閾値レベルに達した後に前記事前定義ターゲット・ページセットのためのメッセージ・ストレージを拡張するように、前記アプリケーション・ワークロードに関連付けられた事前定義ターゲット・ページセットに対応する前記受信メッセージについて、メッセージ記憶先として、前記スピルオーバー・ページセットを利用することとを含む、コンピュータ実施方法。
【請求項2】
前記コンピュータによって、複数のページセット内のそれぞれのページセットの未使用ページ・ステータスを監視することと、
前記コンピュータによって、前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットが、各それぞれのページセットの前記未使用ページ・ステータスの前記監視に基づいて、前記事前定義最低未使用ページ閾値レベルに達したことを検出することとをさらに含む、請求項1に記載のコンピュータ実施方法。
【請求項3】
前記コンピュータによって、前記事前定義ターゲット・ページセットに対して、スケールアウト・ビットが設定されているかどうかを判定することをさらに含む、請求項1または2のいずれかに記載のコンピュータ実施方法。
【請求項4】
前記コンピュータによって、前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットの未使用ページの数が、定義された百分率量だけ、前記事前定義最低未使用ページ閾値レベルよりも大きいことを検出することと、
前記コンピュータによって、前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットの未使用ページの前記数が、前記定義された百分率量だけ、前記事前定義最低未使用ページ閾値レベルよりも大きいことを検出したことに応答して、前記事前定義ターゲット・ページセットを、前記メッセージ記憶先として利用することとをさらに含む、請求項1ないし3のいずれかに記載のコンピュータ実施方法。
【請求項5】
前記コンピュータによって、サービスの前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットに対応するメッセージを受信することと、
前記コンピュータによって、ページセット・リストに含まれる情報に基づいて、前記事前定義ターゲット・ページセット内の未使用ページの数を識別することとをさらに含む、請求項1ないし4のいずれかに記載のコンピュータ実施方法。
【請求項6】
前記コンピュータによって、前記事前定義ターゲット・ページセット内の未使用ページの前記数が、前記事前定義最低未使用ページ閾値レベル以下かどうかを判定することと、
前記コンピュータによって、前記事前定義ターゲット・ページセット内の未使用ページの前記数が、前記事前定義最低未使用ページ閾値レベル以下でないことを判定したことに応答して、前記事前定義ターゲット・ページセットに対応する事前定義ストレージ・クラスの前記事前定義ターゲット・ページセットに前記メッセージを記憶することとをさらに含む、請求項5に記載のコンピュータ実施方法。
【請求項7】
前記コンピュータによって、前記事前定義ターゲット・ページセット内の未使用ページの前記数が、前記事前定義最低未使用ページ閾値レベル以下であることを判定したことに応答して、前記ページセット・リストの先頭から前記スピルオーバー・ページセットを選択することをさらに含む、請求項6に記載のコンピュータ実施方法。
【請求項8】
前記コンピュータによって、前記スピルオーバー・ページセットに対応する拡張ストレージ・クラスを、多重ドウェル・キュー内のキューに対して割り当てることと、
前記コンピュータによって、前記キュー内の前記拡張ストレージ・クラスを介して前記スピルオーバー・ページセットに前記メッセージを記憶することとをさらに含む、請求項7に記載のコンピュータ実施方法。
【請求項9】
ページセット全体に対応するメッセージが複数のスピルオーバー・ページセットにまたがって記憶されるとき、前記スピルオーバー・ページセットが、前記メッセージを読み出してバッファに戻すために、前記スピルオーバー・ページセットの識別子を含む、メッセージ場所のインデックスを含む、請求項1ないし8のいずれかに記載のコンピュータ実施方法。
【請求項10】
キューが、前記キューの事前定義ストレージ・クラスおよび拡張ストレージ・クラスが事前定義最高記憶閾値レベルに達したことに応答して、自動的に更新される、請求項1ないし9のいずれかに記載のコンピュータ実施方法。
【請求項11】
メッセージのインテリジェント・ストレージのためのコンピュータ・システムであって、
バス・システムと、
前記バス・システムに接続された記憶デバイスであって、前記記憶デバイスが、プログラム命令を記憶する、前記記憶デバイスと、
前記バス・システムに接続されたプロセッサであって、前記プロセッサが、
事前定義ターゲット・ページセットが事前定義最低未使用ページ閾値レベルに達したことに応答して、アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットに対応する受信メッセージを記憶するために、スピルオーバー・ページセットを選択することと、
前記事前定義ターゲット・ページセットが前記事前定義最低未使用ページ閾値レベルに達した後に前記事前定義ターゲット・ページセットのためのメッセージ・ストレージを拡張するように、前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットに対応する前記受信メッセージについて、メッセージ記憶先として、前記スピルオーバー・ページセットを利用することとを行うために前記プログラム命令を実行する、前記プロセッサとを備える、コンピュータ・システム。
【請求項12】
前記プロセッサが、
複数のページセット内の各それぞれのページセットの未使用ページ・ステータスを監視することと、
前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットが、各それぞれのページセットの前記未使用ページ・ステータスの前記監視に基づいて、前記事前定義最低未使用ページ閾値レベルに達したことを検出することとを行うために前記プログラム命令さらに実行する、請求項11に記載のコンピュータ・システム。
【請求項13】
前記プロセッサが、
スケールアウト・ビットが、前記事前定義ターゲット・ページセットについて設定されているかどうかを判定するために、前記プログラム命令をさらに実行する、請求項11または12に記載のコンピュータ・システム。
【請求項14】
前記プロセッサが、
前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットの未使用ページの数が、定義された百分率量だけ、前記事前定義最低未使用ページ閾値レベルよりも大きいことを検出することと、
前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットの未使用ページの前記数が、前記定義された百分率量だけ、前記事前定義最低未使用ページ閾値レベルよりも大きいことを検出したことに応答して、前記事前定義ターゲット・ページセットを、前記メッセージ記憶先として利用することとを行うために、前記プログラム命令をさらに実行する、請求項11、12、または13に記載のコンピュータ・システム。
【請求項15】
前記プロセッサが、
サービスの前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットに対応するメッセージを受信することと、
ページセット・リストに含まれる情報に基づいて、前記事前定義ターゲット・ページセット内の未使用ページの数を識別することとを行うために、前記プログラム命令をさらに実行する、請求項11ないし14のいずれかに記載のコンピュータ・システム。
【請求項16】
メッセージのインテリジェント・ストレージのためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、コンピュータ可読記憶媒体を備えており、コンピュータ可読記憶媒体が、コンピュータ可読記憶媒体によって具現化されたプログラム命令を有し、前記プログラム命令が、コンピュータに、
前記コンピュータによって、事前定義ターゲット・ページセットが事前定義最低未使用ページ閾値レベルに達したことに応答して、アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットに対応する受信メッセージを記憶するために、スピルオーバー・ページセットを選択することと、
前記コンピュータによって、前記事前定義ターゲット・ページセットが前記事前定義最低未使用ページ閾値レベルに達した後に前記事前定義ターゲット・ページセットのためのメッセージ・ストレージを拡張するように、前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットに対応する前記受信メッセージについて、メッセージ記憶先として、前記スピルオーバー・ページセットを利用することとの方法を実行させるように、前記コンピュータによって実行可能である、コンピュータ・プログラム製品。
【請求項17】
前記コンピュータによって、複数のページセット内の各それぞれのページセットの未使用ページ・ステータスを監視することと、
前記コンピュータによって、前記アプリケーション・ワークロードに関連付けられた前記事前ターゲット・ページセットが、各それぞれのページセットの前記未使用ページ・ステータスの前記監視に基づいて、前記事前定義最低未使用ページ閾値レベルに達したことを検出することとをさらに含む、請求項16に記載のコンピュータ・プログラム製品。
【請求項18】
前記コンピュータによって、前記事前定義ターゲット・ページセットに対して、スケールアウト・ビットが設定されているかどうかを判定することをさらに含む、請求項16または17に記載のコンピュータ・プログラム製品。
【請求項19】
前記コンピュータによって、前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットの未使用ページの数が、定義された百分率量だけ、前記事前定義最低未使用ページ閾値レベルよりも大きいことを検出することと、
前記コンピュータによって、前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットの未使用ページの前記数が、前記定義された百分率量だけ、前記事前定義最低未使用ページ閾値レベルよりも大きいことを検出したことに応答して、前記事前定義ターゲット・ページセットを、前記メッセージ記憶先として利用することとをさらに含む、請求項16、17、または18に記載のコンピュータ・プログラム製品。
【請求項20】
前記コンピュータによって、サービスの前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットに対応するメッセージを受信することと、
前記コンピュータによって、ページセット・リストに含まれる情報に基づいて、前記事前定義ターゲット・ページセット内の未使用ページの数を識別することとをさらに含む、請求項16ないし19のいずれかに記載のコンピュータ・プログラム製品。
【請求項21】
コンピュータ・プログラムがコンピュータ上で実行されたときに請求項1ないし10のいずれかに記載の方法を実行するように適合されたプログラム・コード手段を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、ページセットに関し、より詳細にはメッセージの元の事前定義ターゲット・ページセットの未使用ページの数が事前定義最低未使用ページ閾値レベルに達したことに応答して、利用可能な未使用ページを有するスピルオーバー・ページセットにおけるメッセージのインテリジェント・ストレージに関する。
【背景技術】
【0002】
ページセットは、データ・セットなどのメッセージを、例えばディスク・ドライブなどの直接アクセス記憶デバイス(DASD)上に物理的に記憶するために使用される。ページセットは、DASDデータ・セットのために特別にフォーマットされた仮想ストレージ・アクセス方式である。各ページセットは、ページセット識別子によって識別される。ページセットには、構造上の制限が存在する。例えば、ページセット・データ記憶限界は、64ギガバイトでもよい。各ページセットは、バッファ・プールに関連付けられている。
【0003】
いくつかの現行メッセージ・エンジンは、ディスク上のページセットに記憶されているメッセージを有する。これらの現行メッセージ・エンジンは、メッセージを記憶するために領域を拡張できるが、それらのメッセージを取り出すための入出力(I/O)コストが高い。ホット・ページ(例えば、短い時間量に要求されることが多いページ)をメモリにキャッシュすることができる他の現行メッセージ・エンジンが存在し、メッセージが、I/O動作を全く実行することなく消費される。これらの他の現行メッセージ・エンジンは、記憶の性能およびコストに応じて、多重レベルのメッセージ・ストレージにメッセージを記憶する。例えば、寿命の短いメッセージ(例えば、メッセージを受信した直後にキューから取り出されるメッセージ)は、バッファのみに記憶され得る。一方、寿命の長いメッセージは、ページセットとしてフォーマットされたメッセージ・ストレージに記憶される。しかしながら、これらの現行メッセージ・エンジンには、特定のページセットを埋める際に問題が存在する。
【発明の概要】
【0004】
例示的な一実施形態によれば、メッセージのインテリジェント・ストレージのためのコンピュータ実施方法が提供される。コンピュータは、事前定義ターゲット・ページセットが事前定義最低未使用ページ閾値レベルに達したことに応答して、アプリケーション・ワークロードに関連付けられた事前定義ターゲット・ページセットに対応する受信メッセージを記憶するために、スピルオーバー・ページセットを選択する。コンピュータは、事前定義ターゲット・ページセットが事前定義最低未使用ページ閾値レベルに達した後に事前定義ターゲット・ページセットのためのメッセージ・ストレージを拡張するように、アプリケーション・ワークロードに関連付けられた事前定義ターゲット・ページセットに対応する受信メッセージについて、メッセージ記憶先として、スピルオーバー・ページセットを利用する。他の例示的な実施形態によれば、メッセージのインテリジェント・ストレージのためのコンピュータ・システムおよびコンピュータ・プログラム製品が提供される。結果として、例示的な実施形態は、メッセージ・ストレージを、利用可能な未使用ページを有するスピルオーバー・ページセットに自動的に拡張して、アプリケーション・ワークロードに対応する事前定義ターゲット・ページセットが、定義された最低未使用ページ閾値レベルに達したときに、そのアプリケーション・ワークロードの実行を維持することができる。このように、ページセットのメッセージ記憶容量を拡張することによる例示的な実施形態は、バッファを保護するスケールアウトのページセット・プロセスを提供し、それによって多くのメッセージの突然の到着を受けるキューが、優先的なキューの性能に悪影響を与えないようにする。
【0005】
例示的な実施形態はまた、任意選択的に、スケールアウト・ビットが、事前定義ターゲット・ページセットに対して設定されているかどうかを判定する。結果として、ページセットに対してスケールアウト・ビットを設定することによる例示的な実施形態は、事前定義ターゲット・ページセットでのメッセージ・ストレージの不足によって引き起こされる停止なしに、アプリケーション・ワークロードの実行を維持することができる。
【0006】
次に、本発明の好ましい実施形態について、以下の図面を参照しながら単なる例として説明する。
【図面の簡単な説明】
【0007】
【
図1】例示的な実施形態が実施され得るデータ処理システムのネットワークの図表現である。
【
図2】例示的な実施形態が実施され得るデータ処理システムの図である。
【
図3】例示的な実施形態によるページセット管理システムの一例を示す図である。
【
図4】例示的な実施形態によるページセット管理プロセスの一例を示す図である。
【
図5】例示的な実施形態によるページセット・リストの一例を示す図である。
【
図6】例示的な実施形態による、メッセージのページセット・ストレージを拡張するためのプロセスを示すフローチャートである。
【
図7】例示的な実施形態による、ページセットにおけるメッセージのインテリジェント・ストレージのためのプロセスを示すフローチャートである。
【発明を実施するための形態】
【0008】
本発明は、あらゆる可能な技術的詳細レベルの統合において、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであり得る。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有する1つまたは複数のコンピュータ可読記憶媒体を含み得る。
【0009】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持および記憶できる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、または前述の任意の適切な組合せとすることができるが、これらに限定されるものではない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストとしては、以下が挙げられる:ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピ・ディスク、命令が記録されたパンチカードまたは溝に刻まれた構造などの機械的にエンコードされたデバイス、および前述の任意の適切な組合せ。コンピュータ可読記憶媒体は、本明細書で使用される場合、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を介して伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または電線を介して伝送される電気的信号などの一過性の信号そのものであると解釈されてはならない。
【0010】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から個別のコンピューティング/処理デバイスに、あるいは、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはその組合せなどのネットワークを介して、外部のコンピュータまたは外部の記憶デバイスに、ダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組合せを含んでもよい。それぞれのコンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、個別のコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
【0011】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための設定データ、あるいはSmalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語などの手続き型プログラミング言語もしくは類似するプログラミング言語、を含む1つまたは複数のプログラミング言語の任意の組合せで記述された、ソース・コードまたはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、すべてユーザのコンピュータ上で、一部はユーザのコンピュータ上でスタンドアロンのソフトウェア・パッケージとして、一部はユーザのコンピュータ上で一部はリモート・コンピュータ上で、またはすべてリモート・コンピュータ上もしくはサーバ上で、実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続することができ、または接続は(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部のコンピュータに対してなされてもよい。いくつかの実施形態において、例えば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行して電子回路を個別化することができる。
【0012】
本発明の態様は、本明細書では、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照しながら説明される。フローチャート図またはブロック図あるいはその両方のそれぞれのブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実装され得ることが理解されよう。
【0013】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/作用を実装する手段を作成すべく、コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて機械を作るものであってよい。これらのコンピュータ可読プログラム命令はまた、命令を記憶して有するコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実装するための命令を含む製造物品を備えるべく、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに特定のやり方で機能するように指示するものであってもよい。
【0014】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイスで実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実装するように、コンピュータ実装処理を作るべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作可能なステップを実行させるものであってもよい。
【0015】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態による、システム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能性、および動作を図示している。この点において、フローチャートまたはブロック図のそれぞれのブロックは、指定される論理機能を実装するための1つまたは複数の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表現することができる。一部の代替的な実装形態において、ブロックで示される機能は図で示した順とは異なって発生してもよい。例えば、連続して示される2つのブロックは、実際には1つのステップとして遂行されてもよく、同時に、実質的に同時に、部分的もしくは全体的に時間的に重なるやり方で実行されてもよく、またはブロックは関与する機能性によっては、時に逆の順で実行されてもよい。ブロック図またはフローチャート図あるいはその両方のそれぞれのブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せは、指定される機能もしくは作用を実施する、または特殊目的ハードウェアとコンピュータ命令との組合せを実行する、特殊目的ハードウェア・ベースのシステムによって実装され得ることにも留意されたい。
【0016】
次に図を参照すると、特に
図1~
図3を参照すると、例示的な実施形態が実施され得るデータ処理環境の図が提供されている。
図1~
図3はあくまで例として意図されているものであり、異なる実施形態が実施され得る環境に関して、いかなる限定も断言するものでも示唆するものでもないことを理解されたい。図示された環境に対して多くの修正が加えられてもよい。
【0017】
図1は、例示的な実施形態が実施され得るデータ処理システムのネットワークの図表現を図示する。ネットワーク・データ処理システム100は、コンピュータ、データ処理システム、および例示の実施形態が実施され得る他のデバイスのネットワークである。ネットワーク・データ処理システム100は、ネットワーク・データ処理システム100内のコンピュータ、データ処理システム、および他のともに接続されたデバイス間の通信リンクを提供するために使用される媒体であるネットワーク102を含む。ネットワーク102は、例えば、有線通信リンク、無線通信リンク、光ファイバ・ケーブル、および同様のものなどの接続を含み得る。
【0018】
図示された例では、サーバ104とサーバ106とが、ストレージ108とともに、ネットワーク102に接続している。サーバ104およびサーバ106は、例えば、ネットワーク102への高速接続を有するサーバ・コンピュータであってもよい。また、サーバ104およびサーバ106は、1つまたは複数のデータ・センタにおけるサーバのクラスタを各々表し得る。あるいは、サーバ104およびサーバ106は、1つまたは複数のクラウド環境における複数のコンピューティング・ノードを各々表し得る
【0019】
加えて、サーバ104およびサーバ106は、例えば、イベント監視サービス、トランザクション・サービス、金融サービス、バンキング・サービス、政府サービス、教育サービス、予約サービス、データ・サービス、または同様のものなどのサービスのセットを、クライアント・デバイスのユーザに提供する。さらに、サーバ104およびサーバ106は、サーバ104およびサーバ106によって管理されるページセットにまたがって、サーバ104およびサーバ106によって提供されるサービスのアプリケーション・ワークロードに対応するメッセージのインテリジェント・ストレージを実行する。例えば、サーバ104およびサーバ106は、アプリケーション・ワークロードに対応するメッセージについて、事前定義ターゲット・ページセットの未使用ページの数が事前定義最低未使用ページ閾値レベルに達したことに応答して、そのメッセージを、利用可能な未使用ページを有するスピルオーバー・ページセットに記憶する。事前定義最低未使用ページ閾値レベルは、ページセット内の、例えば、500、1000、1500、2000、2500、または同様の数の未使用ページであってもよい。
【0020】
クライアント110、クライアント112、およびクライアント114はまた、ネットワーク102に接続している。クライアント110、112、および114は、サーバ104およびサーバ106のクライアント・デバイスである。この例では、クライアント110、112、および114は、ネットワーク102への有線通信リンクを伴うデスクトップまたはパーソナル・コンピュータとして示されている。ただし、クライアント110、112、および114は、あくまで例であり、例えば、ネットワーク102への有線または無線通信リンクを有する、ネットワーク・コンピュータ、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、スマート・フォン、スマート・ウォッチ、スマート・テレビジョン、スマート車両、スマート家電製品、ゲーム機器、キオスク端末、および同様のものなど、他のタイプのデータ処理システムを表し得ることを留意されたい。クライアント110、112、および114のユーザは、クライアント110、112、および114を利用して、サーバ104およびサーバ106によって提供されるサービスのセットにアクセスし、利用することができる。クライアント110、112、および114は、サービスのセットのアプリケーションに対応するメッセージを、サーバ104およびサーバ106に対して送る。
【0021】
サーバ104およびサーバ106は、サービスのセットのアプリケーションに対応するメッセージを、サーバ104およびサーバ106またはストレージ108あるいはその両方に位置するページセットに記憶する。ストレージ108は、構造化形式または非構造化形式の任意のタイプのデータを記憶することができるネットワーク記憶デバイスである。加えて、ストレージ108は、複数のネットワーク記憶デバイスを表し得る。さらに、ストレージ108は、異なるサービス、各それぞれのページセットの識別子、ページセット・リスト、および同様のものに関連付けられた異なるアプリケーション・ワークロードに対応する複数の異なるページセットを記憶し得る。さらに、ストレージ108は、ユーザ名、パスワード、および、例えば、システム管理者およびクライアント・デバイスのユーザに関連付けられた同様のものを含み得る認証データまたは機密データなど、他のタイプのデータを記憶することができる。
【0022】
加えて、ネットワーク・データ処理システム100は、任意の数の追加のサーバ、クライアント、記憶デバイス、および図示しない他のデバイスを含み得ることを留意されたい。ネットワーク・データ処理システム100に位置するプログラム・コードは、コンピュータ可読記憶媒体またはコンピュータ可読記憶媒体のセット上に記憶され、使用のために、コンピュータまたは他のデータ処理デバイスにダウンロードすることができる。例えば、プログラム・コードは、サーバ104上のコンピュータ可読記憶媒体に記憶され、クライアント110上での使用のためにネットワーク102を介してクライアント110にダウンロードされてもよい。
【0023】
図示された例では、ネットワーク・データ処理システム100は、例えば、インターネット、イントラネット、ワイド・エリア・ネットワーク、ローカル・エリア・ネットワーク、電気通信ネットワーク、またはそれらの任意の組合せなど、いくつかの異なるタイプの通信ネットワークとして実施されてもよい。
図1は、あくまで例として意図されたものであり、異なる例示的な実施形態に対する構造上の限定を意図したものではない。
【0024】
本明細書で使用される場合、要素を参照して使用される場合、「いくつかの」は要素のうちの1つまたは複数を意味する。例えば、「いくつかの異なるタイプの通信ネットワーク」とは、1つまたは複数の異なるタイプの通信ネットワークのことである。同様に、「~のセット」は、要素を参照して使用される場合、その要素のうちの1つまたは複数を意味する。
【0025】
さらに、「~のうちの少なくとも1つ」という用語は、要素のリストに関して使用される場合、列挙された要素のうちの1つまたは複数の異なる組合せを意味し、リスト中の各要素のうちの1つのみが必要とされてもよい。換言すれば、「~のうちの少なくとも1つ」は、要素の任意の組合せおよび任意の数の要素がリストから使用され得るが、リスト中の要素のすべてが必要とされるわけではないことを意味する。要素は、特定の物体、物、または分類でもよい。
【0026】
例えば、限定されないが、「要素A、要素B、または要素Cのうちの少なくとも1つ」は、要素A、要素Aおよび要素B、または要素Bを含み得る。この例はまた、要素A、要素B、および要素C、または要素Bおよび要素Cを含み得る。当然ながら、これらの要素の任意の組合せも存在し得る。いくつかの例示的な例では、「~のうちの少なくとも1つ」は、例えば、限定されないが、2個の要素A、1個の要素B、および10個の要素C、4個の要素B、および7個の要素C、または他の適切な組合せであってもよい。
【0027】
図2を参照すると、例示的な実施形態による、データ処理システムの図が図示されている。データ処理システム200は、
図1のサーバ104など、例示的な実施形態のインテリジェント・メッセージ・ストレージ・プロセスを実施するコンピュータ可読プログラム・コードまたは命令が位置し得るコンピュータの一例である。この例では、データ処理システム200は、通信ファブリック202を含み、通信ファブリック202は、プロセッサ・ユニット204、メモリ206、持続的ストレージ208、通信ユニット210、入出力(I/O)ユニット212、およびディスプレイ214の間に通信を提供する。
【0028】
プロセッサ・ユニット204は、メモリ206にロードされ得るソフトウェア・アプリケーションおよびプログラムための命令を実行する役割を果たす。プロセッサ・ユニット204は、特定の実施態様に応じて、1つまたは複数のハードウェア・プロセッサ・デバイスのセットでもよく、マルチコア・プロセッサでもよい。
【0029】
メモリ206および持続的ストレージ208は、記憶デバイス216の例である。本明細書で使用される場合、コンピュータ可読記憶デバイスまたはコンピュータ可読記憶媒体は、例えば、限定されないが、データ、関数形態のコンピュータ可読プログラム・コード、または他の適切な情報あるいはそれらの組合せなどの情報を、一時的ベースまたは持続的ベースのいずれかで記憶できる任意のハードウェアである。さらに、コンピュータ可読記憶デバイスまたはコンピュータ可読記憶媒体は、一時的信号など、伝搬媒体を除く。さらに、コンピュータ可読記憶デバイスまたはコンピュータ可読記憶媒体は、コンピュータ可読記憶デバイスのセットまたはコンピュータ可読記憶媒体のセットを表し得る。これらの例において、メモリ206は、例えば、ランダム・アクセス・メモリ(RAM)、またはフラッシュ・メモリなどの任意の他の適切な揮発性もしくは非揮発性記憶デバイスでもよい。持続的ストレージ208は、特定の実施態様に応じて、様々な形態を取ることができる。持続的ストレージ208は、1つまたは複数のデバイスを含むことができる。例えば、持続的ストレージ208は、ディスク・ドライブ、ソリッド・ステート・ドライブ、書き換え可能光ディスク、書き換え可能磁気テープ、または上記の何らかの組合せであってもよい。持続的ストレージ208によって使用される媒体は、取り外し可能でもよい。例えば、取り外し可能なハード・ドライブが、持続的ストレージ208のために使用されてもよい。
【0030】
この例では、持続的ストレージ208は、ページセット・マネージャ218を記憶する。ただし、ページセット・マネージャ218が持続的ストレージ208に存在するとして図示されていても、代替的な例示的実施形態では、ページセット・マネージャ218は、データ処理システム200の別個のコンポーネントであり得ることに留意されたい。例えば、ページセット・マネージャ218は、通信ファブリック202に結合されたハードウェア・コンポーネント、またはハードウェア・コンポーネントおよびソフトウェア・コンポーネントの組合せであってもよい。別の代替的な例示的実施形態では、ページセット・マネージャ218の構成要素の第1のセットは、データ処理システム200に位置してもよく、ページセット・マネージャ218の構成要素の第2のセットは、例えば、
図1のサーバ106などの第2のデータ処理システムに位置してもよい。
【0031】
ページセット・マネージャ218は、データ処理システム200によって提供されるサービスのアプリケーション・ワークロードに対応するメッセージを、ページセットにまたがってインテリジェントに記憶するプロセスを制御する。ページセット・マネージャ218は、アプリケーション・ワークロードに対応するメッセージのための事前定義ターゲット・ページセットの未使用ページの数が事前定義最低未使用ページ閾値レベルに達したときを検出するために、各それぞれのページセットのステータスを監視する。監視に基づいて、特定の事前定義ターゲット・ページセットの未使用ページの数が、事前定義最低未使用ページ閾値レベルに達したことを検出したことに応答して、ページセット・マネージャ218は、事前定義最低未使用ページ閾値レベルに達したその特定の事前定義ターゲット・ページセットに対応するメッセージの記憶先として、利用可能なスピルオーバー・ページセットのリストに列挙されている第1のスピルオーバー・ページセットを選択する。その後、ページセット・マネージャ218が、その特定の事前定義ターゲット・ページセットに対応するメッセージを、そのメッセージを記憶するために利用可能な未使用ページを有する選択されたスピルオーバー・ページセットに記憶する。
【0032】
結果として、データ処理システム200は、データ処理システム200内のページセット・マネージャ218がページセットにおけるメッセージのインテリジェント・ストレージを可能にする特殊目的コンピュータ・システムとして動作する。特に、ページセット・マネージャ218は、データ処理システム200を、ページセット・マネージャ218を有さない現在利用可能な汎用コンピュータ・システムと比較して特殊目的のコンピュータ・システムに変換する。
【0033】
通信ユニット210は、
図1のネットワーク102など、ネットワークを介する他のコンピュータ、データ処理システム、およびデバイスとの通信を実現する。通信ユニット210は、物理通信リンクおよび無線通信リンクの両方の使用を通して通信を提供し得る。物理通信リンクは、ワイヤ、ケーブル、ユニバーサル・シリアル・バス、もしくは、データ処理システム200に対して物理通信リンクを確立するための任意の他の物理技術を利用することができる。無線通信リンクは、短波、高周波数、超高周波数、マイクロ波、ワイヤレス・フィデリティ(WiFi)、Bluetooth(R)技術、汎欧州デジタル移動電話方式(GSM)、符号分割多重アクセス(CDMA)、第2世代(2G)、第3世代(3G)、第4世代(4G)、4Gロング・ターム・エボリューション(LTE)、LTEアドバンスト、第5世代(5G)、またはデータ処理システム200に対する無線通信リンクを確立するための任意の他の無線通信技術または規格を利用することができる。
【0034】
入出力ユニット212は、データ処理システム200に接続され得る他のデバイスとのデータの入出力を可能にする。例えば、入出力ユニット212は、キーパッド、キーボード、マウス、マイクロフォン、または他の適切な入力デバイス、あるいはその組合せを通して、ユーザ入力のための接続を提供することができる。ディスプレイ214は、ユーザに対して情報を表示する機構を提供し、ユーザが、例えば、ユーザ・インターフェースもしくは入力データを通して、スクリーン上で選択すること可能にするタッチスクリーン機能を含み得る。
【0035】
オペレーティング・システム、アプリケーション、またはプログラム、あるいはその組合せに対する命令は、通信ファブリック202を通してプロセッサ・ユニット204と通信する記憶デバイス216内に位置し得る。この説明上の例では、命令は、持続的ストレージ208上で関数形態を有する。これらの命令は、プロセッサ・ユニット204による実行のために、メモリ206にロードされ得る。異なる実施形態の処理は、メモリ206などのメモリ内に位置し得るコンピュータ実施命令を使用して、プロセッサ・ユニット204によって実行され得る。これらのプログラム命令は、プロセッサ・ユニット204においてプロセッサによって読み出されて実行され得る、プログラム・コード、コンピュータ使用可能プログラム・コード、またはコンピュータ可読プログラム・コードと呼ばれる。プログラム命令は、異なる実施形態において、メモリ206もしくは持続的ストレージ208など、異なる物理的コンピュータ可読記憶デバイス上で具現化され得る。
【0036】
プログラム・コード220は、選択的に取り外し可能なコンピュータ可読媒体222上に関数形態で位置しており、プロセッサ・ユニット204による実行のために、データ処理システム200にロードまたは転送され得る。プログラム・コード220およびコンピュータ可読媒体222は、コンピュータ・プログラム製品224を形成する。一例では、コンピュータ可読媒体222は、コンピュータ可読記憶媒体226もしくはコンピュータ可読信号媒体228であり得る。
【0037】
これらの説明上の例では、コンピュータ可読記憶媒体226は、プログラム・コード220を伝播もしくは伝送する媒体ではなく、プログラム・コード220を記憶するために使用される物理的または有形の記憶デバイスである。コンピュータ可読記憶媒体226は、例えば、持続的ストレージ208の一部であるハード・ドライブなどの記憶デバイスへの転送のために、持続的ストレージ208の一部であるドライブもしくは他のデバイスに挿入または配置された光学的または磁気的なディスクを含み得る。コンピュータ可読記憶媒体226はまた、データ処理システム200に接続されたハード・ドライブ、サム・ドライブ、もしくはフラッシュ・メモリなどの持続的ストレージの形態をとり得る。
【0038】
あるいは、プログラム・コード220は、コンピュータ可読信号媒体228を使用して、データ処理システム200に転送されてもよい。コンピュータ可読信号媒体228は、例えば、プログラム・コード220を含む伝播されたデータ信号であってもよい。例えば、コンピュータ可読信号媒体228は、電磁信号、光学信号、または任意の他の適切なタイプの信号であってもよい。これらの信号は、無線通信リンク、光ファイバ・ケーブル、同軸ケーブル、ワイヤ、または任意の他の適切なタイプの通信リンクなど、通信リンクを介して伝送される。
【0039】
さらに、本明細書で使用される場合、「コンピュータ可読媒体222」は、単数または複数であり得る。例えば、プログラム・コード220は、単一の記憶デバイスもしくはシステムの形態で、コンピュータ可読媒体222に位置することができる。別の例では、プログラム・コード220は、複数のデータ処理システムに分散されているコンピュータ可読媒体222内に位置することができる。換言すれば、プログラム・コード220内のいくつかの命令は、1つのデータ処理システム内に位置することができ、一方、プログラム・コード220内の他の命令は、1つまたは複数の他のデータ処理システムに位置することができる。例えば、プログラム・コード220の一部分は、サーバ・コンピュータ内のコンピュータ可読媒体222に位置し得、一方、プログラム・コード220の別の部分は、クライアント・コンピュータのセット内に位置するコンピュータ可読媒体222に位置し得る。
【0040】
データ処理システム200のために図示された異なる構成要素は、異なる実施形態が実施され得るやり方に対して構造上の制限を付与することを意図するものではない。いくつかの説明上の例では、構成要素のうちの1つまたは複数が、別の構成要素に組み込まれてもよく、そうでなければ、別の構成要素の一部分を形成してもよい。例えば、メモリ206、またはその一部分が、いくつかの説明上の例において、プロセッサ・ユニット204に組み込まれ得る。異なる例示的な実施形態は、データ処理システム200のために例示された構成要素に加えて、またはその代わりとして、構成要素を含むデータ処理システムにおいて実施され得る。
図2に示した他の構成要素は、図示した説明上の例から変更することができる。異なる実施形態が、プログラム・コード220を実行することができる任意のハードウェア・デバイスもしくはシステムを使用して実施され得る。
【0041】
別の例では、バス・システムは、通信ファブリック202を実施するために使用され得、システム・バスまたは入力/出力バスなど、1つまたは複数のバスで構成され得る。当然ながら、このバス・システムは、バス・システムに取り付けられた異なるコンポーネントまたはデバイス間でのデータの転送を実現する、任意の適切なタイプのアーキテクチャを使用して実施され得る。
【0042】
現在、ページセットは、「スケールアウト」のための追加容量を有するが、それは、ページセット内の既存の空き領域(例えば、未使用ページ)を使用するほどインテリジェントではない。現行のキュー・マネージャは、バッファを使用して、メッセージ・キャッシングを実行し、更新したページを、バッファから、例えば、ページセット、ディスク、またはテープなど、他のメッセージ・ストレージへ書き込むことができる。これらの現行のキュー・マネージャは、メッセージを書き込んだり、メッセージを取得したりするのが速いバッファから恩恵を受けるが、より大きな記憶容量を可能にするページセットからも恩恵を受ける。しかしながら、例示的な実施形態は、スケールアウトのページセット・プロセスを提供することによって、ページセットの記憶容量を拡張し、一方で、既存のバッファを保護し、それによって多くのメッセージの突然の到着を受けるキューが、システム・キューまたは高優先度アプリケーション・キューなどの「重要」または「優先的」なキューの性能に悪影響を与えないようにする。ボトルネックは、メッセージを取得する側がメッセージを置く側とは遠く離れていたり、メッセージを置く側に障害が生じていないときにメッセージを取得する側に障害が生じたりすることである。
【0043】
例示的な実施形態は、アプリケーション・ワークロードに対応する事前定義ターゲット・ページセットが満杯になったときに、メッセージの記憶を継続し、アプリケーションがクラッシュするのを防ぐ。例示的な実施形態は、高性能メッセージ・ストレージを組み入れ、多重レベルのメッセージ・ストレージにまたがってインテリジェントにスケールアウトすることができる。例示的な実施形態は、ページセット・マネージャを利用して、ページセットが事前定義最低未使用ページ閾値レベルに達したときを検出し、ページセット・マネージャが、満杯またはほぼ満杯のページセットに対するメッセージの記憶を継続するために特定のページセットを選択できる利用可能な未使用ページを有するページセットのリストを保持し、選択されたページセットに対応する拡張ストレージ・クラスを、キューに割り当てる。各ページセットは、スケールアウト(例えば、スピルオーバー)するために、その特定のページセットが、事前定義最低未使用ページ閾値レベルに達した他のページセットのメッセージ記憶先として使用可能であるかどうかを示すために、ページセット・マネージャが設定できるビットを有する。
【0044】
例示的な実施形態はまた、メッセージ・ストレージの論理単位として、多重ドウェル・キューを利用する。多重ドウェル・キューにおける各キューは、それ自体の事前定義ストレージ・クラスと拡張ストレージ・クラス(例えば、多次元ストレージ・クラス)を有し、この例示的な実施形態は、その特定のキューの記憶先のメッセージ・ストレージが事前定義最高メッセージ記憶閾値レベルに達すると、自動的に更新する。各ストレージ・クラスは、メッセージを記憶する1つのページセットにマッピングする。換言すれば、キューは、ストレージ・クラスを参照し、ストレージ・クラスは、ページセットを参照し、ページセットは、メッセージを記憶する。
【0045】
各キューは、例示的な実施形態のページセット・マネージャが、その特定のキューが他のページセットにスケールアウトすることが可能であるかどうかを示すために設定できるビットを有する。ページセット・マネージャは、スピルオーバー・ページセットを利用して、利用可能な記憶領域(例えば、スピルオーバー・ページセットの未使用ページ)を利用する。各スピルオーバー・ページセットは、ページセット全体に対応するメッセージが複数のスピルオーバー・ページセットにまたがって記憶されているときに、メッセージを読み出すか、またはメッセージをバッファに戻すために、スピルオーバー・ページセットの識別子を含む、メッセージ場所のインデックスを含む。ページセット・マネージャは、そのインデックスを利用して、メッセージが多くのスピルオーバー・ページセットのうちの1つに記憶され得るときに、特定のメッセージの位置を特定し、読み出して、バッファに戻す。
【0046】
例示的な実施形態は、最適な応答時間を必要とする高優先度キューが、バッファのプール領域の再利用が望まれていないときに容量が重要であるキューから分離されることを確実にするために、ユーザの制御下でのバッファ・プールの割り当てまたは選択を維持できることに留意されたい。さらに、例示的な実施形態は、必要に応じて、「実ストレージ」を利用することができる。例えば、バッファ・スケールアウト・モードに入ると、例示的な実施形態のページセット・マネージャは、オペレーティング・システムに問い合わせて、未使用の実ストレージの利用可能な量を判定し、スケールアウト・バッファに対して、未使用の実ストレージの何らかの事前定義百分率を維持しながら、その未使用の実ストレージの量を動的に割り当てることができる。次いで、例示的な実施形態は、実ストレージが不要になったときに、その割り当てられた実ストレージの量を解放することができる。結果として、例示的な実施形態は、既存のバッファ・プールの使用率および多重レベルのメッセージ・ストレージに影響を与えることなく、ページングを引き起こす可能性がある、実ストレージを盗むことによるアプリケーションの破損を発生させずに、バッファ・プールからの性能増加を可能にする。
【0047】
例示的な実施形態のページセット・マネージャは、サービス・アプリケーションの過去のピーク・ワークロードに応じて、スピルオーバー・ページセットに動的に拡張し、次いで、ピーク・ワークロード期間が終了したときに、キューを元のターゲット・ページに復帰することができる。各アプリケーション・ワークロードは、定義されたページセット限界を有する。ページセット・マネージャは、メッセージ・ストレージをスピルオーバー・ページセットに拡張することが可能にされるページセットのスケールアウト・ビットを設定する。このように、ページセットに対してスケールアウト・ビットを設定することによる例示的な実施形態は、元の事前定義ターゲット・ページセットでのメッセージ・ストレージの不足によって引き起こされる停止なしに、アプリケーション・ワークロードの実行を維持することができる。
【0048】
結果として、ページセットおよびバッファ・プールの数が事前定義されていても、例示的な実施形態は、メッセージ・ストレージを、利用可能な未使用ページを有するスピルオーバー・ページセットに自動的に拡張して、アプリケーション・ワークロードに対応する元の事前定義ターゲット・ページセットが、定義された最低未使用ページ閾値レベルに達したときに、そのアプリケーション・ワークロードの実行を維持することができる。その後、例示的な実施形態は、スピルオーバー・ページセット上の拡張メッセージ・ストレージが不要になったときに、アプリケーション・ワークロードに対応する元のターゲット・ページセットに自動的に戻すことができる(例えば、ピーク・ワークロード期間が終了した後、元の事前定義ターゲット・ページセットにおける未使用ページの数が、定義された百分率量だけ、事前定義未使用ページ閾値レベルよりも大きい、など)。このように、例示的な実施形態は、複数のレベルのメッセージ・ストレージ(例えば、性能についてはバッファ・プール、容量についてはページセット)にまたがったスケーリングを実現し、記憶容量に関する記憶効率のバランスをとる。
【0049】
したがって、例示的な実施形態は、アプリケーション・ワークロードのクラッシュを防止するために、ページセットにおける記憶容量の利用に関する技術的な問題を克服する1つまたは複数の技術的解決策を提供する。結果として、これらの1つまたは複数の技術的解決策は、データ・ストレージの分野において、技術的効果および実践的適用を提供する。
【0050】
次に
図3を参照すると、例示的な実施形態による、ページセット管理システムの一例を示す図が図示されている。ページセット管理システム300は、
図1のネットワーク・データ処理システム100など、データ処理システムのネットワークにおいて実施され得る。ページセット管理システム300は、ページセットにおけるアプリケーション・ワークロードに対応するメッセージのインテリジェント・ストレージのためのハードウェア・コンポーネントおよびソフトウェア・コンポーネントからなるシステムである。
【0051】
この例では、ページセット管理システム300は、バッファ・プール302と、ページセット304とが含まれる。バッファ・プール302およびページセット304は、例えば、
図1のサーバ104または
図2のデータ処理システム200などのコンピュータにおいて実施され得る。バッファ・プール302は、例えば、
図2のメモリ206などのメモリにおいて実施され得る。ページセット304は、例えば、
図2の持続的ストレージ208などの持続的ストレージにおいて実施され得る。
【0052】
バッファ・プール302は、バッファ・プール306などの複数の個別バッファ・プールを含む。バッファ・プール306は、メッセージ312がページセット304に記憶される前に、メッセージ312を、バッファ308またはバッファ310などのバッファに一時的に記憶する。メッセージ312は、例えば、
図1のクライアント110、112、および114などのクライアント・デバイスから、例えば、
図1のネットワーク102などのネットワークを介して受信される。メッセージ312は、コンピュータによって提供されるサービスのセットに関連付けられたアプリケーション・ワークロードのセットに対応する。メッセージは、所与のサービスの特定のアプリケーション・ワークロードに対応する、例えば、メッセージ記述子、アプリケーション・データ、および同様のものを含み得る。各アプリケーション・ワークロードは、メッセージ記憶先として、事前定義ターゲット・ページセットを有する。
【0053】
バッファ308およびバッファ310は、例えば4キロバイトのバッファであり得る。バッファ・プール302の各バッファ・プールは、ページセット304の、ページセットX314、ページセットY316、またはページセットZ318などの特定のページセットに関連付けられている(例えば、マッピングされている)。あるいは、バッファ・プールのセットは、単一ページセットにマッピングされ得る。
【0054】
例えば、
図2のページセット・マネージャ218などのページセット・マネージャは、事前定義ターゲット・ページセット(例えば、ページセットY316)に本来マッピングされたメッセージのメッセージ記憶先としてスピルオーバー・ページセット(例えば、ページセットZ318)を利用して、元の事前定義ターゲット・ページセットが事前定義最低未使用ページ閾値レベルに達するか、またはそれを下回り、かつそのスケールアウト・ビット・セットを有するときまで、スケールアウトする。ページセット・スケールアウト・ビットは、設定されると、その特定のページセットが、メッセージ・ストレージを、利用可能な未使用ページを有するスピルオーバー・ページセットまでスケールアウトまたは拡張することが可能になる。
【0055】
例示的な実施形態のページセット・マネージャは、ページセット304について、例えば、pageset.page.recordなどのアドレス指定規則を利用することができる。現時点で、単一のキューの場合、アドレス指定規則のページセット部分は同じままである。しかし、特定のアプリケーション・ワークロードに対応する元の事前定義ターゲット・ページセットに十分な記憶領域がない場合、ページセット・マネージャは、単一のキュー上のメッセージに対して、または単一のメッセージに対して、異なるアドレス指定規則のページセット部分を作成できる。ページセット・マネージャは、必要に応じて(例えば、元の事前定義ターゲット・ページセットが、事前定義最低未使用ページ閾値レベルに達したときなど)「pageset.page.record」アドレス指定規則のページセット部分を自動的に更新する。
【0056】
このように、例示的な実施形態は、多数のメッセージの突然の到着が、例えば、システム・キューまたは高優先度アプリケーション・キューなどの重要なキューまたは高優先度キューの性能に悪影響を及ぼさないことを確実にする。例示的な実施形態は、可能な限り最短の応答時間を必要とする高優先度キューが、容量が必要とされるキューから分離されることを確実にするように、ユーザの制御下で、バッファ・プールの割り当てまたは選択を維持するため、バッファ・プール領域を再利用しない。
【0057】
図4を参照すると、例示的な実施形態による、ページセット管理プロセスの一例を示す図が図示されている。ページセット管理プロセス400は、例えば、
図1のサーバ104または
図2のデータ処理システム200などのコンピュータにおいて実施され得る。
【0058】
この例では、ページセット管理プロセス400は、ページセット・マネージャ402と、バッファ・プール404と、ページセット406とを含む。ページセット・マネージャ402は、例えば、
図2のページセット・マネージャ218であってもよい。バッファ・プール404およびページセット406は、例えば、
図3のバッファ・プール306およびページセットX314であってもよい。ただし、ページセット管理プロセス400は、一例としてのみ意図されており、例示的な実施形態に対する限定として意図されるものではないことに留意されたい。換言すれば、ページセット管理プロセス400は、任意の数のページセット・マネージャ、バッファ・プール、ページセット、および他のコンポーネントを含み得る。
【0059】
コンピュータは、例えば、
図1のクライアント110などのクライアント・デバイスなどから、メッセージ408を受信する。コンピュータは、ページセット406にメッセージ408をロードする前に、バッファ・プール404に一時的にメッセージを置く。ページセット406は、事前定義バッファ・プール識別子410と、スケールアウト・ビット412とを含む。事前定義バッファ・プール識別子410は、バッファ・プール404に対応する一意の識別子を表す。換言すれば、バッファ・プール404は、ページセット406のための事前定義バッファ・プールである。ページセット406は、メッセージ408のための元の事前定義ターゲット・ページセットである。スケールアウト・ビット412は、ページセット406の未使用ページの数が、事前定義最低未使用ページ閾値レベルに達した場合に、ページセット406が、スピルオーバー・ページセットにスケールアウトすることが可能かどうかを示す。
【0060】
414で、ページセット・マネージャ402は、ページセット406の未使用ページの数が事前定義最低未使用ページ閾値レベルに達したことに応答して、スケールアウト・ビット412がページセット406において設定されているかどうかを検出するために、スケールアウト・プロセスを実行する。ページセット・マネージャ402が、スケールアウト・ビット412がページセット406において設定されていることを検出した場合、ページセット・マネージャ402は、ページセット406のスケールアウト・メッセージ記憶先として、未使用ページを有するスピルオーバー・ページセットについて、ページセット・リスト416を探索する。
【0061】
例えば、418で、元のターゲットである事前定義ターゲット・ページセットに対応するメッセージ408が到着する。420で、ページセット・マネージャ402は、元の事前定義ターゲット・ページセットについて、事前定義最低未使用ページ閾値レベルに達したかどうかに関して判定する。ページセット・マネージャ402が、元の事前定義ターゲット・ページセットについて、事前定義最低未使用ページ閾値レベルに達していなかったと判定した場合、ページセット・マネージャ402は、事前定義ストレージ・クラス424を介して、元の事前定義ターゲット・ページセット422(例えば、ページセット406)にメッセージ408を記憶する。ページセット・マネージャ402が、元の事前定義ターゲット・ページセットについて、最低未使用ページ閾値レベルに達したと判定したした場合、426で、ページセット・マネージャ402は、ページセット・リスト416の先頭の第1のスピルオーバー・ページセットを選択する。加えて、428で、ページセット・マネージャ402は、選択されたスピルオーバー・ページセットの拡張ストレージ・クラス430を、多重ドウェル・キュー434におけるキュー432に割り当てる。
【0062】
キューは、メッセージ・ストレージの論理単位である。ページセット・マネージャ402は、そのキューを開いて、そのキューにメッセージを置く。ページセット・マネージャ402は、どのキューにメッセージを置いたかを知っている。キューは、ストレージ・クラスを介して、ページセットにマッピングされている。換言すれば、ストレージ・クラスは、どのページセットがどのキューによって使用されるかを制御する。ストレージ・クラスは、1つまたは複数のキューをページセットにマッピングする。これは、そのキューに対するメッセージは、そのページセットに記憶されることを意味する。ストレージ・クラスによって、ユーザは、アプリケーション・ワークロード管理のために、メッセージがどこに記憶されているかを制御することができる。
【0063】
この例では、キュー432のスケールアウト・ビットが設定されているため、キュー432は、他のページセットにスケールアウトすることが可能である。結果として、ページセット・マネージャ402は、拡張ストレージ・クラス430を介して、選択されたスピルオーバー・ページセット436にメッセージ408を記憶する。選択されたスピルオーバー・ページセット436は、インデックス438を含む。インデックス438は、例えば、ページセットの識別子を含む、メッセージ場所のインデックスである。ページセット・マネージャ402は、満杯またはほぼ満杯のページセット406に対応するメッセージが複数のスピルオーバー・ページセットにまたがって記憶されるときに、インデックス438を利用してメッセージを読み出してバッファに戻す。
【0064】
図5を参照すると、例示的な実施形態による、ページセット・リストの一例を示す図が図示されている。ページセット・リスト500は、例えば、
図4のページセット・マネージャ402などのページセット・マネージャによって実施され得る。ページセット・リスト500は、例えば、
図4のページセット・リスト416であり得る。
【0065】
この例では、ページセット・リスト500は、ページセット識別子(ID)502、バッファ・プールID504、ほぼ満杯出現頻度506、最近ほぼ満杯ビットが設定されたか508、総ページ510、未使用ページ512、次のスケールアウト・ページセットへのポインタ514、および割り当てられたストレージ・クラス516のための列を含む。ページセットID502の列は、ページセット・マネージャによって管理される各それぞれのページセットの一意の識別子を提供する。バッファ・プールID504の列は、対応する各ページセットの事前定義バッファ・プールの一意の識別子を提供する。ほぼ満杯の出現頻度506の列は、特定のページセットが満杯(例えば、事前定義最低未使用ページ閾値レベルに達した)に近かった回数の表示を提供する。最近ほぼ満杯ビットが設定されたか508の列は、特定のページセットが最近満杯に近かったことを示すビットが設定されたかどうかを、「はい(Y)」または「いいえ(N)」で示す。総ページ510の列は、各それぞれのページセットのページの総数を示す。未使用ページ512の列は、各それぞれのページセットの未使用ページの数を示す。次のスケールアウト・ページセットへのポインタ514の列は、各それぞれのページセットについての次のスピルオーバー・ページセットへのポインタを提供する。割り当てられたストレージ・クラス516の列は、どのストレージ・クラスが、各それぞれのページセットに割り当てられているかを示す。
【0066】
特定のページセットの未使用ページの数が、未使用ページ閾値レベルの定義された最低数に達すると、ページセット・マネージャは、その閾値レベルに達した元の事前定義ターゲット・ページセットに対応するメッセージの記憶先として、別のページセット(例えば、スピルオーバー・ページセット)を識別するために、ページセット・リスト500を探索する。多数のメッセージの突然の流入を受信するキューが、例えば、システム・キューまたは高優先度アプリケーション・キューなどの高優先度キューの性能に悪影響を与えないように、各ページセットは、特定のページセットが、スケールアウトするために他のページセットのメッセージ記憶先として使用可能であるかどうかを示すために設定可能であるビットを含むことに留意されたい。換言すれば、ページセット・マネージャは、これらの高優先度キューの性能を保護する。さらに、各それぞれのキューは、ページセット・マネージャが、その特定のキューが他のページセットにスケールアウトすることが可能であるかどうかを示すために設定できるビットを含む。換言すれば、このビットは、最適な応答時間を必要とする高優先度キューが、容量がより重要であるキューから分離されることを確実にする。さらに、各それぞれのスピルオーバー・ページセットは、満杯の元の事前定義ターゲット・ページセットに対応するメッセージが複数のスピルオーバー・ページセットにまたがって記憶される場合、それらのメッセージを取得または読み出してバッファに戻すために、ページセット識別子を含む、メッセージ場所のインデックスを含む。このインデックスは、1つのキューの異なるページセットに記憶されている、そのキューのメッセージをリンクし、それによって、メッセージが効率的にバッファに戻してロードされ得る。
【0067】
ページセット・マネージャは、ページセット・リスト500の先頭に列挙されているページセット(例えば、ページセット・リスト500の最初に列挙されたページセットID0を有するページセット)を、事前定義最低未使用ページ閾値レベルに達した元の事前定義ターゲット・ページセットに対応するメッセージの記憶先として選択する。加えて、ページセット・マネージャは、選択されたページセットに対応する拡張ストレージ・クラスを、多重ドウェル・キューの特定のキューに対して割り当てる。その特定のキューに送信されたメッセージは、元の事前定義ターゲット・ページセットがその閾値レベルに達した後、その選択されたページセットに対応する拡張ストレージ・クラスを介して、キュー内の新たに選択されたページセットに記憶される。ページセット・マネージャは、継続的に、もしくは定義された時間間隔に基づいて、各それぞれのページセットの未使用ページ・ステータスをチェックする。加えて、ページセット・マネージャは、各それぞれのページセットの現時点のリアルタイムの使用率を把握しているだけでなく、必要とされたときのより迅速なスピルオーバーのために、各それぞれのページセットの過去の使用率もアプリケーション・ワークロードごとに理解している。
【0068】
ページセット・マネージャは、規則のセットを使用して、ページセット・リスト500を維持する。例えば、ページセット・リスト500は、スピルオーバーに利用可能なページセット(例えば、スケールアウトのビット設定を有するページセット)のみを含む。ページセット・マネージャは、未使用ページの数で、ページセットをソートする。例えば、ページセット・マネージャは、未使用ページの最大数を有するページセットの識別子を、ページセット・リスト500の先頭に置く。さらに、ページセット・マネージャは、ページセットが、事前定義最低未使用ページ閾値レベルに達したとき、その特定のページセットの識別子を、ページセット・リスト500の末尾に移動する。加えて、ページセット・マネージャは、リストの末尾に移動されたその特定のページセットを、最近ほぼ満杯ビットが設定されたか508の列に「Y」として印付けし、また、その特定のページセットがページセット・リスト500の末尾に移動される度に、その特定のページセットについてほぼ満杯出現頻度506の列を、1ずつインクリメントする。ページセット・マネージャはまた、未使用ページの数が、各候補スピルオーバー・ページセットについて同じ場合に、ほぼ満杯出現頻度が506の列に最低数を有するページセットを選択する。さらに、ページセット・マネージャは、ページセット・リスト500内のリアルタイムのデータと、そのページセットに対応する過去の使用率データとを組み合わせることによって、どのページセットを利用するかを判定できる。
【0069】
次に
図6を参照すると、例示的な実施形態による、メッセージのページセット・ストレージを拡張するためのプロセスを示すフローチャートが示されている。
図6に示すプロセスは、例えば、
図1のサーバ104または
図2のデータ処理システム200などのコンピュータにおいて実施され得る。例えば、
図6に示すプロセスは、
図2のページセット・マネージャ218において実施され得る。
【0070】
プロセスは、コンピュータが、サービスのアプリケーション・ワークロードに関連付けられた事前定義ターゲット・ページセットに対応するメッセージを受信したときに開始する(ステップ602)。メッセージの受信に応答して、コンピュータは、ページセット・リストに含まれる情報に基づいて、事前定義ターゲット・ページセット内の未使用ページの数を識別する(ステップ604)。
【0071】
その後、コンピュータは、事前定義ターゲット・ページセット内の未使用ページの数が、事前定義最低未使用ページ閾値レベル以下であるかどうかに関して判定を行う(ステップ606)。コンピュータが、事前定義ターゲット・ページセット内の未使用ページの数が、事前定義最低未使用ページ閾値レベル以下でないと判定した場合、ステップ606で「いいえ」が出力され、コンピュータは、事前定義ターゲット・ページセットに対応する事前定義ストレージ・クラスの事前定義ターゲット・ページセットにメッセージを記憶する(ステップ608)。その後、プロセスはステップ602に戻り、コンピュータは、別のメッセージを受信するために待機する。
【0072】
再びステップ606に戻り、コンピュータが、事前定義ターゲット・ページセット内の未使用ページの数が事前定義最低未使用ページ閾値レベル以下であると判定した場合、ステップ606で「はい」が出力され、コンピュータは、ページセット・リストの先頭からスピルオーバー・ページセットを選択する(ステップ610)。加えて、コンピュータは、選択されたスピルオーバー・ページセットに対応する拡張ストレージ・クラスを、多重ドウェル・キュー内のキューに対して割り当てる(ステップ612)。さらに、コンピュータは、メッセージを、キュー内の拡張ストレージ・クラスを介して、選択されたスピルオーバー・ページセットに記憶する(ステップ614)。その後、プロセスはステップ602に戻り、コンピュータは、別のメッセージを受信するために待機する。
【0073】
次に
図7を参照すると、例示的な実施形態による、ページセットにおけるメッセージのインテリジェント・ストレージのためのプロセスを示すフローチャートが示されている。
図7に示すプロセスは、例えば、
図1のサーバ104または
図2のデータ処理システム200などのコンピュータにおいて実施され得る。例えば、
図7に示すプロセスは、
図2のページセット・マネージャ218において実施され得る。
【0074】
このプロセスは、コンピュータが、コンピュータによって管理される複数のページセットの各それぞれのページセットの未使用ページ・ステータスを監視するときに開始する(ステップ702)。コンピュータは、例えば、連続ベースで、所定の時間間隔ベースで、または要求に応じて、各それぞれのページセットの未使用ページ・ステータスの監視を実行できる。コンピュータは、サービスのアプリケーション・ワークロードに関連付けられた事前定義ターゲット・ページセットが、各それぞれのページセットの未使用ページ・ステータスの監視に基づいて、事前定義最低未使用ページ閾値レベルに達したことを検出する(ステップ704)。
【0075】
コンピュータは、アプリケーション・ワークロードに関連付けられた事前定義ターゲット・ページセットが、事前定義最低未使用ページ閾値レベルに達したと検出したことに応答して、スケールアウト・ビットが事前定義ターゲット・ページセットに対して設定されているかどうかの判定を行う(ステップ706)。コンピュータが、スケールアウト・ビットが事前定義ターゲット・ページセットに対して設定されていないと判定した場合、ステップ706で「いいえ」が出力され、プロセスがステップ712に進む。コンピュータが、スケールアウト・ビットが事前定義ターゲット・ページセットに対して設定されていると判定した場合、ステップ706で「はい」が出力され、コンピュータは、事前定義ターゲット・ページセットが事前定義最低未使用ページ閾値レベルに達したことに応答して、アプリケーション・ワークロードに関連付けられた事前定義ターゲット・ページセットに対応する受信メッセージを記憶するためのスピルオーバー・ページセットを選択する(ステップ708)。
【0076】
さらに、コンピュータは、事前定義ターゲット・ページセットが事前定義最低未使用ページ閾値レベルに達した後に事前定義ターゲット・ページセットのためのメッセージ・ストレージを拡張するように、アプリケーション・ワークロードに関連付けられた事前定義ターゲット・ページセットに対応する受信メッセージについて、メッセージ記憶先として、スピルオーバー・ページセットを利用する(ステップ710)。その後、コンピュータは、各それぞれのページセットの未使用ページ・ステータスの監視に基づいて、アプリケーション・ワークロードに関連付けられた事前定義ターゲット・ページセットの未使用ページの数が、定義された百分率量だけ、事前定義最低未使用ページ閾値レベルよりも大きいことを検出する(ステップ712)。定義された百分率量は、例えば、事前定義ターゲット・ページセットの総ページ数の5%、10%、15%、20%、25%などでもよい。その後、コンピュータは、アプリケーション・ワークロードに関連付けられた事前定義ターゲット・ページセットの未使用ページの数が、定義された百分率量だけ、事前定義最低未使用ページ閾値レベルよりも大きいことを検出したことに応答して、事前定義ターゲット・ページセットを、メッセージ記憶先として利用する(ステップ714)。その後、プロセスはステップ702に戻り、各それぞれのページセットの未使用ページ・ステータスの監視を継続する。
【0077】
このように、本発明の例示的な実施形態は、メッセージのための元の事前定義ターゲット・ページセットの未使用ページの数が事前定義最低未使用ページ閾値レベルに達したときに利用可能な未使用ページを有するスピルオーバー・ページセットにおける、そのメッセージのインテリジェント・ストレージのためのコンピュータ実施方法、コンピュータ・システム、およびコンピュータ・プログラム製品を提供する。本発明の様々な実施形態の説明は、例示の目的で提示されているが、網羅的であることは意図されておらず、開示された実施形態に制限されない。説明した実施形態の範囲および思想から逸脱することなく、当業者には多くの修正形態および変形形態が明らかであろう。本明細書において使用される用語は、実施形態の原理、実際的な適用または市場において見出される技術にまさる技術的改善を最良に説明し、または本明細書において開示される実施形態を当業者が理解することを可能にするように選択された。
【手続補正書】
【提出日】2024-12-24
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
メッセージのインテリジェント・ストレージのためのコンピュータ実施方法であって、
コンピュータによって、事前定義ターゲット・ページセットが事前定義最低未使用ページ閾値レベルに達したことに応答して、アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットに対応する受信メッセージを記憶するために、スピルオーバー・ページセットを選択することと、
前記コンピュータによって、前記事前定義ターゲット・ページセットが前記事前定義最低未使用ページ閾値レベルに達した後に前記事前定義ターゲット・ページセットのためのメッセージ・ストレージを拡張するように、前記アプリケーション・ワークロードに関連付けられた事前定義ターゲット・ページセットに対応する前記受信メッセージについて、メッセージ記憶先として、前記スピルオーバー・ページセットを利用することとを含む、方法。
【請求項2】
前記コンピュータによって、複数のページセット内のそれぞれのページセットの未使用ページ・ステータスを監視することと、
前記コンピュータによって、前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットが、各それぞれのページセットの前記未使用ページ・ステータスの前記監視に基づいて、前記事前定義最低未使用ページ閾値レベルに達したことを検出することとをさらに含む、請求項1に記載の方法。
【請求項3】
前記コンピュータによって、前記事前定義ターゲット・ページセットに対して、スケールアウト・ビットが設定されているかどうかを判定することをさらに含む、請求項1または2に記載の方法。
【請求項4】
前記コンピュータによって、前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットの未使用ページの数が、定義された百分率量だけ、前記事前定義最低未使用ページ閾値レベルよりも大きいことを検出することと、
前記コンピュータによって、前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットの未使用ページの前記数が、前記定義された百分率量だけ、前記事前定義最低未使用ページ閾値レベルよりも大きいことを検出したことに応答して、前記事前定義ターゲット・ページセットを、前記メッセージ記憶先として利用することとをさらに含む、請求項1
または2に記載の方法。
【請求項5】
前記コンピュータによって、サービスの前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットに対応するメッセージを受信することと、
前記コンピュータによって、ページセット・リストに含まれる情報に基づいて、前記事前定義ターゲット・ページセット内の未使用ページの数を識別することとをさらに含む、請求項1
または2に記載の方法。
【請求項6】
前記コンピュータによって、前記事前定義ターゲット・ページセット内の未使用ページの前記数が、前記事前定義最低未使用ページ閾値レベル以下かどうかを判定することと、
前記コンピュータによって、前記事前定義ターゲット・ページセット内の未使用ページの前記数が、前記事前定義最低未使用ページ閾値レベル以下でないことを判定したことに応答して、前記事前定義ターゲット・ページセットに対応する事前定義ストレージ・クラスの前記事前定義ターゲット・ページセットに前記メッセージを記憶することとをさらに含む、請求項5に記載の方法。
【請求項7】
前記コンピュータによって、前記事前定義ターゲット・ページセット内の未使用ページの前記数が、前記事前定義最低未使用ページ閾値レベル以下であることを判定したことに応答して、前記ページセット・リストの先頭から前記スピルオーバー・ページセットを選択することをさらに含む、請求項6に記載の方法。
【請求項8】
前記コンピュータによって、前記スピルオーバー・ページセットに対応する拡張ストレージ・クラスを、多重ドウェル・キュー内のキューに対して割り当てることと、
前記コンピュータによって、前記キュー内の前記拡張ストレージ・クラスを介して前記スピルオーバー・ページセットに前記メッセージを記憶することとをさらに含む、請求項7に記載の方法。
【請求項9】
ページセット全体に対応するメッセージが複数のスピルオーバー・ページセットにまたがって記憶されるとき、前記スピルオーバー・ページセットが、前記メッセージを読み出してバッファに戻すために、前記スピルオーバー・ページセットの識別子を含む、メッセージ場所のインデックスを含む、請求項1
または2に記載の方法。
【請求項10】
キューが、前記キューの事前定義ストレージ・クラスおよび拡張ストレージ・クラスが事前定義最高記憶閾値レベルに達したことに応答して、自動的に更新される、請求項1
または2に記載の方法。
【請求項11】
メッセージのインテリジェント・ストレージのためのコンピュータ・システムであって、
バス・システムと、
前記バス・システムに接続された記憶デバイスであって、前記記憶デバイスが、プログラム命令を記憶する、前記記憶デバイスと、
前記バス・システムに接続されたプロセッサであって、前記プロセッサが、
事前定義ターゲット・ページセットが事前定義最低未使用ページ閾値レベルに達したことに応答して、アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットに対応する受信メッセージを記憶するために、スピルオーバー・ページセットを選択することと、
前記事前定義ターゲット・ページセットが前記事前定義最低未使用ページ閾値レベルに達した後に前記事前定義ターゲット・ページセットのためのメッセージ・ストレージを拡張するように、前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットに対応する前記受信メッセージについて、メッセージ記憶先として、前記スピルオーバー・ページセットを利用することとを行うために前記プログラム命令を実行する、前記プロセッサとを備える、コンピュータ・システム。
【請求項12】
前記プロセッサが、
複数のページセット内の各それぞれのページセットの未使用ページ・ステータスを監視することと、
前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットが、各それぞれのページセットの前記未使用ページ・ステータスの前記監視に基づいて、前記事前定義最低未使用ページ閾値レベルに達したことを検出することとを行うために前記プログラム命令さらに実行する、請求項11に記載のコンピュータ・システム。
【請求項13】
前記プロセッサが、
スケールアウト・ビットが、前記事前定義ターゲット・ページセットについて設定されているかどうかを判定するために、前記プログラム命令をさらに実行する、請求項11または12に記載のコンピュータ・システム。
【請求項14】
前記プロセッサが、
前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットの未使用ページの数が、定義された百分率量だけ、前記事前定義最低未使用ページ閾値レベルよりも大きいことを検出することと、
前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットの未使用ページの前記数が、前記定義された百分率量だけ、前記事前定義最低未使用ページ閾値レベルよりも大きいことを検出したことに応答して、前記事前定義ターゲット・ページセットを、前記メッセージ記憶先として利用することとを行うために、前記プログラム命令をさらに実行する、請求項11
または12に記載のコンピュータ・システム。
【請求項15】
前記プロセッサが、
サービスの前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットに対応するメッセージを受信することと、
ページセット・リストに含まれる情報に基づいて、前記事前定義ターゲット・ページセット内の未使用ページの数を識別することとを行うために、前記プログラム命令をさらに実行する、請求項11
または12に記載のコンピュータ・システム。
【請求項16】
コンピュータに、
事前定義ターゲット・ページセットが事前定義最低未使用ページ閾値レベルに達したことに応答して、アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットに対応する受信メッセージを記憶するために、スピルオーバー・ページセットを選択
させることと、
前記事前定義ターゲット・ページセットが前記事前定義最低未使用ページ閾値レベルに達した後に前記事前定義ターゲット・ページセットのためのメッセージ・ストレージを拡張するように、前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットに対応する前記受信メッセージについて、メッセージ記憶先として、前記スピルオーバー・ページセットを利用することとの方法を実行させる、コンピュータ・プログラム。
【請求項17】
前記コンピュータに、
複数のページセット内の各それぞれのページセットの未使用ページ・ステータスを監視
させることと、
前記アプリケーション・ワークロードに関連付けられた前記事前ターゲット・ページセットが、各それぞれのページセットの前記未使用ページ・ステータスの前記監視に基づいて、前記事前定義最低未使用ページ閾値レベルに達したことを検出
させることとをさらに含む、請求項16に記載のコンピュータ・プログラム。
【請求項18】
前記コンピュータに、前記事前定義ターゲット・ページセットに対して、スケールアウト・ビットが設定されているかどうかを判定
させることをさらに含む、請求項16または17に記載のコンピュータ・プログラム。
【請求項19】
前記コンピュータに、
前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットの未使用ページの数が、定義された百分率量だけ、前記事前定義最低未使用ページ閾値レベルよりも大きいことを検出
させることと、
前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットの未使用ページの前記数が、前記定義された百分率量だけ、前記事前定義最低未使用ページ閾値レベルよりも大きいことを検出したことに応答して、前記事前定義ターゲット・ページセットを、前記メッセージ記憶先として利用することとをさらに含む、請求項16
または17に記載のコンピュータ・プログラム。
【請求項20】
前記コンピュータに、
サービスの前記アプリケーション・ワークロードに関連付けられた前記事前定義ターゲット・ページセットに対応するメッセージを受信
させることと、
ページセット・リストに含まれる情報に基づいて、前記事前定義ターゲット・ページセット内の未使用ページの数を識別
させることとをさらに含む、請求項16
または17に記載のコンピュータ・プログラム。
【請求項21】
コンピュータ・プログラムがコンピュータ上で実行されたときに請求項1
または2に記載の方法を実行するように適合されたプログラム・コード手段を含む、コンピュータ・プログラム。
【国際調査報告】