JP2019518260A - メモリ・プール・アーキテクチャ用のマルチテナント・メモリ・サービスのための方法、装置、コンピュータ・プログラム製品、データセンタ・ファシリティ - Google Patents
メモリ・プール・アーキテクチャ用のマルチテナント・メモリ・サービスのための方法、装置、コンピュータ・プログラム製品、データセンタ・ファシリティ Download PDFInfo
- Publication number
- JP2019518260A JP2019518260A JP2018548198A JP2018548198A JP2019518260A JP 2019518260 A JP2019518260 A JP 2019518260A JP 2018548198 A JP2018548198 A JP 2018548198A JP 2018548198 A JP2018548198 A JP 2018548198A JP 2019518260 A JP2019518260 A JP 2019518260A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- tenant
- computer program
- data block
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/154—Networked environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Hardware Redundancy (AREA)
Abstract
Description
背景の目的で、ただし限定することを目的とせず、以下では、本開示の手法(下で説明される)が実践されてよい代表的なコンピュータ環境について説明する。
クラウド・コンピューティングは、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にし、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、それらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、“Draft NIST Working Definition of Cloud Computing” by Peter Mell and Tim Grance, dated October 7, 2009において、すべてさらに詳細に説明され、定義されているように、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント・モデルを含むことができる。
オンデマンドのセルフ・サービス:クラウドの利用者は、サーバの時間、ネットワーク・ストレージなどの計算能力を一方的に、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
幅広いネットワーク・アクセス:クラウドの能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを使用してアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による利用を促進する。
リソース・プール:プロバイダの計算リソースは、プールされ、マルチテナント・モデルを使用して複数の利用者に提供される。さまざまな物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。場所に依存しないという感覚があり、利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、さらに高い抽象レベル(例えば、国、州、データセンタ)では、場所を指定できる場合がある。
迅速な順応性:クラウドの能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、任意の量をいつでも無制限に購入できるように見える。
測定されるサービス:クラウド・システムは、計測機能を活用することによって、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント)に適した抽象レベルで、リソースの使用を自動的に制御および最適化する。リソースの使用量は監視、制御、および報告することができ、利用されるサービスのプロバイダと利用者の両方に透明性が提供される。
SaaS(Software as a Service):利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Webブラウザ(例えば、Webベースの電子メール)などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能さえも含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
PaaS(Platform as a Service):利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御することができる。
IaaS(Infrastructure as a Service):利用者に提供される能力は、処理、ストレージ、ネットワーク、およびその他の基本的な計算リソースのプロビジョニングであり、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、およびデプロイされたアプリケーションを制御することができ、場合によっては、選択されたネットワーク・コンポーネント(例えば、ホスト・ファイアウォール)を限定的に制御できる。
プライベート・クラウド:このクラウド・インフラストラクチャは、ある組織のためにのみ運用される。このクラウド・インフラストラクチャは、この組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
コミュニティ・クラウド:このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項)を共有している特定のコミュニティをサポートする。このクラウド・インフラストラクチャは、これらの組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
パブリック・クラウド:このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、データとアプリケーションの移植を可能にする標準化された技術または独自の技術(例えば、クラウド間の負荷バランスを調整するためのクラウド・バースト)によって固有の実体を残したまま互いに結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
上の説明では、複数の代表的な動作環境を示したが、次に、ハードウェア・クラウド環境内で動作する非集約型計算システムについてさらに詳細に説明する。前述したように、非集約型計算システムは、データセンタ内で(またはデータセンタにまたがって)、サーバ・リソースが「分解」されて、共有サーバ・リソース・プール(つまり、計算プール、メモリ・プール、アクセラレータ・プール、ストレージ・プールなどのうちの1つまたは複数)に入れられる、システムである。サーバは、ワークロード要件に基づいて、これらのリソース・プールから割り当てることによって、動的に(例えば、オンデマンドに)構築される。このような種類の非集約型計算システムは、共有サーバ・リソース・プール内の使用可能なリソースを追跡し、この情報に基づいて、それらのリソースを管理する。
本開示によれば、図6の「非集約型サーバ」アーキテクチャが、メモリ管理サービスによって改良される。下で示されているように、メモリ管理サービスは、メモリ・プール用の独自のメモリ管理能力を提供し、それによって、メモリ・プール(したがって、データセンタ)がより効率的に動作できるようにし、性能およびメモリ使用率を向上させる。
Claims (25)
- マルチテナント計算環境においてメモリを管理する方法であって、
メモリ・リソース・プールを提供することと、
特定のワークロードに関して、メモリ・リソースを前記メモリ・リソース・プールからプロセッサのセットに割り当てることと、
データ構造に従って、前記割り当てられたメモリ・リソース内の前記特定のワークロードのデータを編成することと、
前記特定のワークロードの前記データ構造内の前記データの再編成が、前記データ構造の性能を向上させるかどうか、または前記データ構造によって使用されるメモリを節約するかどうかを決定することと、
再編成が性能を向上させるということ、またはメモリを節約するということを決定したときに、前記データを管理するための特定の動作を実行することと
を含む、方法。 - 前記特定の動作がデータの類似性または重複を検出し、前記検出に応答して、特定のデータを前記割り当てられたメモリ・リソースから除去する、請求項1に記載の方法。
- 複数のテナントまたは複数のプロセスに共通しているデータ・ブロックを識別することと、
共通のデータ・ブロックを識別したときに、構成可能なしきい値に従って、前記共通のデータ・ブロックが安定しているかどうかを決定することと、
前記共通のデータ・ブロックが安定しているということを決定したときに、重複する共通のデータ・ブロックを除去することと、
前記共通のデータ・ブロックのインスタンスを共有された共通のデータ・ブロックとして関連付けることと、
前記複数のテナントまたは複数のプロセスに、前記共有された共通のデータ・ブロックへのポインタを提供することと
によって、データの類似性または重複が検出される、請求項2に記載の方法。 - 第1のテナントの共有された共通のデータ・ブロックの値が変化したことを決定することと、
前記第1のテナントの前記共有された共通のデータ・ブロックの差分値を格納することのほうが、計算コストが少ないかどうかを決定することと、
前記差分値を格納することのほうが計算コストが少ないということを決定したときに、前記第1のテナントの前記共有された共通のデータ・ブロックの前記差分値を格納することと
をさらに含む、請求項3に記載の方法。 - 前記第1のテナントの前記共有された共通のデータ・ブロックの新しい値を格納することのほうが、計算コストが少ないかどうかを決定することと、
新しい値を格納することのほうが計算コストが少ないということを決定したときに、前記第1のテナントの前記共有された共通のデータ・ブロックの前記新しい値を格納することと
をさらに含む、請求項4に記載の方法。 - 前記データを管理するための前記特定の動作が、
前記データのデータ分散または使用パターンを監視することと、
前記監視することに基づいて、最適化を適用して前記データ構造を調整することと
を含む、請求項1に記載の方法。 - データ・セットをプロファイリングしてデータ・セット・スキーマを生成することと、
プロセッサを使用せずに前記データ・セットを定期的にバックアップすることと、
バックアップ処理の前に、キャッシュされたデータをメイン・メモリにフラッシュすることと
をさらに含む、請求項1に記載の方法。 - 前記特定のワークロードのアクセス要件に基づいて前記データ構造が前記データを編成する、請求項1に記載の方法。
- マルチテナント計算環境においてメモリを管理する装置であって、
1つまたは複数のハードウェア・プロセッサと、
前記ハードウェア・プロセッサによって実行されるコンピュータ・プログラム命令を保持しているコンピュータ・メモリと
を備え、前記コンピュータ・プログラム命令が、
メモリ・リソース・プールを編成することと、
特定のワークロードに関して、メモリ・リソースを前記メモリ・リソース・プールからプロセッサのセットに割り当てることと、
データ構造に従って、前記割り当てられたメモリ・リソース内の前記特定のワークロードのデータを編成することと、
前記特定のワークロードの前記データ構造内の前記データの再編成が、前記データ構造の性能を向上させるかどうか、または前記データ構造によって使用されるメモリを節約するかどうかを決定することと、
再編成が性能を向上させるということ、またはメモリを節約するということを決定したときに、前記データを管理するための特定の動作を実行することと
を実行するように機能する、装置。 - 前記特定の動作がデータの類似性または重複を検出し、前記検出に応答して、特定のデータを前記割り当てられたメモリ・リソースから除去する、請求項9に記載の装置。
- 複数のテナントまたは複数のプロセスに共通しているデータ・ブロックを識別することと、
共通のデータ・ブロックを識別したときに、構成可能なしきい値に従って、前記共通のデータ・ブロックが安定しているかどうかを決定することと、
前記共通のデータ・ブロックが安定しているということを決定したときに、重複する共通のデータ・ブロックを除去することと、
前記共通のデータ・ブロックのインスタンスを共有された共通のデータ・ブロックとして関連付けることと、
前記複数のテナントまたは複数のプロセスに、前記共有された共通のデータ・ブロックへのポインタを提供することと
によって、データの類似性または重複が検出される、請求項10に記載の装置。 - 前記コンピュータ・プログラム命令が、
第1のテナントの共有された共通のデータ・ブロックの値が変化したことを決定することと、
前記第1のテナントの前記共有された共通のデータ・ブロックの差分値を格納することのほうが、計算コストが少ないかどうかを決定することと、
前記差分値を格納することのほうが計算コストが少ないということを決定したときに、前記第1のテナントの前記共有された共通のデータ・ブロックの前記差分値を格納することと
を実行するようにさらに機能する、請求項11に記載の装置。 - 前記コンピュータ・プログラム命令が、
前記第1のテナントの前記共有された共通のデータ・ブロックの新しい値を格納することのほうが、計算コストが少ないかどうかを決定することと、
新しい値を格納することのほうが計算コストが少ないということを決定したときに、前記第1のテナントの前記共有された共通のデータ・ブロックの前記新しい値を格納することとを実行するようにさらに機能する、請求項12に記載の装置。 - 前記データを管理するための前記特定の動作が、
前記データのデータ分散または使用パターンを監視することと、
前記監視することに基づいて、最適化を適用して前記データ構造を調整することと
を含む、請求項9に記載の装置。 - 前記コンピュータ・プログラム命令が、
データ・セットをプロファイリングしてデータ・セット・スキーマを生成することと、
プロセッサを使用せずに前記データ・セットを定期的にバックアップすることと、
バックアップ処理の前に、キャッシュされたデータをメイン・メモリにフラッシュすることと
を実行するようにさらに機能する、請求項9に記載の装置。 - 前記特定のワークロードのアクセス要件に基づいて前記データ構造が前記データを編成する、請求項9に記載の装置。
- マルチテナント計算環境内のメモリを管理するためにデータ処理システムにおいて使用するための非一時的コンピュータ可読媒体内のコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が前記データ処理システムにおいて実行されるコンピュータ・プログラム命令を保持しており、前記コンピュータ・プログラム命令が、
メモリ・リソース・プールを編成することと、
特定のワークロードに関して、メモリ・リソースを前記メモリ・リソース・プールからプロセッサのセットに割り当てることと、
データ構造に従って、前記割り当てられたメモリ・リソース内の前記特定のワークロードのデータを編成することと、
前記特定のワークロードの前記データ構造内の前記データの再編成が、前記データ構造の性能を向上させるかどうか、または前記データ構造によって使用されるメモリを節約するかどうかを決定することと、
再編成が性能を向上させるということ、またはメモリを節約するということを決定したときに、前記データを管理するための特定の動作を実行することと
を実行するように機能する、コンピュータ・プログラム製品。 - 前記特定の動作がデータの類似性または重複を検出し、前記検出に応答して、特定のデータを前記割り当てられたメモリ・リソースから除去する、請求項17に記載のコンピュータ・プログラム製品。
- 複数のテナントまたは複数のプロセスに共通しているデータ・ブロックを識別することと、
共通のデータ・ブロックを識別したときに、構成可能なしきい値に従って、前記共通のデータ・ブロックが安定しているかどうかを決定することと、
前記共通のデータ・ブロックが安定しているということを決定したときに、重複する共通のデータ・ブロックを除去することと、
前記共通のデータ・ブロックのインスタンスを共有された共通のデータ・ブロックとして関連付けることと、
前記複数のテナントまたは複数のプロセスに、前記共有された共通のデータ・ブロックへのポインタを提供することと
によって、データの類似性または重複が検出される、請求項18に記載のコンピュータ・プログラム製品。 - 前記コンピュータ・プログラム命令が、
第1のテナントの共有された共通のデータ・ブロックの値が変化したことを決定することと、
前記第1のテナントの前記共有された共通のデータ・ブロックの差分値を格納することのほうが、計算コストが少ないかどうかを決定することと、
前記差分値を格納することのほうが計算コストが少ないということを決定したときに、前記第1のテナントの前記共有された共通のデータ・ブロックの前記差分値を格納することと
を実行するようにさらに機能する、請求項19に記載のコンピュータ・プログラム製品。 - 前記コンピュータ・プログラム命令が、
前記第1のテナントの前記共有された共通のデータ・ブロックの新しい値を格納することのほうが、計算コストが少ないかどうかを決定することと、
新しい値を格納することのほうが計算コストが少ないということを決定したときに、前記第1のテナントの前記共有された共通のデータ・ブロックの前記新しい値を格納することと
を実行するようにさらに機能する、請求項20に記載のコンピュータ・プログラム製品。 - 前記データを管理するための前記特定の動作が、
前記データのデータ分散または使用パターンを監視することと、
前記監視することに基づいて、最適化を適用して前記データ構造を調整することと
を含む、請求項17に記載のコンピュータ・プログラム製品。 - 前記コンピュータ・プログラム命令が、
データ・セットをプロファイリングしてデータ・セット・スキーマを生成することと、
プロセッサを使用せずに前記データ・セットを定期的にバックアップすることと、
バックアップ処理の前に、キャッシュされたデータをメイン・メモリにフラッシュすることと
を実行するようにさらに機能する、請求項17に記載のコンピュータ・プログラム製品。 - 前記特定のワークロードのアクセス要件に基づいて前記データ構造が前記データを編成する、請求項17に記載のコンピュータ・プログラム製品。
- データセンタ・ファシリティであって、
メモリ・プールと、
光相互接続と、
ハードウェア要素内で実行されるメモリ・マネージャとを備え、前記メモリ・マネージャが、前記メモリ・リソース・プールから複数のテナントのワークロードのプロセッサのセットへのメモリ・リソースの割り当てを管理することと、データ構造に従って特定のテナントのワークロードのデータを編成することと、前記データ構造内の前記データを選択的に再編成して、前記データ構造の性能を向上させるか、または前記特定のテナントのワークロードにサービスを提供するために必要なメモリを削減することとを実行するように機能する、データセンタ・ファシリティ。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/092,699 US9811281B2 (en) | 2016-04-07 | 2016-04-07 | Multi-tenant memory service for memory pool architectures |
US15/092,699 | 2016-04-07 | ||
PCT/IB2017/051381 WO2017175078A1 (en) | 2016-04-07 | 2017-03-09 | Multi-tenant memory service for memory pool architectures |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019518260A true JP2019518260A (ja) | 2019-06-27 |
JP6963558B2 JP6963558B2 (ja) | 2021-11-10 |
Family
ID=59999377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018548198A Active JP6963558B2 (ja) | 2016-04-07 | 2017-03-09 | メモリ・プール・アーキテクチャ用のマルチテナント・メモリ・サービスのための方法、装置、コンピュータ・プログラム製品、データセンタ・ファシリティ |
Country Status (6)
Country | Link |
---|---|
US (2) | US9811281B2 (ja) |
JP (1) | JP6963558B2 (ja) |
CN (1) | CN108885582B (ja) |
DE (1) | DE112017000629T5 (ja) |
GB (1) | GB2557125B (ja) |
WO (1) | WO2017175078A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7448653B2 (ja) | 2019-11-25 | 2024-03-12 | インターナショナル・ビジネス・マシーンズ・コーポレーション | サーバ内の仮想ドロワー |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10298516B2 (en) * | 2016-04-19 | 2019-05-21 | Hyland Switzerland Sàrl | System and methods for sharing resources among application modules |
US10390114B2 (en) | 2016-07-22 | 2019-08-20 | Intel Corporation | Memory sharing for physical accelerator resources in a data center |
US10417211B2 (en) | 2016-09-29 | 2019-09-17 | Vmware, Inc. | Quick hardware inventory of a software-defined data center (SDDC) multi-rack |
US11232091B2 (en) | 2016-09-29 | 2022-01-25 | Vmware, Inc. | Software-defined data center (SDDC) rack quick discovery after hardware management system (HMS) restart |
US10684893B2 (en) | 2017-02-25 | 2020-06-16 | Vmware, Inc. | Methods and apparatus to manage compute resources in a hyperconverged infrastructure computing environment |
US10462221B2 (en) | 2017-02-25 | 2019-10-29 | Vmware, Inc. | Distributed storage resource management in a hyper converged infrastructure |
US10454844B2 (en) * | 2017-03-08 | 2019-10-22 | A10 Networks, Inc. | Dynamic capacity planning for application delivery platform across multiple cloud deployment |
US10402124B2 (en) * | 2017-03-30 | 2019-09-03 | Intel Corporation | Dynamically composable computing system, a data center, and method for dynamically composing a computing system |
US20190068466A1 (en) * | 2017-08-30 | 2019-02-28 | Intel Corporation | Technologies for auto-discovery of fault domains |
US10713092B2 (en) * | 2018-01-02 | 2020-07-14 | Jpmorgan Chase Bank, N.A. | Dynamic resource management of a pool of resources for multi-tenant applications based on sample exceution, query type or jobs |
US10649813B2 (en) * | 2018-03-29 | 2020-05-12 | Intel Corporation | Arbitration across shared memory pools of disaggregated memory devices |
US10891206B2 (en) | 2018-05-31 | 2021-01-12 | International Business Machines Corporation | Disaster recovery orchestration and capacity planning in disaggregated datacenters |
US11243846B2 (en) | 2018-05-31 | 2022-02-08 | International Business Machines Corporation | Replicating workload and state data for disaster recovery in disaggregated datacenters |
US10719418B2 (en) | 2018-05-31 | 2020-07-21 | International Business Machines Corporation | Replicating workload data according to a degree of resiliency for disaster recovery in disaggregated datacenters |
US11036599B2 (en) | 2018-05-31 | 2021-06-15 | International Business Machines Corporation | Disaster recovery and replication according to workload priorities in disaggregated datacenters |
US10983881B2 (en) | 2018-05-31 | 2021-04-20 | International Business Machines Corporation | Disaster recovery and replication in disaggregated datacenters |
US11182322B2 (en) | 2018-09-25 | 2021-11-23 | International Business Machines Corporation | Efficient component communication through resource rewiring in disaggregated datacenters |
US10671557B2 (en) | 2018-09-25 | 2020-06-02 | International Business Machines Corporation | Dynamic component communication using general purpose links between respectively pooled together of like typed devices in disaggregated datacenters |
US10915493B2 (en) | 2018-09-25 | 2021-02-09 | International Business Machines Corporation | Component building blocks and optimized compositions thereof in disaggregated datacenters |
US11012423B2 (en) | 2018-09-25 | 2021-05-18 | International Business Machines Corporation | Maximizing resource utilization through efficient component communication in disaggregated datacenters |
US10831698B2 (en) | 2018-09-25 | 2020-11-10 | International Business Machines Corporation | Maximizing high link bandwidth utilization through efficient component communication in disaggregated datacenters |
US10802988B2 (en) * | 2018-09-25 | 2020-10-13 | International Business Machines Corporation | Dynamic memory-based communication in disaggregated datacenters |
US11650849B2 (en) | 2018-09-25 | 2023-05-16 | International Business Machines Corporation | Efficient component communication through accelerator switching in disaggregated datacenters |
US11163713B2 (en) | 2018-09-25 | 2021-11-02 | International Business Machines Corporation | Efficient component communication through protocol switching in disaggregated datacenters |
US10637733B2 (en) | 2018-09-25 | 2020-04-28 | International Business Machines Corporation | Dynamic grouping and repurposing of general purpose links in disaggregated datacenters |
US10855532B2 (en) * | 2018-10-08 | 2020-12-01 | Dell Products L.P. | System and method to perform solution aware server compliance and configuration |
US10915370B2 (en) * | 2018-11-29 | 2021-02-09 | International Business Machines Corporation | Inter-host communication without data copy in disaggregated systems |
US11422912B2 (en) | 2019-04-19 | 2022-08-23 | Vmware, Inc. | Accurate time estimates for operations performed on an SDDC |
US11609845B2 (en) * | 2019-05-28 | 2023-03-21 | Oracle International Corporation | Configurable memory device connected to a microprocessor |
US11424940B2 (en) | 2019-06-01 | 2022-08-23 | Vmware, Inc. | Standalone tool for certificate management |
US11669246B2 (en) | 2019-08-19 | 2023-06-06 | International Business Machines Corporation | Storage allocation enhancement of microservices |
CN113050874A (zh) * | 2019-12-26 | 2021-06-29 | 华为技术有限公司 | 一种内存设置方法以及装置 |
US11513860B2 (en) * | 2020-01-31 | 2022-11-29 | Red Hat, Inc. | Serverless function colocation with storage pools |
US11429518B2 (en) | 2020-12-08 | 2022-08-30 | Microsoft Technology Licensing, Llc | Paging in thin-provisioned disaggregated memory |
US20220398221A1 (en) * | 2021-06-10 | 2022-12-15 | EMC IP Holding Company LLC | Persistent memory tiering supporting fast failover in a deduplicated file system |
US11829249B2 (en) | 2021-06-10 | 2023-11-28 | EMC IP Holding Company LLC | Fast failover of a deduplicated file system through huge memory pages |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6771595B1 (en) * | 1999-08-31 | 2004-08-03 | Intel Corporation | Apparatus and method for dynamic resource allocation in a network environment |
AU2001243459A1 (en) * | 2000-03-09 | 2001-09-17 | The Web Access, Inc. | Method and apparatus for performing a research task by interchangeably utilizinga multitude of search methodologies |
US6785688B2 (en) * | 2000-11-21 | 2004-08-31 | America Online, Inc. | Internet streaming media workflow architecture |
US7356655B2 (en) | 2003-05-15 | 2008-04-08 | International Business Machines Corporation | Methods, systems, and media for managing dynamic storage |
US7529785B1 (en) | 2006-02-28 | 2009-05-05 | Symantec Corporation | Efficient backups using dynamically shared storage pools in peer-to-peer networks |
US7818535B1 (en) * | 2007-06-30 | 2010-10-19 | Emc Corporation | Implicit container per version set |
US8082400B1 (en) * | 2008-02-26 | 2011-12-20 | Hewlett-Packard Development Company, L.P. | Partitioning a memory pool among plural computing nodes |
US8458393B2 (en) * | 2008-03-31 | 2013-06-04 | Spansion Llc | Flash memory and operating system kernel |
US20100205381A1 (en) | 2009-02-06 | 2010-08-12 | Canion Rodney S | System and Method for Managing Memory in a Multiprocessor Computing Environment |
US9811662B2 (en) * | 2010-05-03 | 2017-11-07 | Panzura, Inc. | Performing anti-virus checks for a distributed filesystem |
US8341368B2 (en) | 2010-06-07 | 2012-12-25 | International Business Machines Corporation | Automatic reallocation of structured external storage structures |
US20120001925A1 (en) * | 2010-06-30 | 2012-01-05 | Ati Technologies, Ulc | Dynamic Feedback Load Balancing |
US9009724B2 (en) * | 2010-09-24 | 2015-04-14 | Hewlett-Packard Development Company, L.P. | Load balancing data access in virtualized storage nodes |
CN102681899B (zh) * | 2011-03-14 | 2015-06-10 | 金剑 | 云计算服务平台的虚拟计算资源动态管理方法 |
US8935506B1 (en) | 2011-03-31 | 2015-01-13 | The Research Foundation For The State University Of New York | MemX: virtualization of cluster-wide memory |
US8688650B2 (en) | 2011-08-01 | 2014-04-01 | Actifio, Inc. | Data fingerprinting for copy accuracy assurance |
DE102011084344A1 (de) * | 2011-10-12 | 2013-04-18 | Siemens Aktiengesellschaft | Verfahren zur Laufzeitoptimierung bei paketorientierter Mobilfunkübertragung von Datentelegrammen |
US9300548B2 (en) * | 2011-10-14 | 2016-03-29 | Alcatel Lucent | Providing dynamic reliability and security in communications environments |
US8954698B2 (en) | 2012-04-13 | 2015-02-10 | International Business Machines Corporation | Switching optically connected memory |
JP2014041420A (ja) * | 2012-08-21 | 2014-03-06 | Nec Corp | 差分圧縮装置、コンピュータ、メモリ管理方法、および、プログラム |
CN103279974A (zh) * | 2013-05-15 | 2013-09-04 | 中国科学院软件研究所 | 一种高精度高分辨率卫星成像模拟引擎及实现方法 |
WO2015045046A1 (ja) * | 2013-09-26 | 2015-04-02 | 株式会社日立製作所 | 計算機システムおよび計算機システムのメモリ割当調整方法 |
US9977618B2 (en) | 2013-12-27 | 2018-05-22 | Intel Corporation | Pooling of memory resources across multiple nodes |
WO2015123537A1 (en) | 2014-02-13 | 2015-08-20 | Ashok Ramu | Virtual data backup |
US9569136B2 (en) * | 2015-04-29 | 2017-02-14 | International Business Machines Corporation | Smart load balancing replication when adding or removing storage disks in a distributed storage system |
US10298512B2 (en) * | 2015-06-26 | 2019-05-21 | Vmware, Inc. | System and method for performing resource allocation for a host computer cluster |
US20170003997A1 (en) * | 2015-07-01 | 2017-01-05 | Dell Products, Lp | Compute Cluster Load Balancing Based on Memory Page Contents |
CN105094985A (zh) | 2015-07-15 | 2015-11-25 | 上海新储集成电路有限公司 | 一种共享内存池的低功耗数据中心及其工作方法 |
-
2016
- 2016-04-07 US US15/092,699 patent/US9811281B2/en active Active
-
2017
- 2017-03-09 JP JP2018548198A patent/JP6963558B2/ja active Active
- 2017-03-09 CN CN201780020208.1A patent/CN108885582B/zh active Active
- 2017-03-09 DE DE112017000629.5T patent/DE112017000629T5/de active Pending
- 2017-03-09 WO PCT/IB2017/051381 patent/WO2017175078A1/en active Application Filing
- 2017-03-09 GB GB1803283.9A patent/GB2557125B/en active Active
- 2017-11-03 US US15/803,004 patent/US10409509B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7448653B2 (ja) | 2019-11-25 | 2024-03-12 | インターナショナル・ビジネス・マシーンズ・コーポレーション | サーバ内の仮想ドロワー |
Also Published As
Publication number | Publication date |
---|---|
CN108885582A (zh) | 2018-11-23 |
GB201803283D0 (en) | 2018-04-11 |
US20170293447A1 (en) | 2017-10-12 |
CN108885582B (zh) | 2022-07-29 |
GB2557125B (en) | 2022-01-05 |
US9811281B2 (en) | 2017-11-07 |
US20180074741A1 (en) | 2018-03-15 |
GB2557125A (en) | 2018-06-13 |
WO2017175078A1 (en) | 2017-10-12 |
DE112017000629T5 (de) | 2018-10-31 |
JP6963558B2 (ja) | 2021-11-10 |
US10409509B2 (en) | 2019-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6963558B2 (ja) | メモリ・プール・アーキテクチャ用のマルチテナント・メモリ・サービスのための方法、装置、コンピュータ・プログラム製品、データセンタ・ファシリティ | |
CN108885554B (zh) | 用于在计算环境中分配资源的方法、装置、介质和数据中心设备 | |
US10701141B2 (en) | Managing software licenses in a disaggregated environment | |
US10129169B2 (en) | Specifying a highly-resilient system in a disaggregated compute environment | |
US9916636B2 (en) | Dynamically provisioning and scaling graphic processing units for data analytic workloads in a hardware cloud | |
US9390047B2 (en) | Memory switching protocol when switching optically-connected memory | |
US11275622B2 (en) | Utilizing accelerators to accelerate data analytic workloads in disaggregated systems | |
US8996837B1 (en) | Providing multi-tenancy within a data storage apparatus | |
US9430264B2 (en) | System and method for managing resources in virtualized environment based on resource state information and policy information | |
US10140304B1 (en) | Distributed metadata servers in a file system with separate metadata servers for file metadata and directory metadata | |
US11188429B2 (en) | Building a highly-resilient system with failure independence in a disaggregated compute environment | |
US10915370B2 (en) | Inter-host communication without data copy in disaggregated systems | |
US20200042494A1 (en) | File systems with global and local naming | |
Anjanadevi et al. | An efficient dynamic indexing and metadata model for storage in cloud environment | |
Zeng et al. | KVLight: A lightweight key-value store for distributed access in cloud | |
De Leenheer et al. | Deep Dive on SimpliVity's OmniStack | |
Aashabegum et al. | Formation of Single and Multinode Clusters in Hadoop Distributed File System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190109 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190819 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200928 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20201110 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210128 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210720 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210929 |
|
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: 20211012 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211015 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6963558 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |