JP2022142648A - 情報処理装置および復元制御方法 - Google Patents

情報処理装置および復元制御方法 Download PDF

Info

Publication number
JP2022142648A
JP2022142648A JP2021042904A JP2021042904A JP2022142648A JP 2022142648 A JP2022142648 A JP 2022142648A JP 2021042904 A JP2021042904 A JP 2021042904A JP 2021042904 A JP2021042904 A JP 2021042904A JP 2022142648 A JP2022142648 A JP 2022142648A
Authority
JP
Japan
Prior art keywords
data
unit
storage unit
overhead
restoration
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.)
Pending
Application number
JP2021042904A
Other languages
English (en)
Inventor
智史 今村
Satoshi Imamura
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 JP2021042904A priority Critical patent/JP2022142648A/ja
Priority to US17/521,222 priority patent/US20220300382A1/en
Publication of JP2022142648A publication Critical patent/JP2022142648A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1466Management of the backup or restore process to make the backup process non-disruptive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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/3419Recording 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 by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6026Prefetching based on access pattern detection, e.g. stride based prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6028Prefetching based on hints or prefetch instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】復元以降の処理の処理時間を短縮する。【解決手段】情報処理装置1は、制御部40とDRAM21とPMEM22とを有する。制御部40は、対象のオブジェクトをDRAM21からPMEM22にコピーして、オブジェクトを永続化する永続化部111と、PMEM22からDRAM21へ対象のオブジェクトをコピーして当該オブジェクトを復元する第1の復元方法のオーバーヘッドと、PMEM22上の対象のオブジェクトをそのまま利用する第2の復元方法のオーバーヘッドとをハードウェアで取得可能な統計情報に基づいて推定するモデル適用部14と、永続化された対象のオブジェクトを復元する際、推定された第1の復元方法および第2の復元方法のそれぞれのオーバーヘッドのうち小さいオーバーヘッドの復元方法に基づいて、対象のオブジェクトを復元する復元部112と、を有する。【選択図】図2

Description

本発明は、情報処理装置および復元制御方法に関する。
近年、DRAM(Dynamic Random Access Memory)と同様に主記憶装置としてPMEM(Persistent Memory)が利用されている。PMEMは、DRAMとは異なる性能特性を持っている。例えば、PMEMは、DRAMに比べアクセス性能は低いが、読み出し性能が書き込み性能に比べ高い。また、PMEMは、DRAMに比べアクセス性能は低いが、逐次アクセス性能がランダムアクセス性能より高い。加えて、PMEMは、電源遮断時にデータが消失しない不揮発性メモリであり、データの永続化に用いられる。
DRAMとPMEMとを有するコンピュータにおいて、PMEMを用いたデータの永続化および復元が提案されている。永続化処理は、対象のデータをメタデータと併せた対象のオブジェクトをDRAMからPMEMにコピーし、永続保存する。復元処理は、オブジェクトを管理するメタデータに対象のオブジェクトの情報を再登録し、永続化したオブジェクトを復元して再利用する。
復元処理には、PMEMからDRAMへオブジェクトをコピーしてオブジェクト管理メタデータに再登録する方法と、PMEM上のオブジェクトをそのまま再利用すべくオブジェクト管理メタデータに再登録する方法とがあることが知られている。ユーザが復元方法を指定することで、コンピュータは指定された復元方法に基づき復元処理を実行することができる。図11は、復元処理の参考図である。図11に示すように、例えば、プログラマがソースコードの中で復元方法を指定して、コンピュータでは、対象とするソフトウェアに含まれるバックエンドメモリ管理機能の復元機能が、指定された復元方法に基づいてオブジェクトの復元処理を実行する。
特開2008-46964号公報 特開2019-45974号公報
しかしながら、復元以降の処理の処理時間を短縮するために、最適な復元方法を選択するのが難しいという問題がある。PMEMからDRAMへのオブジェクトのコピー時間は、オブジェクトのサイズにPMEMの逐次読み出しのスループットを乗算して求められる。オブジェクトのサイズは、各オブジェクトのメタデータから取得可能である。PMEMの逐次読出しのスループットは、ベンチマークを用いた事前計測やPMEMの仕様を参照して取得可能である。したがって、PMEMからDRAMへのオブジェクトのコピー時間は、復元処理時に、容易に求められる。
これに対して、復元後のDRAM上でのオブジェクトへのアクセスによる実行時間に対して、PMEM上でのアクセスによる増加分の実行時間は、オブジェクトごとのアクセスパターンに依存する。オブジェクトのアクセスパターンは、復元処理時には容易に求められない。
PMEM上でのアクセスにより増加する実行時間が容易に求められないので、PMEMからDRAMへのオブジェクトのコピー時間が求められても、それぞれの方法の処理負荷(オーバーヘッド)の比較ができない。つまり、復元以降の処理の処理時間を短縮するために、最適な復元方法を選択することができない。
本発明は、1つの側面では、復元以降の処理の処理時間を短縮することを目的とする。
1つの態様では、情報処理装置は、制御部と、第1の記憶部と、前記第1の記憶部より性能が低い第2の記憶部と、を有し、前記制御部は、データを前記第1の記憶部から前記第2の記憶部にコピーして、前記データを永続化する永続化部と、前記第2の記憶部から前記第1の記憶部へ前記データをコピーして前記データを復元する第1の復元方法のオーバーヘッドと、前記第2の記憶部上の前記データをそのまま利用する第2の復元方法のオーバーヘッドとを前記ハードウェアで取得可能な統計情報に基づいて推定する推定部と、前記永続化部によって永続化された前記データを復元する際、前記推定部によって推定された第1の復元方法および第2の復元方法のそれぞれのオーバーヘッドのうち小さいオーバーヘッドの復元方法に基づいて、前記データを復元する復元部と、を有する。
1実施態様によれば、復元以降の処理の処理時間を短縮することができる。
図1は、実施例に係る情報処理装置のハードウェア構成の一例を示す図である。 図2は、実施例に係る情報処理装置の機能構成の一例を示すブロック図である。 図3は、オーバーヘッド比較の一例を示す図である。 図4は、実施例に係るメモリ管理機能を説明する図である。 図5は、ソースコードの一例を示す図である。 図6は、実施例に係る永続化処理の一例を示す図である。 図7は、実施例に係る復元処理の一例を示す図である。 図8は、実施例に係る統計情報取得処理のフローチャートの一例を示す図である。 図9は、実施例に係る永続化処理のフローチャートの一例を示す図である。 図10は、実施例に係る復元処理のフローチャートの一例を示す図である。 図11は、復元処理の参考図である。
以下に、本願の開示する情報処理装置および復元制御方法の実施例を図面に基づいて詳細に説明する。なお、本発明は、実施例により限定されるものではない。
[情報処理装置のハードウェア構成]
図1は、実施例に係る情報処理装置のハードウェア構成の一例を示す図である。図1に示すように、情報処理装置1は、CPU(Central Processing Unit)10、主記憶部20およびHDD(Hard Disk Drive)30を有する。
CPU10は、主記憶部20およびHDD30とバスで接続される。主記憶部20は、DRAM21とPMEM22とを有する。PMEM22は、DRAM21とは異なる性能特性を持っている。例えば、PMEM22は、DRAMに比べアクセス性能が低いが、読み出し性能が書き込み性能に比べ高い。また、PMEM22は、DRAMに比べアクセス性能が低いが、逐次アクセス性能がランダムアクセス性能より高い。加えて、PMEM22は、電源遮断時にデータが消失しない不揮発性メモリであり、データの永続化に用いられる。
CPU10は、OS(Operating System)および各種アプリケーションを動作させるプログラムをHDD(Hard Disk Drive)30から読み出して実行する。CPU10は、アプリケーションの実行の際にデータの読み出しおよび書き込みのために主記憶部20へアクセスし、データの主記憶部20からの読み出しおよびデータの主記憶部20への書き込みを行う。
ここで、ソフトウェアを動作主体として説明すると、CPU10によりOS上で動作させられたアプリケーションは、一時的に記憶装置へ格納する一時データをDRAM21へ格納する。また、CPU10によりOS上で動作させられたアプリケーションは、電源供給が停止しても保持し続けることが要求されるデータをDRAM21からPMEM22へコピーして格納する。DRAM21からPMEM22へデータをコピーして永続化するアプリケーションは、以降、「永続化処理」というものとする。
また、CPU10によりOS上で動作させられたアプリケーションは、DRAM21に保持された管理メタデータ(図示せず)にデータの情報を再登録し、永続化したデータを復元して再利用する。データを再利用するアプリケーションは、以降、「復元処理」というものとする。復元方法には、PMEM22からDRAM21へデータをコピーして管理メタデータに再登録する第1の復元方法と、PMEM22上のデータをそのまま再利用すべく管理メタデータに再登録する第2の復元方法とがある。
第1の復元方法によって復元される場合、CPU10は、PMEM22からDRAM21へデータをコピーして管理メタデータに再登録し、復元処理後、DRAM21上のデータへ高速にアクセスすることができる。すなわち、第1の復元方法では、PMEM22からDRAM21へのコピー時間がオーバーヘッドとなる。これに対して、第2の復元方法によって復元される場合、CPU10は、PMEM22からDRAM21へのコピーが不要になるが、復元処理後、PMEM22上からデータをアクセスする。すなわち、第2の復元方法では、PMEM22とDRAM21とのアクセス性能差がオーバーヘッドとなる。
CPU10によりOS上で動作させられた復元処理のアプリケーションは、オーバーヘッドが小さい復元方法を選択して、復元処理を実行する。以降では、オーバーヘッドが小さい復元処理を実行する情報処理装置1について説明する。
[情報処理装置の構成]
図2は、実施例に係る情報処理装置の機能構成の一例を示すブロック図である。図2に示すように、情報処理装置1は、制御部40と、DRAM21と、PMEM22とを有する。制御部40は、メモリ管理機能部11、処理実行部12、統計情報取得部13およびモデル適用部14を有する。なお、制御部40は、制御部の一例である。DRAM21は、第1の記憶部の一例である。PMEM22は、第2の記憶部の一例である。
DRAM21は、管理メタデータ210と、オブジェクトとを有する。オブジェクトは、データをメタデータと併せた情報である。オブジェクトは、永続化処理および復元処理の対象である。管理メタデータ210は、データをオブジェクトとして管理する情報である。例えば、管理メタデータ210は、オブジェクトごとに、各オブジェクトがDRAM21またはPMEM22のどこに配置されているかを示すアドレスを記憶する。管理メタデータ210には、復元処理でオブジェクトの情報(例えば、アドレス)が再登録される。
メモリ管理機能部11は、DRAM21およびPMEM22を用いたオブジェクトの永続化処理および復元処理を行う。メモリ管理機能部11は、永続化部111および復元部112を有する。
永続化部111は、対象のオブジェクトをDRAM21からPMEM22へコピーして永続化する。例えば、永続化部111は、プログラマがコーディングしたソースコード50の中の対象のオブジェクトの永続化処理のAPIを実行し、永続化処理を行う。ここでいうソースコード50は、一例として、RやPythonのスクリプト言語を使ったソースコードである。なお、永続化部111は、後述するモデル適用部14を用いて、対象のオブジェクトの復元方法を決定して記録する処理を含んでも良い。
復元部112は、永続化された対象のオブジェクトを、第1の復元方法および第2の復元方法のそれぞれのオーバーヘッドのうち小さいオーバーヘッドの復元方法に基づいて、復元する。例えば、復元部112は、後続するモデル適用部14によって対象のオブジェクトに対応付けられた復元方法を用いて、対象のオブジェクトを復元する。なお、復元方法は、対象のオブジェクトのメタデータに記憶される。
処理実行部12は、所定の統計情報を取得するために、対象オブジェクトに対する処理を実行する。例えば、処理実行部12は、ソースコード50にコーディングされた統計情報取得開始から終了までの間の、対象のオブジェクトに対する処理を実行する。かかる実行時間を「DRAM21上での実行時間」というものとする。そして、処理実行部12は、DRAM21上での実行時間を、例えばDRAM21に一時的に保持する。オブジェクトに対する処理は、DRAM21上に保持された対象のオブジェクトに対する読み出しや書き込みの処理であれば良い。
統計情報取得部13は、対象のオブジェクトについて、ハードウェアで取得可能な統計情報を取得する。
例えば、統計情報取得部13は、処理実行部12によって対象のオブジェクトに対する処理の実行時に、ハードウェアで取得可能な統計情報を取得する。ここでいうハードウェアで取得可能な統計情報は、PMEM22の特性として関係のある指標を意味し、アクセス頻度、リード/ライト比、逐次アクセス/ランダムアクセス比を含む。一例として、統計情報取得部13は、アクセス頻度を計算するために、処理実行部12によって処理が実行された際のハードウェアパフォーマンスカウンタから実行命令数並びにDRAM21のリード回数およびライト回数を取得する。統計情報取得部13は、リード/ライト比を計算するために、処理実行部12によって処理が実行された際のハードウェアパフォーマンスカウンタからDRAM21のリード回数およびライト回数を取得する。統計情報取得部13は、逐次アクセス度合いを計算するために、処理実行部12によって処理が実行された際のハードウェアパフォーマンスカウンタから実行命令数およびキャッシュプリフェッチ回数を取得する。逐次アクセスが多い程、キャッシュプリフェッチ回数は多くなる。
アクセス頻度がPMEM22の特性として関係のある指標であるのは、アクセス頻度の高低に基づきPMEM22のDRAM21と比較した性能差が取得できるからである。すなわち、アクセス頻度が低いほどPMEM22とDRAM21の性能差は小さくなり、アクセス頻度が高いほどその性能差は大きくなる。したがって、アクセス頻度の高低に基づきPMEM22のDRAM21と比較した性能差が取得できる。
リード/ライト比がPMEM22の特性として関係のある指標であるのは、PMEM22について、リード性能がライト性能より高いという特性があるからである。すなわち、リード/ライト比が大きいほど、PMEM22の性能は高くなる。したがって、リード/ライト比の大小に基づきPMEM22のDRAM21と比較した性能差が取得できる。
逐次アクセス/ランダムアクセス比(逐次アクセス度合い)がPMEM22の特性として関係のある指標であるのは、PMEM22では、逐次アクセス性能がランダムアクセス性能より高いという特性があるからである。すなわち、逐次アクセスの度合いが高いほど、PMEM22の性能は高くなる。したがって、逐次アクセス/ランダムアクセス比の大小に基づきPMEM22のDRAM21と比較した性能差が取得できる。
モデル適用部14は、統計情報取得部13によって取得された統計情報をPMEMのオーバーヘッドモデルに適用する。例えば、モデル適用部14は、以下のモデル式(1)に、統計情報取得部13によって取得されたアクセス頻度、リード/ライト比、逐次アクセス/ランダムアクセス比を当てはめて、PMEM22のオーバーヘッドPMEM_overheadを計算する。PMEM22のオーバーヘッドは、DRAM21上での対象オブジェクトの処理時間に対する、PMEM22上での処理時間の増加分である。なお、ExetimeDRAMは、処理実行部12によって処理がDRAM21上で実行された時間(DRAM21上での実行時間)を示す。#instは、実行命令数を示す。#readsは、DRAM21のリードアクセス数を示す。#writesは、DRAM21のライトアクセス数を示す。#prefetchesは、キャッシュプリフェッチ回数を示す。係数α、β、γは、事前のベンチマークテストにより決定される。
Figure 2022142648000002
すなわち、モデル適用部14は、PMEM22上のデータをそのまま再利用すべく管理メタデータに再登録する第2の復元方法のオーバーヘッドを取得する。
また、モデル適用部14は、仮にPMEM22からDRAM21へ対象のオブジェクトをコピーした場合の処理時間を、対象のオブジェクトのデータサイズと、PMEM22における逐次リードのスループットを用いて計算する。対象のオブジェクトのデータサイズは、対象のオブジェクトのメタデータから取得されれば良い。PMEM22における逐次リードのスループットについては、事前に計測されたベンチマークを用いれば良いし、PMEM22の仕様から参照されれば良い。すなわち、モデル適用部14は、PMEM22からDRAM21へ対象のオブジェクトをコピーして再登録する第1の復元方法のオーバーヘッドを取得する。
また、モデル適用部14は、第1の復元方法のオーバーヘッドと第2の復元方法のオーバーヘッドとを比較する。そして、モデル適用部14は、第1の復元方法のオーバーヘッドが第2の復元方法のオーバーヘッドより小さい場合には、対象のオブジェクトの復元方法を第1の復元方法とすべく、第1の復元方法を識別する「0」を対象のオブジェクトのメタデータに記録する。モデル適用部14は、第1の復元方法のオーバーヘッドが第2の復元方法のオーバーヘッド以上の場合には、対象のオブジェクトの復元方法を第2の復元方法とすべく、第2の復元方法を識別する「1」を対象のオブジェクトのメタデータに記録する。
[オーバーヘッド比較の一例]
ここで、第1の復元方法のオーバーヘッドと第2の復元方法のオーバーヘッドとの比較の一例を、図3を参照して説明する。図3は、オーバーヘッド比較の一例を示す図である。
図3に示すように、第1の復元方法では、復元以降の処理時間は、PMEM22からDRAM21へ対象のオブジェクトをコピーするオブジェクトコピー時間([1])と、復元後にDRAM21上でのオブジェクト処理時間とを加算した時間となる。ここでは、オブジェクトコピー時間([1])は、20秒であるとする。DRAM21上でのオブジェクト処理時間は、100秒であるとする。なお、復元処理にかかる時間は、厳密には、管理メタデータ210に再登録する処理時間も必要であるが、第2の復元方法でも共通するので、その共通する処理時間を省略するものとする。
これに対して、第2の復元方法では、復元以降の処理時間は、PMEM22上のデータをそのまま再利用するので、PMEM22上でのオブジェクト処理時間となる。すなわち、PMEM_overhead([2])は、PMEM22上でのオブジェクト処理時間からDRAM21上でのオブジェクト処理時間を差し引いた時間となる。ここでは、DRAM21上でのオブジェクト処理時間を第1の復元方法の場合と同様の100秒とし、PMEM22上でのオブジェクト処理時間を200秒とすると、PMEM_overhead([2])は100秒となる。なお、管理メタデータ210に再登録する処理時間は、第1の復元方法の場合と同様に省略している。
したがって、モデル適用部14は、第1の復元方法および第2の復元方法のそれぞれのオーバーヘッドのうち小さい方を選択する際、オブジェクトコピー時間([1])とPMEM_overhead([2])とを比較すれば良い。ここでは、オブジェクトコピー時間([1])がPMEM_overhead([2])より小さいので、モデル適用部14は、オブジェクトコピー時間([1])をオーバーヘッドとする第1の復元方法を選択する。
[メモリ管理機能の説明]
図4は、実施例に係るメモリ管理機能を説明する図である。図4に示すように、DRAM21およびPMEM22に記憶されるオブジェクトは、データとメタデータとを併せて管理される。メモリ管理機能部11が、DRAM21およびPMEM22に記憶されるデータをオブジェクトとして管理する。メモリ管理機能部11のメモリ管理機能は、制御部40によってバックエンドに実装される。このようなメモリ管理機能部11は、DRAM21からPMEM22に対象のオブジェクトをコピーして、永続化処理を実行する。加えて、メモリ管理機能部11は、対象のオブジェクトに対応付けられた復元方法に基づいて、対象のオブジェクトの復元処理を実行する。
[ソースコードの一例]
図5は、ソースコードの一例を示す図である。図5の例では、ソースコード50には、オブジェクト作成API(APplication Interface)、統計情報取得APIおよび永続化処理APIが提供されている。オブジェクト作成APIは、対象のオブジェクトを作成するAPIである。永続化処理APIは、対象のオブジェクトの永続化を行うAPIである。統計情報取得APIは、対象のオブジェクトに対する統計情報を取得するAPIである。統計情報取得APIには、対象のオブジェクトに対してオブジェクト処理を実行する区間として統計情報取得開始および統計情報取得終了が指定されている。
処理実行部12は、オブジェクト作成APIに応じて作成された対象のオブジェクトに対して、統計情報取得APIに基づいて、統計情報取得開始と統計情報取得終了との間のオブジェクト処理を実行する。そして、統計情報取得部13は、オブジェクト処理の実行時に、ハードウェアで取得可能な統計情報を取得する。そして、モデル適用部14は、取得した統計情報を用いて、第1の復元方法のオーバーヘッドおよび第2の復元方法のオーバーヘッドを計算する。そして、モデル適用部14は、オーバーヘッドが小さい復元方法を選択して、対象のオブジェクトのメタデータに記録する。そして、永続化部111は、対象のオブジェクトについて、永続化処理を実行する。
[永続化処理の一例]
図6は、実施例に係る永続化処理の一例を示す図である。図6では、永続化処理が、対象のオブジェクトにおける復元方法を決定して記録する処理を含む場合を説明する。図6に示すように、ソースコード50からの統計情報取得APIに応じて、処理実行部12は、対象のオブジェクトに対するオブジェクト処理を実行する。そして、統計情報取得部13は、オブジェクト処理の実行時に、PMEM22の特性として関係のある、ハードウェアで取得可能な統計情報を取得する。統計情報は、例えば、アクセス頻度、リード/ライト比、逐次アクセス/ランダムアクセス比を含む。
続いて、ソースコード50からのオブジェクト永続化APIに応じて、永続化部111は、対象のオブジェクトをDRAM21からPMEM22へコピーして、永続化処理を実行する。
さらに、モデル適用部14は、仮にPMEM22からDRAM21へ対象のオブジェクトをコピーした場合の処理時間を、対象のオブジェクトのデータサイズと、PMEM22における逐次リードのスループットを用いて計算する。計算結果は、第1の復元方法のオーバーヘッドである。
そして、モデル適用部14は、統計情報取得部13によって取得された統計情報をPMEMのオーバーヘッドモデル(式(1))に適用する。適用結果は、第2の復元方法のオーバーヘッドである。
そして、モデル適用部14は、第1の復元方法のオーバーヘッドと第2の復元方法のオーバーヘッドとを比較し、オーバーヘッドが低い復元方法を決定する。そして、モデル適用部14は、決定した復元方法を識別する識別子をPMEM22上の対象のオブジェクトのメタデータに記録する。
[復元処理の一例]
図7は、実施例に係る復元処理の一例を示す図である。図7に示すように、ソースコード50からのオブジェクト復元APIに応じて、復元部112は、永続化処理時に決定された復元方法で復元処理を実行する。すなわち、復元部112は、対象のオブジェクトのメタデータに記録された復元方法に基づいて、復元処理を実行する。
[統計情報取得処理のフローチャート]
図8は、実施例に係る統計情報取得処理のフローチャートの一例を示す図である。図8に示すように、処理実行部12は、統計情報取得APIの実行依頼を受け付けたか否かを判定する(ステップS11)。統計情報取得APIの実行依頼を受け付けていないと判定した場合には(ステップS11;No)、処理実行部12は、統計情報取得APIの実行依頼を受け付けるまで、判定処理を繰り返す。
一方、統計情報取得APIの実行依頼を受け付けたと判定した場合には(ステップS11;Yes)、処理実行部12は、対象のオブジェクトの統計情報を取得するために、オブジェクト処理を実行する(ステップS12)。
そして、統計情報取得部13は、統計情報を取得し、差分を記録する(ステップS13)。例えば、統計情報取得部13は、統計情報取得開始APIと統計情報取得終了APIとの間の実行命令数、DRAM21のリード回数、ライト回数およびキャッシュプリフェッチ回数を取得するために、ハードウェアパフォーマンスカウンタの差分を取得する。そして、統計情報取得部13は、取得した差分を用いて、ハードウェアで取得可能な統計情報を取得する。そして、統計情報取得部13は、取得した統計情報を一時的にDRAM21に記録する。そして、統計情報取得処理のプロセスは終了する。
[永続化処理のフローチャート]
図9は、実施例に係る永続化処理のフローチャートの一例を示す図である。図9に示すように、永続化部111は、永続化APIの実行依頼を受け付けたか否かを判定する(ステップS21)。永続化APIの実行依頼を受け付けていないと判定した場合には(ステップS21;No)、永続化部111は、永続化APIの実行依頼を受け付けるまで、判定処理を繰り返す。
一方、永続化APIの実行依頼を受け付けたと判定した場合には(ステップS21;Yes)、永続化部111は、対象のオブジェクトをDRAM21からPMEM22へコピーし、永続化する(ステップS21A)。
続いて、モデル適用部14は、対象オブジェクトのコピー時間([1])を算出する(ステップS22)。例えば、モデル適用部14は、仮にPMEM22からDRAM21へ対象のオブジェクトをコピーした場合のコピー時間を、対象のオブジェクトのデータサイズと、PMEM22における逐次リードのスループットを用いて計算する。かかるコピー時間([1])は、第1の復元方法のオーバーヘッドである。
そして、モデル適用部14は、PMEMのオーバーヘッドモデル(式(1))を用いて、PMEM_overhead([2])を算出する(ステップS23)。例えば、モデル適用部14は、モデル式(1)に、統計情報取得処理によって取得されたアクセス頻度、リード/ライト比、逐次アクセス/ランダムアクセス比を当てはめて、PMEM22のオーバーヘッドを示すPMEM_overheadを計算する。PMEM22のオーバーヘッドは、DRAM21上でのオブジェクト処理時間に対するPMEM22上でのオブジェクト処理時間の増加分であり、第2の復元方法のオーバーヘッドである。
そして、モデル適用部14は、第1の復元方法のオーバーヘッド([1])と、第2の復元方法のオーバーヘッド([2])とを比較し、[1]が[2]より小さいか否かを判定する(ステップS24)。[1]が[2]より小さいと判定した場合には(ステップS24;Yes)、モデル適用部14は、対象のオブジェクトの復元方法として第1の復元方法を示す「0」を対象のオブジェクトのメタデータに登録する(ステップS25)。そして、永続化処理のプロセスは終了する。
一方、[1]が[2]以上であると判定した場合には(ステップS24;No)、モデル適用部14は、対象のオブジェクトの復元方法として第2の復元方法を示す「1」を対象のオブジェクトのメタデータに登録する(ステップS26)。そして、永続化処理のプロセスは終了する。
[復元処理のフローチャート]
図10は、実施例に係る復元処理のフローチャートの一例を示す図である。図10に示すように、復元部112は、復元APIの実行依頼を受け付けたか否かを判定する(ステップS31)。復元APIの実行依頼を受け付けていないと判定した場合には(ステップS31;No)、復元部112は、復元APIの実行依頼を受け付けるまで、判定処理を繰り返す。
一方、復元APIの実行依頼を受け付けたと判定した場合には(ステップS31;Yes)、復元部112は、対象のオブジェクトの復元方法について対象のオブジェクトのメタデータを参照する(ステップS32)。そして、復元部112は、復元方法が第1の復元方法を示す「0」であるか否かを判定する(ステップS33)。復元方法が「0」であると判定した場合には(ステップS33;Yes)、復元部112は、第1の復元方法で復元すべく、PMEM22からDRAM21へオブジェクトをコピーし、DRAM21上の対象のオブジェクトのメタデータを管理メタデータ210に登録する(ステップS34,S35)。そして、復元処理のプロセスは終了する。
一方、復元方法が「0」でないと判定した場合には(ステップS33;No)、復元部112は、第2の復元方法で復元すべく、PMEM22上の対象のオブジェクトのメタデータを管理メタデータ210に登録する(ステップS36)。そして、復元処理のプロセスは終了する。
[実施例の効果]
上記実施例では、情報処理装置1は、データをDRAM21からPMEM22にコピーして、データを永続化する。情報処理装置1は、PMEM22からDRAM21へデータをコピーしてデータを復元する第1の復元方法のオーバーヘッドと、PMEM22上のデータをそのまま利用する第2の復元方法のオーバーヘッドとをハードウェアで取得可能な統計情報に基づいて推定する。情報処理装置1は、永続化されたデータを復元する際、推定された第1の復元方法および第2の復元方法のそれぞれのオーバーヘッドのうち小さいオーバーヘッドの復元方法に基づいて、データを復元する。かかる構成によれば、情報処理装置1は、復元以降の処理時間を短縮することができる。
また、上記実施例では、情報処理装置1は、逐次リードのスループットおよびデータのサイズを用いて、データをPMEM22からDRAM21にコピーした場合の処理時間を計算し、計算した処理時間を前記第1の復元方法のオーバーヘッドとして推定する。情報処理装置1は、DRAM21に記憶されたデータに対する所定の処理の実行時にハードウェアで取得可能な統計情報を取得する。情報処理装置1は、ハードウェアで取得可能な統計情報に基づいて、実行時の実行時間に対する増分であってPMEM22で実行された場合の増分を推定し、第2の復元方法のオーバーヘッドとする。かかる構成によれば、情報処理装置1は、第1の復元方法の復元処理の処理時間を第1の復元方法のオーバーヘッドとして計算し、DRAM21でのデータに対する所定の処理の実行時の実行時間に対するPMEM22での増分を第2の復元方法のオーバーヘッドとして計算する。これにより、情報処理装置1は、復元処理と復元後とを含む復元以降の第1の復元方法のオーバーヘッドと第2の復元方法のオーバーヘッドとを推定できる。
また、上記実施例では、ハードウェアで取得可能な統計情報は、PMEM22の特性として関係のある指標を示す統計情報である。そして、情報処理装置1は、PMEM22の特性として関係のある指標を示す統計情報に基づいて、DRAM21でデータに対する所定の処理を実行した時の処理時間に対する増加分を第2の復元方法のオーバーヘッドとして推定する。かかる構成によれば、情報処理装置1は、第2の復元方法の復元以降のオーバーヘッドを推定できる。
また、上記実施例では、ハードウェアで取得可能な統計情報は、アクセス頻度、リード/ライト比、逐次アクセス/ランダムアクセス比を含む。これにより、情報処理装置1は、DRAM21でのデータに対する所定の処理の実行時の実行時間に対するPMEM22での増分を推定することが可能となる。
[その他]
なお、図示した情報処理装置1に含まれる制御部40の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、処理実行部12と統計情報取得部13とを1つの部として統合しても良い。また、モデル適用部14を、モデルを適用して第2の復元方法のオーバーヘッドを計算する第1の計算部と、第1の復元方法のオーバーヘッドを計算する第2の計算部と、双方を比較して対象のオブジェクトの復元方法を決定する決定部とに分散しても良い。管理メタデータ210等を記憶する記憶部(図示しない)を情報処理装置1の外部装置としてネットワーク経由で接続するようにしても良い。
1 情報処理装置
11 メモリ管理機能部
12 処理実行部
13 統計情報取得部
14 モデル適用部
21 DRAM
22 PMEM
30 HDD
40 制御部
111 永続化部
112 復元部
210 管理メタデータ

Claims (5)

  1. 制御部と、
    第1の記憶部と、
    前記第1の記憶部より性能が低い第2の記憶部と、を有し、
    前記制御部は、
    データを前記第1の記憶部から前記第2の記憶部にコピーして、前記データを永続化する永続化部と、
    前記第2の記憶部から前記第1の記憶部へ前記データをコピーして前記データを復元する第1の復元方法のオーバーヘッドと、前記第2の記憶部の前記データをそのまま利用する第2の復元方法のオーバーヘッドとをハードウェアで取得可能な統計情報に基づいて推定する推定部と、
    前記永続化部によって永続化された前記データを復元する際、前記推定部によって推定された第1の復元方法および第2の復元方法のそれぞれのオーバーヘッドのうち小さいオーバーヘッドの復元方法に基づいて、前記データを復元する復元部と、
    を有することを特徴とする情報処理装置。
  2. 前記推定部は、
    前記第2の記憶部に対する逐次リードのスループットおよび前記データのサイズを用いて、前記データを前記第2の記憶部から前記第1の記憶部にコピーした場合の処理時間を計算し、計算した処理時間を前記第1の復元方法のオーバーヘッドとして推定する第1の推定部と、
    前記第1の記憶部に記憶された前記データに対する所定の処理の実行時に前記ハードウェアで取得可能な統計情報を取得する取得部と、
    前記取得部によって取得された前記ハードウェアで取得可能な統計情報に基づいて、前記実行時の実行時間に対する増分であって前記第2の記憶部で実行された場合の増分を推定し、前記第2の復元方法のオーバーヘッドとする第2の推定部と、
    を有することを請求項1に記載の情報処理装置。
  3. 前記ハードウェアで取得可能な統計情報は、前記第2の記憶部の特性として関係のある指標を示す統計情報であり、
    前記第2の推定部は、前記第2の記憶部の特性として関係のある指標を示す統計情報に基づいて、前記第1の記憶部で前記データに対する所定の処理を実行した時の実行時間に対する増加分を前記第2の復元方法のオーバーヘッドとして推定する
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記ハードウェアで取得可能な統計情報は、アクセス頻度、リード/ライト比、逐次アクセス/ランダムアクセス比を含む
    ことを特徴とする請求項1~請求項3のいずれか1つに記載の情報処理装置。
  5. データを第1の記憶部から前記第1の記憶部より性能が低い第2の記憶部にコピーして、前記データを永続化し、
    前記第2の記憶部から前記第1の記憶部へ前記データをコピーして前記データを復元する第1の復元方法のオーバーヘッドと、前記第2の記憶部の前記データをそのまま利用する第2の復元方法のオーバーヘッドとをハードウェアで取得可能な統計情報に基づいて推定し、
    永続化された前記データを復元する際、推定された第1の復元方法および第2の復元方法のそれぞれのオーバーヘッドのうち小さいオーバーヘッドの復元方法に基づいて、前記データを復元する、
    処理をコンピュータが実行することを特徴とする復元制御方法。
JP2021042904A 2021-03-16 2021-03-16 情報処理装置および復元制御方法 Pending JP2022142648A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021042904A JP2022142648A (ja) 2021-03-16 2021-03-16 情報処理装置および復元制御方法
US17/521,222 US20220300382A1 (en) 2021-03-16 2021-11-08 Information processing apparatus and restoration control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021042904A JP2022142648A (ja) 2021-03-16 2021-03-16 情報処理装置および復元制御方法

Publications (1)

Publication Number Publication Date
JP2022142648A true JP2022142648A (ja) 2022-09-30

Family

ID=83284806

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021042904A Pending JP2022142648A (ja) 2021-03-16 2021-03-16 情報処理装置および復元制御方法

Country Status (2)

Country Link
US (1) US20220300382A1 (ja)
JP (1) JP2022142648A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240004788A1 (en) * 2022-07-01 2024-01-04 Micron Technology, Inc. Adaptive configuration of memory devices using host profiling

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10379988B2 (en) * 2012-12-21 2019-08-13 Commvault Systems, Inc. Systems and methods for performance monitoring
US11061572B2 (en) * 2016-04-22 2021-07-13 Advanced Micro Devices, Inc. Memory object tagged memory monitoring method and system
US10592351B1 (en) * 2018-10-16 2020-03-17 EMC IP Holding Company LLC Data restore process using a probability distribution model for efficient caching of data

Also Published As

Publication number Publication date
US20220300382A1 (en) 2022-09-22

Similar Documents

Publication Publication Date Title
CN109960686B (zh) 数据库的日志处理方法和装置
US20130145095A1 (en) Melthod and system for integrating the functions of a cache system with a storage tiering system
JP4126706B2 (ja) データバックアップのための装置、方法、及びプログラム
US8443178B2 (en) Operating system image shrinking apparatus and method and computer readable tangible medium storing a program for operating system image shrinking
US20090182929A1 (en) Method and apparatus for storing and restoring state of virtual machine
JP2010522914A (ja) 順次メディアのリクラメーション及びレプリケーション・システム、方法、及びコンピュータ・プログラム
AU2018306114B2 (en) Dynamic TRIM processing with disk caching
US10891150B2 (en) Storage control method and storage controller for user individual service environment
JP2022142648A (ja) 情報処理装置および復元制御方法
JP5105713B2 (ja) 情報処理装置
Kim et al. {Z-Journal}: Scalable {Per-Core} journaling
US11481140B1 (en) Dynamic base disk mirroring for linked clones
US20070079109A1 (en) Simulation apparatus and simulation method
CN106940626B (zh) 一种获取虚拟机多磁盘间差异数据的方法和系统
CN115712397A (zh) 缓存验证装置、方法及系统
US10210097B2 (en) Memory system and method for operating the same
US9934094B2 (en) Process for verification of randomly generated I/O requests
JP2013171549A (ja) 乱数処理装置、乱数処理方法、及びプログラム
JP6927301B2 (ja) アクセラレータ制御装置、アクセラレータ制御方法、及び、アクセラレータ制御プログラム
CN109032522B (zh) 固态硬盘的数据读取方法以及固态硬盘
US8402235B2 (en) Backup apparatus, backup method and backup program
CN111399774A (zh) 分布式存储系统下基于快照的数据处理方法和装置
CN113515229A (zh) 存储数据的方法、装置和计算机程序产品
CN110688071A (zh) 一种减少数据同步量的数据同步方法及系统
JP6485343B2 (ja) 制御プログラム、制御装置、および制御方法