(57)【要約】【課題】データに対する記憶コストを適正化する。【解決手段】記憶装置と、メモリと、記憶装置へのデータ入出力を制御するプロセッサと、を有するストレージシステムにおいて、プロセッサは、ライト量（ライト対象として受け付けられたデータの総量）及び物理使用量（記憶装置に物理的に格納されたデータの総量）のうちの少なくとも一つである保存量と、リード量（リードされたデータの総量）とをモニタリングし、モニタリング結果に従う、対象期間についての保存量及びリード量を基に、記憶装置の使用に関するコストである記憶コストとしての料金を対象期間について算出する。【選択図】図１
2020155071.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置と、メモリと、前記記憶装置へのデータ入出力を制御するプロセッサと、を有するストレージシステムにおいて、
前記プロセッサは、保存量とリード量とをモニタリングし、
前記保存量は、ライト量と物理使用量とのうちの少なくとも一つであり、
前記ライト量は、ライト対象として受け付けられたデータの総量であり、
前記物理使用量は、前記記憶装置に物理的に格納されたデータの総量であり、
前記プロセッサは、前記モニタリングの結果に従う、対象期間についての保存量及びリード量を基に、前記記憶装置の使用に関するコストである記憶コストとしての料金を前記対象期間について算出する
ことを特徴とするストレージシステム。
【請求項２】
前記プロセッサは、更に、前記対象期間よりも過去のリード量を基に、前記対象期間についての料金を決定する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項３】
前記プロセッサは、前記記憶装置に格納されるデータの量を削減するために圧縮と重複排除とのうちの少なくとも一つであるデータ量削減処理を行うようになっており、
前記プロセッサは、前記記憶装置に保存されているデータのデータ量削減率を、当該データのライト時刻からの経過時間に応じて高くする
ことを特徴とする請求項１に記載のストレージシステム。
【請求項４】
前記プロセッサは、前記記憶装置に格納されるデータの量を削減するために圧縮と重複排除とのうちの少なくとも一つであるデータ量削減処理を行うようになっており、
前記プロセッサは、前記対象期間の料金を、前記対象期間について決定された論理格納コストに基づいて算出し、
前記論理格納コストは、ライト量の単位量当たりの料金であって、物理使用量と物理使用量の単位量当たりの料金である物理格納コストとに基づいて決定された料金である
ことを特徴とする請求項１に記載のストレージシステム。
【請求項５】
前記論理格納コストは、更に、リード量と、リード量の単位量当たりの料金であるリードコストとに基づいて決定された料金である
ことを特徴とする請求項４に記載のストレージシステム。
【請求項６】
前記プロセッサは、
前記対象期間より前までの時系列の物理使用量に基づき、前記対象期間より将来の或る期間である将来期間についての物理使用量を予測し、
前記対象期間より前までの時系列のリード量に基づき、前記将来期間におけるリード量を予測し、
前記予測された物理使用量と、前記物理格納コストと、前記予測されたリード量と、前記リードコストとに基づいて、前記将来期間についての前記論理格納コストを決定する
ことを特徴とする請求項５に記載のストレージシステム。
【請求項７】
前記プロセッサは、
前記対象期間より前までの時系列の物理使用量に基づき、前記対象期間より将来の或る期間である将来期間についての物理使用量を予測し、
前記予測された物理使用量と、前記物理格納コストとに基づいて、前記将来期間についての前記論理格納コストを決定する
ことを特徴とする請求項４に記載のストレージシステム。
【請求項８】
物理使用量の単位量当たりの料金である物理格納コストは、前記記憶装置の複数のユーザに共通であり、
前記プロセッサは、ユーザ毎に、当該ユーザについてライト対象とされたデータのデータ量削減率を基に当該ユーザについて前記対象期間の料金を算出する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項９】
前記プロセッサは、前記対象期間の料金に関する条件であるコスト条件としてユーザ指定の一つ以上のコスト条件を受け付け、
前記プロセッサは、前記一つ以上のコスト条件を満たすことを維持するデータ量削減処理を行う
ことを特徴とする請求項１に記載のストレージシステム。
【請求項１０】
前記プロセッサは、データ量削減処理に関する条件である削減条件としてユーザ指定の一つ以上の削減条件を受け付け、
前記プロセッサは、
前記一つ以上のコスト条件を満たすことを維持するデータ量削減処理が前記一つ以上の削減条件を満たるか否かを判断し、
当該判断の結果が偽の場合、アラートを出す、
ことを特徴とする請求項９に記載のストレージシステム。
【請求項１１】
前記プロセッサは、前記記憶装置に格納されるデータの量を削減するために非可逆圧縮処理を行うようになっており、
前記プロセッサは、前記記憶装置に保存されているデータに関しリード対象とされた頻度をモニタリングし、
前記プロセッサは、前記記憶装置に保存されているデータのうち相対的に低頻度にリード対象とされたデータについて非可逆圧縮処理を行う
ことを特徴とする請求項１に記載のストレージシステム。
【請求項１２】
前記プロセッサは、前記記憶装置に格納されるデータの量を削減するために圧縮と重複排除とのうちの少なくとも一つであるデータ量削減処理を行うようになっており、
前記プロセッサは、前記記憶装置に保存されているデータのリード頻度に応じて当該データのデータ削減率を制御する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項１３】
前記プロセッサは、相対的に高頻度にリード対象とされたデータのデータ量削減率を、相対的に高頻度にリード対象とされたデータのデータ量削減率よりも低くする
ことを特徴とする請求項１２に記載のストレージシステム。
【請求項１４】
ライト対象のデータを受け付けた場合、当該データを記憶装置へ格納し、且つ、当該データのライト時刻をメモリに記録し、
前記記憶装置の使用に関して対象期間の料金を、ライトに関するデータ量と、ライト対象とされたデータのライト時刻から前記対象期間までの経過時間とに基づいて算出する
ことを特徴とするコスト適正化方法。
【請求項１５】
ライト対象のデータを受け付けた場合、当該データを記憶装置へ格納し、且つ、当該データのライト時刻をメモリに記録し、
前記記憶装置の使用に関して対象期間の料金を、ライトに関するデータ量と、ライト対象とされたデータのライト時刻から前記対象期間までの経過時間とに基づいて算出する
ことを計算機に実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、記憶制御、例えば、記憶コストの適正化に関する。
【背景技術】
【０００２】
記憶コストの決定に関する技術として、例えば特許文献１に開示の技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−３１２６８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
産業界の生産性向上に向け、ＩｏＴ（Internet of things）に対する期待が高まっているが、データの格納初期の時点では、当該データの有用性は不明である。このため、企業は、ＩｏＴの初期段階において、ダークデータなどと呼ばれる、価値が不明確な状態で、大量のデータを記憶装置に溜める必要が発生する場合が、実際には多い。ストレージシステムのタイプとして、一般に、オンプレミス型とクラウド型とがあるが、どちらのタイプについても、保存量（保存されるデータの量）が増えれば増える程、データ保存コストが増加する。ＩｏＴにより収集されるデータの量は、ビッグデータと呼ばれることがあるほどに膨大な量となることがある。このような理由から、企業は価値の不明確なデータに、膨大なデータ保存コストを投資する必要がある。そして、保存量は、通常、累積的な量であり、データが削除されない限り増えていくため、時間経過とともに（つまり、保存期間が長い程）データ保存コストは増加する傾向にある。故に、発明の奨励のような技術発展に貢献するためのコストが増加し、結果として、産業の発達を阻害する可能性がある。
【０００５】
以上のような課題は、ＩｏＴ以外の分野についてもあり得る。
【課題を解決するための手段】
【０００６】
記憶装置と、メモリと、記憶装置へのデータ入出力を制御するプロセッサと、を有するストレージシステムにおいて、プロセッサは、ライト量（ライト対象として受け付けられたデータの総量）及び物理使用量（記憶装置に物理的に格納されたデータの総量）のうちの少なくとも一つである保存量と、リード量（リードされたデータの総量）とをモニタリングし、モニタリング結果に従う、対象期間についての保存量及びリード量を基に、記憶装置の使用に関するコストである記憶コストとしての料金を対象期間について算出する。
【発明の効果】
【０００７】
データに対する記憶コストを適正化できる。
【図面の簡単な説明】
【０００８】
【図１】一実施例に係るストレージシステムの概要を示す。
【図２Ａ】リードテーブルの構成を示す。
【図２Ｂ】ライトテーブルの構成を示す。
【図２Ｃ】システムテーブルの構成を示す。
【図２Ｄ】ページテーブルの構成を示す。
【図２Ｅ】コストテーブルの構成を示す。
【図２Ｆ】ユーザ設定テーブルの構成を示す。
【図２Ｇ】表示テーブルの構成を示す。
【図３】Ｉ／Ｏ処理のフローを示す。
【図４Ａ】可逆圧縮処理に関する符号化処理のフローを示す。
【図４Ｂ】可逆圧縮処理に関する復号前処理のフローを示す。
【図４Ｃ】可逆圧縮処理に関する復号処理のフローを示す。
【図５Ａ】非可逆圧縮処理に関する符号化処理のフローを示す。
【図５Ｂ】非可逆圧縮処理に関する復号前処理のフローを示す。
【図５Ｃ】非可逆圧縮処理に関する復号処理のフローを示す。
【図６】ユーザ支援ＧＵＩ（Graphical User Interface）の概要を示す。
【図７】リード頻度の高さに応じて削減率を違えることを模式的に示す。
【図８】一実施例に係るストレージシステムの圧縮処理に関する概要を示す。
【図９】アウトカム設定ＧＵＩの概要を示す。
【図１０】許容誤差と補正値との関係の一例を示す。
【図１１】目標達成度と許容誤差との関係の一例を示す。
【図１２】データモデルとしてオートエンコーダを用いた場合の処理の概要の一例を示す。
【発明を実施するための形態】
【０００９】
以下の説明では、「インターフェース装置」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、下記のうちの少なくとも一つでよい。
・一つ以上のＩ／Ｏ（Input/Output）インターフェースデバイス。Ｉ／Ｏ（Input/Output）インターフェースデバイスは、Ｉ／Ｏデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するＩ／Ｏインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのＩ／Ｏデバイスは、ユーザインターフェースデバイス、例えば、キーボード及びポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス（例えば一つ以上のＮＩＣ（Network Interface Card））であってもよいし二つ以上の異種の通信インターフェースデバイス（例えばＮＩＣとＨＢＡ（Host Bus Adapter））であってもよい。
【００１０】
また、以下の説明では、「メモリ」は、一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
【００１１】
また、以下の説明では、「永続記憶装置」は、一つ以上の永続記憶デバイスである。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス（例えば補助記憶デバイス）であり、具体的には、例えば、ＨＤＤ（Hard Disk Drive）又はＳＳＤ（Solid State Drive）である。
【００１２】
また、以下の説明では、「記憶装置」は、永続記憶装置のような物理的な記憶装置でもよいし、物理的な記憶装置に関連付けられた論理的な記憶装置でもよい。
【００１３】
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサデバイスである。少なくとも一つのプロセッサデバイスは、典型的には、ＣＰＵ（Central Processing Unit）のようなマイクロプロセッサデバイスであるが、ＧＰＵ（Graphics Processing Unit）のような他種のプロセッサデバイスでもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサデバイスは、プロセッサコアでもよい。少なくとも一つのプロセッサデバイスは、処理の一部又は全部を行うハードウェア回路（例えばＦＰＧＡ（Field-Programmable Gate Array）又はＡＳＩＣ（Application Specific Integrated Circuit））といった広義のプロセッサデバイスでもよい。
【００１４】
また、以下の説明では、「ｘｘｘテーブル」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでもよいし、入力に対する出力を発生するニューラルネットワークのような学習モデルでもよい。従って、「ｘｘｘテーブル」を「ｘｘｘ情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、一つのテーブルは、二つ以上のテーブルに分割されてもよいし、二つ以上のテーブルの全部又は一部が一つのテーブルであってもよい。
【００１５】
また、以下の説明では、「ｋｋｋ部」の表現にて機能を説明することがあるが、機能は、一つ以上のコンピュータプログラムがプロセッサによって実行されることで実現されてもよいし、一つ以上のハードウェア回路（例えばＦＰＧＡ又はＡＳＩＣ）によって実現されてもよい。プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置及び／又はインターフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体（例えば非一時的な記録媒体）であってもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
【００１６】
また、以下の説明では、「ストレージシステム」は、オンプレミス型のストレージシステムでもよいし、クラウド型のストレージシステムでもよいし、ＩｏＴにおけるエッジシステム（例えば、複数のセンサからデータを収集するシステム）とコアシステム（例えば、複数のセンサから収集されたデータをエッジシステムから受信するシステム）とのうちの一方又は全体でもよい。
【００１７】
また、以下の説明では、「物理ストレージ」とは、物理的な記憶装置の物理空間を提供する実体的な又はサービスとしての装置を指す。例えば、ストレージシステムのタイプがオンプレミス型の場合、物理ストレージは、SSDやHDDなどの永続記憶装置を有する装置でよいし、一つ以上の永続記憶装置を備えた装置でもよい。また、例えば、ストレージシステムのタイプがクラウド型の場合、物理ストレージは、ストレージサービスでよい。
【００１８】
また、以下の説明では、「仮想ストレージ」とは、論理的な記憶装置の論理空間を提供し物理ストレージからストレージシステムを構成する仮想化されたストレージを指す。例えば、仮想ストレージは、概念的には、後述の論理ページの集合から構成されている論理空間を提供し、TimeSeriesDB、RDB、NoSQLのようなデータベースでもよいし、ブロックストレージ、ファイルストレージ又はオブジェクトストレージでもよい。
【００１９】
また、以下の説明では、「計算資源」とは、物理ストレージから仮想ストレージを構成するための処理の一つ以上の実行主体（例えば、プロセッサ、メモリなど）の各々の総称を指す。クラウド型のストレージシステムについては、例えば、計算資源は、インスタンスに相当してよい。
【００２０】
また、以下の説明では、「論理空間」とは、論理的な記憶装置の一例である仮想ストレージが提供する記憶空間を指し、例えば、論理アドレス空間である。論理空間は、複数の論理ページで構成されてよい。「論理ページ」は、論理空間の一部である。
【００２１】
また、以下の説明では、「物理空間」とは、物理ストレージが提供する記憶空間を指す。物理空間は、複数の物理ページで構成されてよい。「物理ページ」は、物理空間の一部である。物理ページ毎に、データ、当該データの表現形態であるデータモデル、及び、データとデータモデルにより生成されるデータとの差分である誤差といった情報がテーブルにより管理されてもよい。物理ページが論理ページに相対的にマッピングされてよい。論理ページと物理ページのマッピングは、１：１、１：Ｍ、Ｎ：１、Ｎ：Ｍのいずれのマッピングとなってもよい（Ｎ及びＭはいずれも２以上の整数）。
【００２２】
以下、本発明の一実施例を説明する。
【００２３】
図１は、一実施例に係るストレージシステムの概要を示す。
【００２４】
本願発明者がデータに対する記憶コストに関して鋭意検討した結果によれば、ライト対象のデータについて、データの価値、及び、圧縮等の方法で削減可能なデータ量、のいずれについても、当該データの格納初期の時点で特定することは、技術的には困難である。
【００２５】
そこで、本実施例では、論理記憶装置１６００（記憶装置の一例）と、メモリ１１２０と、論理記憶装置１６００へのデータ入出力を制御するプロセッサ１１３０と、を有するストレージシステム１０００において、プロセッサ１１３０は、ライト量（ライト対象として受け付けられたデータの総量）及び物理使用量（論理記憶装置１６００に物理的に格納されたデータの総量）のうちの少なくとも一つである保存量と、リード量（リードされたデータの総量）とをモニタリングし、モニタリング結果に従う、対象期間についての保存量及びリード量を基に、論理記憶装置１６００の使用に関するコストである記憶コストとしての料金を対象期間について算出する。モニタリングによれば、例えば、データのライト時刻（ライト時刻はメモリ１１２０に記録されてよい）から対象期間まで（例えば対象期間の開始又は終了）まで時間が経過すれば、当該データの価値及び削減可能なデータ量のうちの少なくとも一方を評価又は特定することが可能である。例えば、当該データの価値は、当該データについてのリード量の多寡によって評価されてよい。当該データの削減可能なデータ量は、当該データの圧縮率等から特定されてよい。以って、対象期間についての記憶コスト（料金）を適正化することができる。
【００２６】
なお、「ライト時刻」は、ライトに関する所定のアクションが行われた時刻でよく、具体的には、例えば、ライト要求を受け付けた時刻でもよいし、ライト要求に従うライト対象のデータをメモリ１１２０（例えばキャッシュ領域）に格納した時刻でもよいし、ライト対象のデータをそのまま（又は圧縮して）物理ストレージ１９００（物理記憶装置１７００）に格納した時刻でもよい。
【００２７】
また、「対象期間」とは、複数の期間のうちのいずれかの期間でよい。具体的には、例えば、課金が毎月され１０月分の料金を算出するケースでは、複数の月が、複数の期間の一例であり、１０月が、対象期間の一例であり、１０月よりも前の月が、対象期間よりも過去の期間の一例である。
【００２８】
ストレージシステム１０００は、複数（又は一つ）のユーザシステム１２００の各々からＩ／Ｏ（Input/Output）要求を受け付け当該Ｉ／Ｏ要求に応答してデータ入出力を行うようになっている。各ユーザシステム１２００は、ユーザが使用する物理的又は仮想的な計算機でよく、論理記憶装置１６００に対するデータ入出力のためにＩ／Ｏ要求を仮想ストレージ１８００に発行する。
【００２９】
ストレージシステム１０００は、インターフェース装置１１１０、メモリ１１２０及びそれらに接続されたプロセッサ１１３０を有する。
【００３０】
インターフェース装置１１１０は、各ユーザシステム１２００及び物理ストレージ１９００と通信する。
【００３１】
メモリ１１２０は、プログラム群（複数のプログラム）１１４０及びテーブル群（複数のテーブル）１１５０を格納する。
【００３２】
プロセッサ１１３０は、プログラム群１１４０を実行したり、プログラム群１１４０の実行においてテーブル群１１５０を参照及び更新したりする。プログラム群１１４０のうちの少なくとも一つのプログラムがプロセッサ１１３０により実行されることで、論理記憶装置１６００（論理空間）を提供する仮想ストレージ１８００が実現される。仮想ストレージ１８００は、インターフェース装置１１１０を介して受け付けられたＩ／Ｏ要求（ライト要求又はリード要求）に応答して論理記憶装置１６００に対するデータ入出力を行う記憶制御部１４１と、論理記憶装置１６００の使用に関する記憶コスト（料金）を決定する課金部１４２とを有する。記憶制御部１４１は、例えば、ライト先の論理ページに物理ページが未割当ての場合、空きの物理ページを当該論理ページに割り当てる。論理ページに対するデータ入出力は、実際には、当該論理ページに割り当てられている物理ページに対して行われる。
【００３３】
ストレージシステム１０００は、物理ストレージ１９００から仮想ストレージ１８００を構成する。ストレージシステム１０００は、前述した通り、オンプレミス型のストレージシステムでもよいし、クラウド型のストレージシステムでもよいし、例えばＩｏＴにおけるエッジシステムとコアシステムとのうちの一方又は全体でもよい。ＩｏＴにおけるエッジシステムとコアシステムの一方又は全体が採用される場合は、エッジシステムが一時的にデータを格納するための物理ストレージを有し、その物理ストレージよりも大規模な容量を持つ物理ストレージをコアシステムが有して、エッジシステムからコアシステムへのデータの転送を含めて効率化することが期待できる。なお、物理ストレージ１９００が有する物理記憶装置１７００は、一つ以上の永続記憶装置でよく、物理空間は、一つ以上の永続記憶装置に基づく記憶空間（例えばボリューム）でよい。また、論理記憶装置１６００は、仮想ストレージ１８００それ自体でもよく、論理空間は、物理空間の容量と同じ又は異なる容量の記憶空間でよい。
【００３４】
記憶制御部１４１が、各ユーザについて、仮想ストレージ１８００の論理記憶装置１６００の使用に関して、ライト量（及びライト時刻）、リード量、及び物理使用量をモニタリングしている。「ライト量」とは、ライト対象として受け付けられたデータの総量（トータルデータサイズ）である。「物理使用量」とは、論理記憶装置１６００に物理的に格納されたデータの総量、すなわち、物理記憶装置１７００に格納されたデータの総量である。ライト量と物理使用量のうちの少なくとも一つを、上述のように「保存量」と総称することができる。或るデータについてデータ量削減処理が行われた場合、典型的には、当該データについて、物理使用量はライト量よりも小さい。データ量削減処理としては、例えば、圧縮処理と重複排除処理があるが、本実施例では、圧縮処理が採用される。圧縮処理として、可逆圧縮処理と非可逆圧縮処理の少なくとも一方が行われてよい（本実施例では、両方を行うことが可能である）。
【００３５】
以下、本実施例では、ストレージシステム１０００は、クラウド型のストレージシステムとする。このため、ユーザは、仮想ストレージ１８００を提供する事業者（以下、ストレージ事業者）から課金され、ストレージ事業者は、物理ストレージ１９００を提供する事業者（以下、クラウド事業者）から課金されるとする。そして、クラウド事業者がストレージ事業者から課される（請求される）金額は、複数のユーザにそれぞれ対応した複数の物理使用量の合計である総物理使用量が大きい程高い傾向にある金額（総物理使用量が大きくなるにつれて単位量当たりの金額を基に増える金額）である。一方、本実施例においてクラウド事業者が複数のユーザの各々に課す（請求する）金額は、保存量が大きい程高い傾向にあるとは限らない金額（むしろ、経過時間が長い程、保存量の増加量の割に高額とならない（例えば低い）傾向にある金額）である。本実施例に従う技術によれば、ユーザに妥当性の高い金額を課しつつストレージ事業者の採算性を維持することを技術的に実現することができる。
【００３６】
課金部１４２が、各ユーザについて、論理記憶装置１６００の使用に関して対象期間の料金を、保存量及びリード量に基づいて算出される。
【００３７】
ここで、算出される料金は、データのライト時刻から当該対象期間までの経過時間（データ要件の一例）に依存してもよい。例えば、当該対象期間の料金に関し、経過時間が長くなるにつれて、課金部１４２は、論理格納コストを下げてもよい。論理格納コストが低い程、後述するように記憶コストは低い傾向である。これは、経過時間が長くなるにつれてリード量といったデータ価値が向上し、その価値を論理格納コストに技術的に反映することに相当する。なお、「論理格納コスト」とは、論理記憶装置１６００の単位容量当たりの金額（別の言い方をすれば、ライト量の単位量当たりの金額）に相当する。ユーザへ課される金額は、論理格納コストをベースに決定されてよい。一方、論理格納コストに対して物理格納コストがある。「物理格納コスト」とは、物理記憶装置１７００の単位容量当たりの金額（別の言い方をすれば、物理使用量の単位量当たりの金額）に相当する。クラウド事業者から課される金額は、物理格納コストをベースに決定されてよい。
【００３８】
上述したように、課金部１４２は、対象期間の料金を、リード量に基づいて算出する。すなわち、本実施例では、データの格納初期の時点で当該データの価値を特定することは技術的には困難であるという技術的課題を、データ分析等の何らかの処理に必要とされるデータはリードされるという技術的特性に鑑み、一旦保存された後にリードされたデータを価値あるデータとみなし課金対象とし、当該課金対象としたことにより回収される金額を記憶コストに反映する（例えば、回収された金額（又はそれの金額を基に決定された金額）を基に、保存量に従う金額から減じる金額を決定する）。これにより、算出される記憶コストを、保存量だけに基づいて決定される記憶コストよりも下げることを技術的に実現することができる。なお、対象期間についての記憶コストは、対象期間におけるリード量に限らず、保存量及びデータ要件のうち少なくとも保存量にも基づく。これにより、リードされないデータばかり格納されても、ストレージ事業者の採算性を技術的に維持することが期待できる。
【００３９】
ライト時刻からの経過時間が長い程、論理格納コストが低い傾向にあり、結果として、記憶コストが、保存量に従う料金の割に高くならない（例えば低い）傾向にあることが採用されてよい。具体的には、例えば、リード量が大きい程、論理格納コストが低い傾向にあり、結果として、記憶コストが、保存量に従う料金の割に高額とならない（例えば低い）傾向にあることが採用されてよい。
【００４０】
また、例えば、物理格納コストを低額としリードコストを高額とする等の方法により、保存量に従う料金を割安とし、リード量に応じた金額が加算される傾向が採用されてよい。更に、このケースでは、リード量が多い程に課される金額が高いという問題を避けるために、課金部１４２は、対象期間より過去のリード量に応じた金額（例えば、過去に課金済みとみなすことができる金額）を、記憶コストから減じてもよい。
【００４１】
また、保存量は、ライト量と物理使用量のうちの少なくとも物理使用量でよい。この場合、データ量削減効果が高い程（物理記憶装置１７００に格納されるデータ量が大きく削減される程）、ライト量の割に物理使用量が小さく、結果として、記憶コストが、ライト量に従う料金の割に高額とならない（例えば低い）傾向にあることを実現することができる。
【００４２】
また、ストレージシステム１０００については通常複数のユーザが存在することに鑑み、総物理使用量、物理格納コスト及びリードコストは、仮想ストレージ１８００の複数のユーザに共通であるが、課金部１４２は、ユーザ毎に、対象期間について当該ユーザへ課される料金を、当該ユーザについてライト対象とされたデータのデータ量削減率を基に算出してよい。これにより、特定のユーザが削減率の低いデータ（例えば、エントロピーの高い圧縮の効かないデータ、或いは、非重複のデータ）を書き込んだとしても、他のユーザのデータ格納に対する料金に影響を与えないようにできる。
【００４３】
以下、本実施例を詳細に説明する。
【００４４】
図２Ａ〜図２Ｇは、テーブル群１１５０に含まれるテーブルの一例の構成を示す。
【００４５】
具体的には、図２Ａは、リードテーブル１１４１の構成を示す。リードテーブル１１４１は、仮想ストレージ１８００と物理ストレージ１９００の各々について、ユーザ毎に、レコードを有する。仮想ストレージ１８００に関し、各ユーザについて、当該ユーザに対応したレコードは、例えば、ユーザＩＤ、最新期間での論理リード量、及び、最新期間より過去の期間毎の論理リード量を示す情報を保持する。物理ストレージ１９００に関し、各ユーザについて、当該ユーザに対応したレコードは、ユーザＩＤ、最新期間での物理リード量、及び、最新期間より過去の期間毎の物理リード量を示す情報を保持する。各期間について、ここで言う論理リード量及び物理リード量のいずれも、当該期間において増えたリード量（増加量）でもよいし、当該期間までの累積リード量（リード量の累積値）でもよい。「論理リード量」は、論理記憶装置１６００からリードされたデータの量であり、「物理リード量」は、物理記憶装置１７００からリードされたデータ（例えば、非圧縮又は圧縮済のデータ）の量である。仮想ストレージ１８００と物理ストレージ１９００の各々について、ユーザ毎に、最新期間より過去の期間毎のリード量から、時系列のリード量を特定することができる。
【００４６】
図２Ｂは、ライトテーブル１１４２の構成を示す。ライトテーブル１１４２は、仮想ストレージ１８００と物理ストレージ１９００の各々について、ユーザ毎に、レコードを有する。仮想ストレージ１８００に関し、各ユーザについて、当該ユーザに対応したレコードは、例えば、ユーザＩＤ、最新期間でのライト量、及び、最新期間より過去の期間毎のライト量を示す情報を保持する。物理ストレージ１９００に関し、各ユーザについて、当該ユーザに対応したレコードは、例えば、ユーザＩＤ、最新期間での物理使用量、及び、最新期間より過去の期間毎の物理使用量量を示す情報を保持する。各期間について、ライト量及び物理使用量のいずれも、累積値でよい。また、ライト量及び物理使用量のいずれについても、ライトされたデータの量Ａと同じ量Ａの更新データのライトが生じる場合、累積値には、Ａが加算されてもよいし、されないでもよい。仮想ストレージ１８００について、ユーザ毎に、最新期間より過去の期間毎のライト量から、時系列のライト量を特定することができる。同様に、物理ストレージ１９００について、ユーザ毎に、最新期間より過去の期間毎の物理使用量から、時系列の物理使用量を特定することができる。
【００４７】
図２Ｃは、システムテーブル１１４３の構成を示す。システムテーブル１１４３は、仮想ストレージ１８００と物理ストレージ１９００の各々について、ユーザ毎に、レコードを有する。仮想ストレージ１８００に対応したレコードは、仮想ストレージ情報（仮想ストレージ１８００の構成を示す情報）を保持する。物理ストレージ１９００に対応したレコードは、物理ストレージ情報（物理ストレージ１９００の構成を示す情報）を保持する。仮想ストレージ構成情報は、例えば、ストレージシステム１０００内に存在する一つ以上の仮想ストレージ１８００の各々のＩＤを含んでよい。物理ストレージ構成情報も、ストレージシステム１０００に接続されている一つ以上の物理ストレージ１９００の各々のＩＤを含んでよい。すなわち、記憶装置の一例は、一つ以上の仮想ストレージ１８００（一つ以上の論理記憶装置１６００）でよく、また、少なくとも一つの仮想ストレージ１８００（少なくとも一つの論理記憶装置１６００）は、一つ又は複数の物理ストレージ１９００（一つ又は複数の物理記憶装置１７００）に関連付けられていてもよい。また、一つの仮想ストレージ１８００は、複数の論理記憶装置１６００を有してもよく、同様に、一つの物理ストレージ１９００は、複数の物理記憶装置１７００を有してもよい。
【００４８】
図２Ｄは、ページテーブル１１４４の構成を示す。は、ページテーブル１１４４は、物理空間と論理空間の対応関係を保持するテーブルであり、例えば、論理ページと物理ページの対応関係を示す情報を保持する。具体的には、例えば、ページテーブル１１４４は、論理ページ毎にレコードを有する。例えば、各論理ページについて、当該論理ページに対応したレコードは、論理ページＩＤ（当該論理ページのＩＤ）、物理ページＩＤ（当該論理ページに相対的に割り当てられた物理ページのＩＤ）、及び、ページ関連詳細（当該論理ページに関連する詳細）を示す情報を保持する。各論理ページについて、ページ関連詳細は、当該論理ページのリード頻度、ライト頻度、及び圧縮率等でよい。
【００４９】
図２Ｅは、コストテーブル１１４５の構成を示す。コストテーブル１１４５は、コストに関する情報を保持するテーブルであり、例えば、リードコスト（例えば、論理リード量の単位量あたりのコスト）、計算コスト（例えば、圧縮処理や伸張処理にかかるコスト）、物理格納コスト、最新期間での論理格納コスト、及び、過去の期間毎の論理格納コストを示す情報を保持する。なお、「リードコスト」を示す情報として、論理リード量の単位量あたりのコスト（論理リードコストと呼ばれてもよい）を示す情報の他に、物理リード量の単位量あたりのコスト（物理リードコストと呼ばれてもよい）を示す情報が保持されてもよい。
【００５０】
図２Ｆは、ユーザ設定テーブル１１４６の構成を示す。ユーザ設定テーブル１１４６は、ストレージシステム１０００に対してユーザからの設定された情報（例えば、データ要件の少なくとも一部を示す情報）をユーザ毎に保持するテーブルである。例えば、ユーザ設定テーブル１１４６は、ユーザ毎にレコードを有する。各ユーザについて、当該ユーザに対応したレコードは、例えば、ユーザＩＤ、格納コスト条件（例えば、期間当たりの料金）、リードコスト条件（例えば、期間当たりの料金）、誤差率条件（例えば、許容される誤差率）、プライバシレベル条件（例えば、許容されるプライバシレベル）、忘却曲線、誤差目的関数、及び、プリセットを示す情報を保持する。各ユーザについて、当該ユーザに対応したレコードに保持される情報のうち、ユーザＩＤ以外の情報が、ユーザ要件の少なくとも一部に該当する。なお、誤差率、プライバシレベル、忘却曲線、誤差目的関数、及び、プリセットについては、後述する。
【００５１】
図２Ｇは、表示テーブル１１４７の構成を示す。表示テーブル１１４７は、ストレージシステム１０００に関する表示のための情報をユーザ毎に保持する。例えば、表示テーブル１１４７は、ユーザ毎にレコードを有する。各ユーザについて、当該ユーザに対応したレコードは、例えば、ユーザＩＤ、論理格納コスト（例えば、最新期間について予測された論理格納コスト、及び、過去の期間毎の論理格納コスト）、リードコスト（例えば、最新期間について予測されたリードコスト、及び、過去の期間毎のリードコスト）、現状の忘却曲線、現状の誤差目的関数、及び、現状のプライバシレベルを示す情報を保持する。
【００５２】
図３は、Ｉ／Ｏ処理のフローを示す。
【００５３】
ストレージシステム１０００がＩ／Ｏ要求（ライト要求又はリード要求）を受け付けると、記憶制御部１４１が、当該要求がライトかどうかを判断する（Ｓ３００１）。
【００５４】
Ｓ３００１の判断が真の場合は（Ｓ３００１：Ｙ）、記憶制御部１４１は、ライト対象のデータ（受け付けたライト要求に従うデータ）の符号化処理（例えば圧縮処理）を実施する（Ｓ３００２）。記憶制御部１４１は、ページテーブル１１４４から、ライト要求から特定されるライト先の論理ページに物理ページが未割当てであることを特定した場合（Ｓ３００３：Ｙ）、当該論理ページに空きの物理ページを割り当てる（ページテーブル１１４４を更新する）（Ｓ３００４）。その後、記憶制御部１４１は、ライト先の論理ページに割り当てられている物理ページに、データ（例えば、ライト対象のデータ、又は、当該データの符号化（圧縮済）データ）をライトする（Ｓ３００５）。その後、記憶制御部１４１は、ライトテーブル１１４２を更新、具体的には、最新期間でのライト量及び物理使用量を更新する（例えば、現在のライト量や物理使用量に、当該量に関して算出され今回新たに追加されるデータの量である加算量を加算する）（Ｓ３００６）。なお、Ｓ３００６、すなわち、論理記憶装置１６００と物理記憶装置１７００の各々についての今回のライトに従うデータの量を基に、最新期間（つまり、ライト時刻が属する期間）に対応したライト量や物理使用量を更新することが、ライト時刻を記録することの一例でよい（勿論、ライトの都度に、ライト時刻それ自体がライトテーブル１１４２のようなテーブルに記録されてもよい。次に、課金部１４２が、課金計算処理を実施する（Ｓ３００７）。課金計算処理は、データ格納（ライト時刻）からの時間経過に応じて、最新期間（対象期間の一例）についてデータの課金額を決める処理である。
【００５５】
データの圧縮率やデータに対するリード傾向などは、データがライトされるまでは分からないため、データをライトした後に、圧縮率やリード傾向を基に、最新期間の料金が決まる。例えば、課金部１４２は、ライトテーブル１１４２、リードテーブル１１４１及びコストテーブル１１４５から、課金額を算出してよい。具体的には、例えば、過去の実績に基づいて算出する場合、課金部１４２は、以下の式により、過去の一定期間（例えば、過去一ヶ月）での論理格納コストを算出してよい。
・過去（所定期間）のリードした量＝Ｒ１
・過去（所定期間）の保存量＝Ｕ１
・請求する過去（所定期間）の論理格納コスト（＄/GB/Month）＝（Ｕ１＊Ｃ１  −  Ｒ１＊Ｃ２）÷Ｕ１
【００５６】
また、例えば、将来の予測に基づいて算出する場合、課金部１４２は、以下の式により、将来の論理格納コストを算出してよい。
・今後（所定期間）のリード予測量＝Ｒ２
・今後（所定期間）の格納予測量＝Ｕ２
・請求する将来（所定期間）の論理格納コスト（＄/GB/Month）＝（Ｕ２＊Ｃ１  −  Ｒ２＊Ｃ２）÷Ｕ２
【００５７】
この将来の論理格納コストは、表示して今後の投資額を可視化するために用いてもよい。また、この金額を元に、請求金額を補正してもよい。例えば、将来のリードが見込まれる場合は、格納コストの金額を減らすなどが考えられる。なお、物理格納コスト（Ｃ１）（＄/GB/Month）及びリードコスト（Ｃ２）は、コストテーブル１１４５に予め登録されている。
【００５８】
なお、Ｓ３００５の後（又は、ライト要求に従うデータがメモリ１１２０にキャッシュされた後）、ライト要求に対する応答として、記憶制御部１４１により、ライト完了が、ライト要求の送信元のユーザシステム１２００に送信される。ライト要求に従うデータをキャッシュすることが、当該ライト要求から特定されるライト先の論理ページにデータをライトすること（論理記憶装置１６００にデータをライトすること）に相当してもよいし、キャッシュされたデータを実際の物理ストレージ１９００にライトすることが、ライト先の論理ページにデータをライトすること及び当該論理ページに割り当てられている物理ページにデータをライトすること（物理記憶装置１７００にデータをライトすること）に相当してよい。
【００５９】
Ｓ３００１の判断が偽の場合は（Ｓ３００１：Ｎ）、つまり、受け付けられたＩ／Ｏ要求がリード要求の場合は、記憶制御部１４１は、復号前処理を実施する（Ｓ３００８）。復号前処理は、リード元の物理ページを確定するための処理である。その後、記憶制御部１４１は、リード元の物理ページからデータをリードし（Ｓ３００９）、リードしたデータが符号化データであれば復号処理を実施する（Ｓ３０１０）。その後、記憶制御部１４１は、リードテーブルを更新、具体的には、最新期間での論理リード量及び物理リード量を更新する（例えば、現在の論理リード量や物理リード量に、今回リードされたデータの量であり当該リード量に関して算出された量であるリード加算量を加算する）（Ｓ３０１１）。その後、課金部１４２が、課金計算処理を実施する（Ｓ３００７）。なお、復号後のデータ（又は、符号化データは無いため物理ページからリードされたままのデータ）が、リード要求に対する応答として、記憶制御部１４１により、リード要求の送信元のユーザシステム１２００に送信される。物理ページからデータをリードしキャッシュすることが、物理記憶装置１７００からデータをリードすることに相当し、物理リード処理（Ｓ３００９）に含まれる処理でよい。また、キャッシュされたデータ（且つ、必要に応じて復号処理が実施されたデータ）をリード要求に対する応答として返すことが、論理記憶装置１６００からデータをリードすることに相当してよい。
【００６０】
また、圧縮処理や課金計算処理（Ｓ３００７）は、Ｉ／Ｏ要求に応答して行われる処理と非同期の処理でもよい。例えば、一定量のデータがキャッシュされたときに当該一定量のデータについて圧縮処理が実施されてよい。
【００６１】
図３に示したＩ／Ｏ処理における符号化処理（Ｓ３００２）、復号前処理（Ｓ３００８）及び復号処理（Ｓ３０１０）の各々の詳細は、圧縮処理が、可逆圧縮処理であるか非可逆圧縮処理であるかによって異なる。
【００６２】
図４Ａは、可逆圧縮処理に関する符号化処理のフローを示す。図４Ｂは、可逆圧縮処理に関する復号前処理のフローを示す。図４Ｃは、可逆圧縮処理に関する復号処理のフローを示す。
【００６３】
図４Ａに示すように、符号化処理が開始されると、記憶制御部１４１は、ライト対象のデータに対して圧縮処理を実施する（Ｓ４００１）。記憶制御部１４１は、例えばdeflateアルゴリズムなどにより、当該データの可逆圧縮を実施する。カラム型のデータベースの場合は、当該データを含む一つ以上のカラムについて圧縮が実施されてもよい。また、機械学習を用いた可逆圧縮手法などが適用されてもよい。その後、記憶制御部１４１は、圧縮後のデータの量に応じて、物理使用容量に加算される量である使用加算量を算出する（Ｓ４００２）。具体的には、例えば、記憶制御部１４１は、更新又は新規にライトされる物理ページの数と物理ページのサイズとの積を使用加算量として算出する。Ｓ４００２で算出された使用加算量が、図３のＳ３００６において現在の物理使用量に加算される。その後、記憶制御部１４１は、Ｓ４００１の圧縮処理に必要であった計算コスト（例えば計算資源のコスト）を、コストテーブル１１４５における計算コスト情報を基に算出する（Ｓ４００３）。例えば、圧縮処理に必要であったクラウドインスタンスの使用時間×単位時間当たりの料金が、Ｓ４００３で算出される計算コストでよい。この計算コストは、例えば、図１に示すデータ要件に含まれる要素でよく、故に、適正な記憶コストを算出するのに利用されてよい。
【００６４】
図４Ｂに示すように、復号前処理が開始されると、記憶制御部１４１は、ページテーブル１１４４を参照し、リード要求から特定されるリード元の論理ページに割り当てられているリード元の物理ページを特定する（Ｓ４１０１）。その次に、記憶制御部１４１は、特定されたリード元の物理ページの数と物理ページのサイズとに従う量であり現在の物理リード量に加算される量であるリード加算量を算出する（Ｓ４１０２）。Ｓ４１０２で算出されたリード加算量が、図３のＳ３０１１において現在の物理リード量に加算されてよい。Ｓ４１０２では、リード元の論理ページの数と論理ページのサイズとに従う量であり現在の論理リード量に加算される量が算出され、当該量が、図３のＳ３０１１において現在の論理リード量に加算されてよい。
【００６５】
図４Ｃに示すように、復号処理が開始されると（すなわち、物理ストレージからリードしたデータが符号化データであると）、記憶制御部１４１は、当該データに対して伸張処理を実施する（Ｓ４２０１）。この伸張処理は、Ｓ４００１で実施された圧縮処理に対応する処理である。その後、記憶制御部１４１は、当該伸張処理に必要であった計算コストを、符号化時と同様に算出する（Ｓ４２０２）。
【００６６】
図５Ａは、非可逆圧縮処理に関する符号化処理のフローを示す。図５Ｂは、非可逆圧縮処理に関する復号前処理のフローを示す。図５Ｃは、非可逆圧縮処理に関する復号処理のフローを示す。非可逆圧縮の場合は、統計的な推定などにより、記憶制御部１４１は、あまりリードされないデータ（リード頻度が相対的に低い（例えば閾値以下）の論理ページに格納されているデータ）は、高い誤差率でデータ量を大幅に削減し、以って、適正な記憶コストを維持することができる。更に、リード要求に従うリード処理においても、記憶制御部１４１は、データ要件に含まれる誤差率条件に応じて、復号処理で読み込むデータ量を削減し、以って、適正な記憶コストを維持することができる。
【００６７】
図５Ａ〜図５Ｃについて、以下、主に図４Ａ〜図４Ｃと異なる点を説明する。
【００６８】
図５Ａによれば、非可逆の符号化処理は、下記の四点のうちの少なくとも一つとしてのデータ要件、
・誤差目的関数、
・誤差率、
・プライバシレベル、及び、
・将来期待されるリード量、
を入力として行われる。データ要件は、ユーザから後述のユーザ支援ＧＵＩ経由で入力され設定されてもよいし、記憶制御部１４１により算出され設定されてもよい。なお、「誤差率」とは、目的とするデータに対し伸張により得られたデータの誤差の割合であり、「誤差目的関数」とは、平均二条誤差のような予測誤差の指標に相当し誤差率に影響する要件である。「プライバシレベル」は、データの少なくとも一部に適用されるノイズの強度である。
【００６９】
記憶制御部１４１は、誤差率決定を実施し（Ｓ５００１）、その後に、Ｓ５００１で決定された誤差率の範囲で、圧縮処理（データ量削減）を実施する（Ｓ５００２）。その後、Ｓ４００２及びＳ４００３と同様の処理が行われる（Ｓ５００３及びＳ５００４）。
【００７０】
具体的には、例えば、図５Ａに示す符号化処理では、下記のうちの少なくとも一つが行われてよい。
・機械学習手法を用いてライト対象とされたデータの生成モデルを作成する（これを符号化とする）場合、記憶制御部１４１は、ロス関数を誤差目的関数に設定し、誤差率が、入力されたデータ要件としての誤差率に到達したら、生成モデルについての学習を停止したり、学習の限界時に誤差率を満たすように差分のベクトルデータ（誤差データと呼ぶ）と生成モデルとを保存したりする。機械学習の手法として、ニューラルネットワークのほか、スパースコーディングなどの手法（例えばK-SVDなど）、その他一般的に知られた手法が用いられてもよい。誤差目的関数は、ユースケース等に基づくプリセットなどから決められてもよいし、分析アプリケーションの使い方等から強化学習のような手法を用いてユーザのＫＰＩ（Key Performance Indicator）を満たす最適な関数として導出されてもよい。
・データ要件として設定されたプライバシレベルに応じた強度の、Laplace分布などに応じたノイズを、記憶制御部１４１は、ライト対象のデータに付加する。ここで、結局、後でノイズを付加するので、記憶制御部１４１は、学習の誤差率を、ノイズレベル（データ要件として設定されたプライバシレベル）に応じて増加させ、より少ないデータ量のデータを物理ページに格納するようにしてもよい。また、ライト対象のデータに、一般的に知られた差分プライバシなどの手法が適用されてもよいし、ライト対象のデータは、対象データ範囲（例えば、指定されたユーザ数分のデータ）に応じて統計化されてもよい。
・データ要件として設定された将来期待されるリード量は、記憶制御部１４１により、ページテーブル１１４４が示すリード頻度（論理ページ毎のリード頻度）から推測されてもよいし、データの鮮度（例えば、ライト時刻からの経過時間）から推測されてもよい。記憶制御部１４１は、データ要件として設定された将来期待されるリード量を基に、誤差率を決定してもよい。例えば、まったく読まれない可能性の高いデータは、誤差率を高く設定することで、効果的に記憶コストを削減する。
【００７１】
図５Ｂによれば、非可逆の復号前処理では、記憶制御部１４１は、誤差率決定を実施する（Ｓ５１０１）。その後、Ｓ４１０１と同様の処理が行われる（Ｓ５１０２）。
【００７２】
図５Ｃによれば、非可逆の復号処理では、記憶制御部１４１は、例えば上述の生成モデルを使用した伸張処理を実施し（Ｓ５２０１）、リード加算量を算出し（Ｓ５２０２）、Ｓ４２０２と同様の処理を行う（Ｓ５２０３）。
【００７３】
以上により、ユーザにとって必要性の低いと予想されるデータを、効率的に削減し、記憶コストを更に適正化できる。例えば、課金部１４２は、ユーザ毎のデータの圧縮率に応じて、ユーザ毎に記憶コストを決定することで、ユーザ毎により適正な記憶コストを決定できる。例えば、特定のユーザがエントロピーの高い圧縮の効かないデータを書き込んだとしても、当該ユーザの相対的に削減率の低い物理使用量が他のユーザの記憶コストに影響を与えないようにすることができる。
【００７４】
図６は、ユーザ支援ＧＵＩの概要を示す。
【００７５】
ユーザ支援ＧＵＩ６０００は、記憶コストの適正化に関してユーザを支援するためのＧＵＩである。ユーザ支援ＧＵＩ６０００に表示される情報は、表示テーブル１１４７のうち、対応するユーザに対応したレコードに保持されている情報に従う。ユーザ支援ＧＵＩ６０００に表示される項目は、主に設定項目６０１０と表示項目６０２０に分類される。
【００７６】
設定項目６０１０については、例えば、許容コスト設定６０１１、許容誤差率６０１２、許容プライバシレベル６０１３、忘却曲線６０１４、誤差目的関数設定６０１５、及び、プリセット６０１６といったＵＩがあってよい。
【００７７】
許容コスト設定６０１１は、ユーザの許容できるコストを設定するためのＵＩ（User Interface）である。図６の例によれば、許容コスト設定６０１１では、格納コストとして、“0.01$/GB/month or $1,000/month”が設定される。“0.01$/GB/month”は、論理格納コストの一例であり、月に１ＧＢ当たり０．０１＄以下を意味する。“$1,000/month”は、論理格納コストと保存量とに基づくコストの一例であり、月に合計１０００＄以下であることを意味する。また、リードコストとしては、“0.1$/GB or $10,000/month”が設定される。“0.1$/GB”は、リード量の単位量当たりの料金の一例であり、１ＧＢ当たり０．１＄以下を意味する。“$10,000/month”は、リード量の単位量当たりの料金とリード量とに基づくコストの一例であり、月に合計１００００以下であることを意味する。
【００７８】
許容誤差率６０１２は、ユーザの許容可能なデータの誤差率（誤差率条件）を設定するためのＵＩである。
【００７９】
許容プライバシレベル６０１３は、ユーザの許容できるプライバシレベルを設定するためのＵＩである。プライバシレベルとは、上述したように、元のデータに付与されるノイズの強度（レベル）であり、例えば、元のデータから個人の特定を困難にする際のノイズレベルでよい。
【００８０】
忘却曲線６０１４は、ユーザ所望の忘却曲線（例えば、時間経過と誤差量の関係）を設定するためのＵＩである。
【００８１】
誤差目的関数設定６０１５は、生成モデルの学習のロス関数などに用いる、誤差の指標を設定するためのＵＩである。ここでは、例えば、MSE（Mean Squared Error）や、KLダイバージェンス、±10% （割合）以内、±10 （差分）以内、などの指標が、ユーザのデータや用途に応じて、明示的に設定されてもよい。記憶制御部１４１は、ユーザのデータ特性やデータへのアクセスパターンなどから、統計的に誤差目的関数を導出してもよい。
【００８２】
プリセット６０１６は、設定項目６０１１〜６０１５の設定値のパッケージとアプリケーションの種類などとの対応付けを示す情報であるプリセット（例えば名称）を設定するためのＵＩである。プリセットが選択された場合、当該プリセットに関連付けられている設定値群に含まれる複数の設定値が自動的にそれぞれ複数の設定項目について設定される。
【００８３】
設定項目６０１１〜６０１６の少なくとも一つは、ユーザから設定されることに代えて、ストレージシステム１０００が自動的に計算して設定してもよい。
【００８４】
次に、表示項目６０２０については、例えば、コスト６０２１、忘却曲線６０２２、現在の誤差目的関数６０２３、現在のプライバシレベル６０２４、及びメッセージ６０２５といったＵＩがあってもよい。
【００８５】
コスト６０２１は、図に示すように、今までとこれから（予測）の時間経過と格納コストの関係をグラフで表示する。各データのリード量や格納時刻、圧縮率や許容誤差率と忘却曲線などから、格納コストを算出してトータルの予想額が計算されてもよい。このグラフにより、ユーザは、自分のデータやアクセスの特性に応じた料金の予測を知ることができる。
【００８６】
忘却曲線６０２２は、ユーザが設定した忘却曲線の要件とストレージシステム１０００の現在の状態から、課金部１４２により計算された忘却曲線を表示する。例えば、図に記載されている通り、縦軸を誤差量、横軸を時間経過として表示してもよい。
【００８７】
現在の誤差目的関数６０２３は、誤差目的関数設定６０１５の設定値とストレージシステム１０００の現在の状態から、課金部１４２により算出された誤差目的関数を表示する。例えば、Mean Squared Error （MSE）など、一般的な名称として表示してもよいし、ユーザの設定した数式を表示してもよい。
【００８８】
現在のプライバシレベル６０２４は、許容プライバシレベル６０１３の設定値とストレージシステム１０００の現在の状態から、課金部１４２により算出された現在のプライバシレベルを表示する。例えば、ノイズ付加時に使用するLaplace分布のパラメータ（分布形状、度合いなど）を表示してもよい。
【００８９】
メッセージ６０２５は、設定項目６０１１〜６０１５の設定値と、ストレージシステムの現在の状態から、設定項目６０１１〜６０１５の少なくとも一つを維持することが不可能であることが推測された場合に、その旨としてのアラートをユーザに通知する。これにより、ユーザは、適正な記憶コストを維持するために、少なくとも一つの設定値を変更する或いはストレージシステム１０００の使用方針を変更するといったことを検討することができる。
【００９０】
以上のＧＵＩ６０００により、データ要件のストレージシステム１０００への設定と、それに対するストレージシステムからユーザへのフィードバックを実現することができる。ＧＵＩ６０００に表示の情報は、二つ以上の異なる画面に表示されてもよい。
【００９１】
可逆圧縮処理及び非可逆圧縮処理の少なくとも一つを行うためのストレージシステム１０００は、以下のように構成されてよい。なお、以下の説明において、用語の一例は下記の通りである。
・差分情報：データモデルからの生成値と元データとの誤差を表す情報（例えば配列）。差分情報は、可逆圧縮に関し使用される情報であり、故に、データモデルからの生成値と元データとの正確な差分値に相当。正確な差分値は、元データの数値の最小単位に応じてシンボリックに表現（例えば、整数型であれば１単位、小数点型であれば一般的な浮動小数点のビット表現など）したうえで差分を求めてもよい。差分情報の効率的圧縮のため、Context Adaptive Arithmetic Codingなどの予測確率分布を用いる圧縮手法を併用してもよい。具体的には、データモデルをシンボルの発生確率の予測に利用し、算術符号化されたデータを、差分情報の一部として保持してもよい。
・誤差情報：データモデルからの生成値と元データとの誤差を量子化した情報（例えば配列）。量子化の方法は、例えば、ログスケールに基づいてもよいし、リニアスケールに基づいてもよい。誤差情報は、非可逆圧縮に関し使用される情報であり、故に、データモデルからの生成値と元データとの正確な差分ではないが、圧縮（前述した差分情報による手法を含む）が効きやすい。
・データモデル：データの生成規則、モデル及び実行主体。
・データセット：アプリケーションプログラムのようなプログラムから見た一つの論理的な電子データの塊であり、例えば、レコード、ファイル、キーバリューペア及びタプルのうちのいずれでもよい。データセット群の要素。
・データセット群：一つのモデルに対応する一つ以上のデータセット。
【００９２】
図８は、ストレージシステム１０００の圧縮処理に関する概要を示す。
【００９３】
ストレージシステム１０００は、ライト対象の複数のデータセットであるライト対象のデータセット群を、当該ライト対象のデータセット群の規則性を示し一つ以上の入力値を入力としデータセット群を出力とするデータモデルと化し、当該データモデルを、当該ライト対象のデータセット群のキーに関連付けて辞書化することができる。データモデルの辞書化が、データセット群のライトに相当してよい。
【００９４】
データモデルは、典型的には、数式処理、波形の形状及び確率分布などの規則性を表現したバイナリ列でよい。データモデル（及び後述の入力ベクトル）のデータ量の増加量は、ライト対象のデータセット群のデータ量の増加量に比して小さくてよい。このため、データ量の削減の効果は、ライト対象のデータセット群のデータ量が大きい程、高いことが期待される。
【００９５】
データモデルは、一つ以上の入力値のようなデータと違い、入力されたデータを処理する実行主体に相当してよい。データモデルとして、例えば、ニューラルネットワークのようなモデルを採用することができる。一般に、ニューラルネットワークのようなモデルは、故障率の算出や画像の認識といったような分析に使用される。本実施例は、そのようなモデルを、データセット群の規則性を示すデータモデルの一例として採用し、ストレージシステム１０００は、一つ以上のデータモデル（実行主体）を一つ以上のデータセット群に代えて保持する新規なストレージシステムでよい。なお、データモデルには、データモデルとして採用されるモデルの種類によっては必ずしも後述の入力ベクトルを必要としない（例えば、入力層のユニットが一個で、入力値として、０からＮまでの決められた整数値を用いる場合は、あえてそれを保存する必要はない）。
【００９６】
論理記憶装置１６００に、例えばモデル辞書１５０が格納されてよい。モデル辞書１５０は、データモデルの辞書であり、キー毎に、データモデルと入力ベクトルを格納してよい。キーは、例えば、ライト先のアドレス（例えばＬＢＡ（Logical Block Address））を含んでよい。
【００９７】
ストレージシステム１０００において、時系列データ１００（例えば、センサによって計測された値の時系列のデータなどの、数値化可能な情報を含む配列）の各部分が、ライト対象のデータ（具体的にはデータセット群）でよい。以下、図８の説明において、主に一つのデータセット群１０１を例に取る。データセット群１０１は、所定のデータセット範囲（ここでは時刻範囲）に属する複数のデータセットでよい。ここで言う「データセット」は、時刻（計測時刻）と値（計測値）を含んでよい。データセット範囲がｘ秒間であって、ｙ個のデータセットがデータセット群１０１を構成している場合、ｙ／ｘが、入力周波数である。例えば、ｘ＝１０、ｙ＝１０００の場合、入力周波数は、１００（１０００／１０）Ｈｚである。データセット群１０１は、任意次元の数値の配列であってよい。例えば、センサーデータの場合は、センサー×時間フレームの2次元、画像データの場合は、色空間×縦×横の3次元となり、動画データの場合は、色空間×縦×横×時間フレームの4次元となる。
【００９８】
以下、データセット群１０１のライト処理、リード処理及び検索処理の一例の概要を説明する。
【００９９】
＜データセット群１０１のライト処理＞
【０１００】
プロセッサ１１３０は、データセット群１０１のライト要求をユーザシステム１２００から受ける（Ｓ１０１）。ライト要求には、ライト先のアドレスが関連付けられている。ライト対象のデータセット群１０１はメモリ１１２０にキャッシュされる。
【０１０１】
プロセッサ１１３０は、当該ライト要求を受けた場合、当該データセット群１０１との一致度がもっとも高いデータモデルである一致データモデルをモデル辞書１５０から検索し、その一致データモデルとの一致度と、第１閾値との比較により、一致判断を行う（Ｓ１０２）。
【０１０２】
一致度とは、二個の、対象となるデータモデルやデータセット群やそれらから生成されるハッシュ値（ローリングハッシュ、ファジーハッシュ、Locality Sensitive Hash等）等について、その類似性を表す指標である。指標の例（例えば、複数値に対する指標の例）として、コサイン類似度などが挙げられる。その他、二乗平均誤差や、交差エントロピーなどの一般的に知られた手法を用いてもよい。
【０１０３】
例えば、具体的な一致度の比較方法として、以下の（Ｃ１）及び（Ｃ２）の手法が考えられる。一致判断（及び後述の類似判断）は、下記の（Ｃ１）及び（Ｃ２）のいずれの比較を含んでもよいが、本実施例では、（Ｃ１）の比較が採用される。
（Ｃ１）データモデル比較。例えば、プロセッサ１１３０は、データセット群１０１のデータモデルを生成する処理と、当該データセット群１０１に基づく入力ベクトルを生成する処理とを含んだエンコード処理を行う。プロセッサ１１３０は、生成されたデータモデル（又はそれのハッシュ値）と、モデル辞書１５０における各データモデル（又はそれのハッシュ値）との一致度を計算する。
（Ｃ２）データセット群比較。例えば、プロセッサ１１３０は、モデル辞書１５０における各データモデルについて、当該データモデルに関連付いている入力ベクトルを用いてデータセット群を復元する。プロセッサ１１３０は、データセット群１０１と、復元された各データセット群との一致度を計算する。また、（Ｃ１）と同様に、復元したデータセット群で比較をせずに、あらかじめ計算しておいたハッシュ値（エンコード元のデータセット群の一部又は全部）で比較してもよい。ハッシュの手法は、ファジーハッシュやローリングハッシュなどの方法を用いてもよい。
【０１０４】
モデル辞書１５０の検索処理について、具体的には、一般的に知られた技法（ハッシュテーブルなど）を用いて、高速に処理してもよい。また、Ｈｏｐｆｉｅｌｄネットワークなどを用いて、類似のモデルを想起するようにしてもよい。
【０１０５】
また、一致判断における比較処理について、具体的には、一致データモデルについて、
一致度が第１閾値以上のとき、一致すると判定する。
【０１０６】
その他、当該ライト要求に対応して、データモデルを識別するための情報をストレージシステム１０００に通知することで、ユーザの指定するデータモデルを一致すると判定する方法を用いてもよい。
【０１０７】
Ｓ１０２の判断結果が偽の場合（Ｓ１０２：Ｎ）、プロセッサ１１３０は、エンコード処理において生成され、当該データセット群１０１のキーが関連付けられた新規データモデル及び入力ベクトルを、モデル辞書１５０に追加する（Ｓ１０３）。
【０１０８】
Ｓ１０２の判断結果が真の場合（Ｓ１０２：Ｙ）、プロセッサ１１３０は、一致データモデルに関連付いているキーと入力ベクトルを更新（例えば、ライト先のアドレスを当該キーに追加）する（Ｓ１０４）。入力ベクトルは、一致データモデルと当該データセットとの差分情報を含む。ただし、まったく差が無い場合などは、入力ベクトルの保存の必要が無い場合も考えられる。これにより、少なくとも重複したデータモデルのライトが回避され、さらに入力ベクトルのライトも場合によって回避される。これにより、データ量の一層の削減が期待できる。なお、Ｓ１０２の一致判断は、ライト処理とは非同期に行われてもよい。すなわち、プロセッサ１１３０は、一時、ライト対象のデータセット群１０１のデータモデル及び入力ベクトルがモデル辞書１５０に格納し、定期的に（又は不定期的に）、モデル辞書１５０に、データモデル及び入力ベクトルの重複があるか否かを判断してもよい。その判断結果が真の場合、プロセッサ１１３０は、重複したデータモデル及び入力ベクトルをモデル辞書１５０から削除してもよい。
【０１０９】
プロセッサ１１３０は、ライト要求の完了応答を返す（Ｓ１０５）。なお、当該完了応答は、Ｓ１０３又はＳ１０４が行われた場合に返されてもよいし、データセット群１０１がメモリ１１２０に格納された場合に返されてもよい。
【０１１０】
なお、データモデルは、データセット群１０１における最大値１０８及び最小値１０７をそれぞれ正規化した値である正規化最大値（例えば“１”）及び正規化最小値（例えば“０”）に基づいてよい。これにより、一致データモデル（又は後述の類似データモデル）が見つかる確率が高まる。
【０１１１】
そして、入力ベクトルは、下記（ａ）〜（ｄ）、
（ａ）データセット群１０１における最大値１０８（正規化前の最大値）、
（ｂ）データセット群１０１における最小値１０７（正規化前の最小値）、
（ｃ）データモデルに対する入力値１０５、及び、
（ｄ）データセット群１０１とパターン１０３との差分を示す差分情報１０６、
を含む。データモデルとして入力値が静的な（例えばデータ１００におけるｘ軸（図８では時間軸）の値を入力とする）ニューラルネットワークを用いる場合は、ｘ軸の値を覚える必要は無いため、入力ベクトルのうちの少なくとも入力値１０５は省略可能である。また、データモデルとしてオートエンコーダなどの生成モデルを用いる場合は、入力値１０５は、特徴量ベクトルなどでよい。パターン１０３は、データモデルに入力値１０５が入力されることにより当該データモデルから出力されたデータセット群である。（ａ）及び（ｂ）の情報は無くてもよいが、（ａ）及び（ｂ）があることで（ｄ）の情報量の削減が期待できる。また、（ｄ）は無くてもよい。
【０１１２】
入力ベクトル中の入力値１０５をデータモデルに入力することで当該データモデルから出力されたパターン１０３（データセット群）に、当該入力ベクトル中の差分情報１０６（且つ、最小値１０７及び最大値１０８）を反映することで、誤差の無いデータセット群１０１の復元が可能である。なお、（ｄ）（差分情報１０６）は、圧縮され、入力ベクトルは、（ａ）〜（ｃ）と圧縮された（ｄ）とを含んでよい。これにより、入力ベクトルのデータ量を削減することが期待できる。（ｄ）の圧縮は、既存の圧縮方法に従う圧縮でよい。また、圧縮は、ソフトウェア処理であってもハードウェア処理であってもよい。また、（ｃ）自体も圧縮対象となってよい。（ｃ）や（ｄ）の圧縮にシンボルの確率分布の予測を用いる圧縮手法を使う場合は、前述したようにデータモデルを確率分布の予測に用いてもよい。その場合、（ｃ）と（ｄ）にそれぞれ別のデータモデルを用い、用いたデータモデルをまとめてデータモデルとして扱ってもよい。
【０１１３】
＜データセット群１０１のリード処理＞
【０１１４】
プロセッサ１１３０は、データセット群１０１のリード要求を受ける（Ｓ１２１）。リード要求には、リード元のアドレスが関連付けられている。
【０１１５】
プロセッサ１１３０は、リード元のアドレスを含んだキーに対応したデータモデル及び入力ベクトルをモデル辞書１５０から特定する。プロセッサ１１３０は、特定された入力ベクトルを特定されたデータモデルに入力することでデータセット群を復元する処理を含んだ復号処理を行う（Ｓ１２２）。プロセッサ１１３０は、復元されたデータセット群１０１を返す（Ｓ１２３）。
【０１１６】
＜データセット群１０１の検索処理＞
【０１１７】
プロセッサ１１３０は、検索要求を受ける（Ｓ１３１）。検索要求には、検索条件が関連付けられている。検索条件として、種々の条件を採用可能である。例えば、検索条件は、検索対象のデータセット群１０１それ自体、又は、当該データセット群１０１のデータモデルである。
【０１１８】
プロセッサ１１３０は、当該検索条件に適合するデータモデルである対象データモデルをモデル辞書１５０から検索する（Ｓ１３２）。例えば、検索条件がデータセット群１０１の場合、プロセッサ１１３０は、エンコード処理を行うことで、検索条件（データセット群１０１）のデータモデルを生成し、当該データモデルに適合する（例えば一致度が第１閾値より小さい）対象データモデルを検索する。また、例えば、検索条件がデータセット群１０１のデータモデルの場合、プロセッサ１１３０は、当該データモデルに適合する（例えば一致度が第１閾値より小さい）対象データモデルを検索する。
【０１１９】
対象データモデルが見つかった場合、プロセッサ１１３０は、見つかった当該対象データモデルに関連付けられているキーをモデル辞書１５０から取得し（Ｓ１３３）、取得したキーを返す（Ｓ１３４）。
【０１２０】
つまり、検索処理によれば、プロセッサ１１３０は、対象データモデルからデータセット群を復元して返すことに代えて、対象データモデルに関連付いているキーを返す。これにより、検索要求元へのデータセット群の転送は不要である。また、検索処理では、データセット群の復元、及び、データセット群の比較が行われず、データモデルの比較が行われる。このため、検索処理の負荷は小さく、故に、検索処理の高速化が期待できる。また、検索処理に、後述するモデルハッシュテーブル４０２などが用いられてもよい。
【０１２１】
以上が、データセット群１０１のライト処理、リード処理及び検索処理の一例の概要である。
【０１２２】
なお、データセット群１０１のデータモデルとの一致度が第１閾値未満第２閾値以上のデータモデルである類似データモデルがあれば（第１閾値＞第２閾値）、プロセッサ１１３０は、当該類似データモデルのモデルＩＤと、当該類似データモデルとデータセット群１０１のデータモデルとの差分データとを含んだデータモデルを、データセット群１０１のデータモデルとして、生成してもよい。これにより、データモデルのデータ量の削減が期待でき、以って、モデル辞書１５０のサイズの削減が期待できる。さらに、例えばデータモデルとしてオートエンコーダを用いた場合などにおいて、オートエンコーダのエンコーダおよびデコーダを、複数の異なるデータセット群１０１で共通に利用することが考えられる。その場合に、一つのデータモデルを、複数の異なるデータセット群１０１と対応させ、複数の異なるデータセット群１０１ごとに対応する前記データモデルに対する入力ベクトルを、それらの参照関係を含めモデル辞書１５０に保存するようにして、データモデルを共通化して、モデル辞書１５０のサイズを削減してもよい。
【０１２３】
また、ストレージシステム１０００が複数のノード（物理的なストレージ装置の一例）で構成されている場合、複数のノードが、モデル辞書１５０を共有してよい。これにより、データ格納の効率化が期待できる。
【０１２４】
データモデルは、上述したように、数式処理、波形の形状、確率分布などの規則性を表現したバイナリ列である。データモデルは、入力ベクトルを入力としデータセット群を出力する。データモデルに、例えば、一般的なニューラルネットワークや、生成モデル（例えば、ＧＭＭ（Gaussian Mixture Models）、ＨＭＭ（Hidden Markov Model）、ＳＣＦＧ（Stochastic Context-Free Grammar）、ＧＡＮ（Generative Adversarial Nets）又はＶＡＥ（Variational Auto Encoder））、遺伝的プログラミングなどが用いられてもよい。また、データモデルの情報量削減のためにMimic Model等のモデル圧縮が適用されてもよい。
【０１２５】
不可逆変換の圧縮に関し、プロセッサ１１３０は、ライト対象のデータセット群とデータモデルからの出力としてのデータセット群との誤差と、許容誤差とに基づく情報である誤差情報を生成する処理とを行うことができる。すなわち、差分情報に代えて誤差情報を採用することができる。プロセッサ１１３０は、ライト対象のデータセット群のキーが関連付けられたデータモデルに加えて、生成された誤差情報を含んだ入力ベクトルを、論理記憶装置１６００に格納してよい。伸張されたデータセット群は、データモデルから出力されたデータセット群が、当該データモデルに関連付いている入力ベクトル中の誤差情報を用いて補正されたデータセット群でよい。許容誤差が０（つまり、誤差が全く許容されない）であれば、伸張されたデータセット群は、符号化処理前のデータセット群と同一である。許容誤差が０より大きければ、伸張されたデータセット群と、符号化処理前のデータセット群との間では、許容誤差以下の誤差がある。本実施例では、第１閾値（一致判断で使用される閾値）は、可変値であり、許容誤差が大きいと小さい傾向にある。許容誤差が０より大きい場合、下記のうちの少なくとも一つが期待できるため、一層のデータ量の削減が期待できる。
・差分情報よりも誤差情報の方が圧縮が効きやすい。
・データモデルの一致の範囲が広がり、結果として、削除可能なデータモデルが多くなる。
【０１２６】
テーブル群１１５０は、図示しないストア管理テーブルを含んでよい。ストア管理テーブルは、データストア（例えば、データベーステーブル）毎に、ストアＩＤ（データストアのＩＤ）、メタ情報、忘却制御情報及びアウトカム情報といった情報を格納してよい。
【０１２７】
メタ情報は、データストアのメタ情報であり、例えば、カラム数、カラム名、開始時刻及び入力周波数のうちの少なくとも一つを含んでよい。メタ情報は、更に、許容誤差を含む。なお、許容誤差は、データストアの単位で関連付けられることに代えて、データモデルの単位で関連付けられてもよい。また、メタ情報は、更に、第１閾値（一致判断で使用される閾値）を含んでもよい。
【０１２８】
忘却制御情報は、データストアの忘却を制御するための情報、具体的には、当該データストアに対応した許容誤差、及び、当該データストアに属するデータモデルから出力されたデータセット群のうち誤差が許容誤差の範囲外にあるデータセットの補正誤差を調整するための情報でよい。本実施例では、誤差が許容誤差の範囲にある出力データセットは、当該誤差と許容誤差の範囲とに基づき補正されるが、「補正誤差」は、当該補正後の出力データセットの誤差でよい。忘却制御情報は、例えば、忘却曲線情報でよい。忘却曲線情報は、記憶の度合い（例えば、レゾリューション、周波数など）の時間経過による動的な変化（例えば、エビングハウスの忘却曲線）を示す情報でよい。忘却曲線情報は、補正誤差の調整処理である第１の誤差調整処理において参照されてよい。本実施例では、第１の誤差調整処理に加えて（又は代えて）、許容誤差の調整処理である第２の誤差調整処理を行うことができる。第１及び第２の誤差調整処理の少なくとも一つは、後述の利用処理の発生契機で行われてもよいし、アウトカム情報の更新の契機で行われてもよいし、全データストアの使用率が閾値を超えたことを契機に行われてもよい。
【０１２９】
アウトカム情報は、目的（例えば、データ分析アプリケーションのようなアプリケーションの目的）を示す情報である目的情報（例えば、ＫＰＩ（Key Performance Indicator））と、目的の達成度を示す情報である達成度情報とを含んでよい。アウトカム情報は、更に、目的達成度の下限値を含んでいてもよい。
【０１３０】
ライト要求に、例えば、ストアＩＤ、モードＩＤ、キー、及びライト対象（データモデル又はデータセット群）が関連付けられていてよい。モードＩＤとしては、“モデル”（ライト対象がデータモデル）と“データセット群”（ライト対象がデータセット群）のいずれかが指定されてよい。また、キーは、カラム名、時刻等のレコード情報の少なくとも一部（例えば、蓄積先のアドレス相当の情報）を含んでよい。
【０１３１】
プロセッサ１１３０は、ライト要求で指定されたストアＩＤに対応するレコード（ストア管理テーブルにおけるレコード）を参照し、指定されたモードＩＤが“モデル”か否かの判断Ｄを行ってよい。判断Ｄの結果が偽の場合、プロセッサ１１３０は、ライト対象のデータセット群の符号化処理を行ってよい。具体的には、例えば、プロセッサ１１３０は、ライト対象のデータモデルとの一致度が第１閾値以上のデータモデルである一致データモデルが存在するか否かの一致判断を行ってよい。この一致判断では、参照される第１閾値は、可変値であり、当該データモデルが属するデータストアに対応した許容誤差が大きいと小さい傾向にある。一致判断の結果が真の場合、プロセッサ１１３０は、データセット群とパターン（一致データモデルからの出力としてのデータセット群）との誤差と、許容誤差とに基づく情報である誤差情報を生成し、生成した誤差情報を圧縮することで、新たな入力ベクトルを完成させてよい。一致判断の結果が偽の場合、プロセッサ１１３０は、所定の処理（例えば、生成されたデータモデルの格納）を行った後、データセット群とパターン（データモデルからの出力としてのデータセット群）との誤差と、許容誤差とに基づく情報である誤差情報を生成し、生成した誤差情報を圧縮してよい。誤差情報は、例えば、パターンを構成する複数のデータセット群にそれぞれ対応した複数の補正値の配列でよい。
【０１３２】
判断Ｄの結果が真の場合（又は、上記符号化処理の後）、プロセッサ１１３０は、蓄積か否かの判断Ｅを行ってよい。符号化処理において一致データモデルが見つかっていれば、判断Ｅの結果が真となる。符号化処理において一致データモデルが見つかっていなければ、判断Ｅの結果が偽となる。符号化処理が行われなかった場合、判断Ｅにおいて、ライト対象のデータセット群と一致するデータセット群が存在するか否かの一致判断が行われてもよいし、或いは、そのような判断が行われることなく判断Ｅの結果が真でもよい。
【０１３３】
判断Ｅの結果が真の場合、プロセッサ１１３０は、例えば、ライト対象のデータモデル（ライト要求に関連付いたデータモデル、又は、符号化処理において生成されたデータモデル）と、ライト要求に関連付けられているキーと、当該データモデルのモデルＩＤと、当該データモデルに対応した入力ベクトルとを、格納してよい。
【０１３４】
リード要求には、ストアＩＤ、モードＩＤ及びキーが関連付けられていてよい。モードＩＤとしては、“モデル”（データモデルの返却）と“データセット群”（データセット群の返却）のいずれかが指定されてよい。また、キーは、カラム名、時刻等のレコード情報の少なくとも一部（例えば、蓄積先のアドレス相当の情報）を含んでよい。
【０１３５】
プロセッサ１１３０は、リード要求で指定されたストアＩＤに対応するレコード（ストア管理テーブルにおけるレコード）を参照し、リード要求に関連付いているキーに対応したモデルＩＤ及び入力ベクトルを特定してよい。プロセッサ１１３０は、特定したモデルＩＤに対応したデータモデルを特定し、モードＩＤが“モデル”か否かの判断Ｆを行ってよい。
【０１３６】
判断Ｆの結果が偽の場合、プロセッサ１１３０は、特定した入力ベクトルを特定したデータモデルに入力してデータセット群を復元する復号処理を行ってよい。例えば、プロセッサ１１３０は、データモデルに入力ベクトル中の入力値を入力することでデータセット群（パターン）を得て、誤差情報処理（例えば、入力ベクトル中の誤差情報を用いて、当該得られたデータセット群（パターン）を補正すること）を行うことで、伸張されたデータセット群を得て、当該データセット群を返してよい。
【０１３７】
判断Ｆの結果が真の場合、プロセッサ１１３０は、特定されたデータモデル（及び入力ベクトル）を返してよい。
【０１３８】
図９は、アウトカム設定ＧＵＩの概要を示す。
【０１３９】
プロセッサ１１３０により、ストア管理テーブルに基づき図９に例示するアウトカム設定ＧＵＩ９０００が例えばユーザシステム１２００（又は管理システム）に表示される。ＧＵＩに代えて他種の画面が採用されてもよい（これは、ユーザ支援ＧＵＩについても同様である）。
【０１４０】
プロセッサ１１３０は、データストア毎に、例えば下記を表示する。
・アウトカム情報中の目的達成度、
・メタ情報中のデータ保持期間（データストアにデータが格納された日時からの期間）、
・メタ情報中のデータ種別、
・メタ情報中の許容誤差、及び、
・メタ情報中の決定性。
【０１４１】
目的達成度は、ユーザにより入力された情報でもよいし、所定の方法で定期的に計算され更新された情報でもよい。
【０１４２】
「許容誤差」は、例えば、割合で指定されてもよいし、定数値（例えば、定数値0.01を指定すると、少数第２位までが有効）で指定されてもよい。
【０１４３】
また、「決定性」とは、データストアについていつリード要求を受けても同じデータセット群を返すことを維持するか否かを意味する。“決定的”が、同じデータセット群を返すことの維持を意味する。“非決定的”が、同じデータセット群を返すことの維持をしないことを意味する。“決定的”が採用されたデータストアに対応した忘却制御情報は、忘却が無いことを示す情報、すなわち、第１及び第２の誤差調整処理のいずれも行わないことを示す。補正誤差や許容誤差が動的に変わると、復元されるデータセット群が異なるためである。
【０１４４】
図９において、下線が引かれた情報要素が、ユーザにより設定変更可能な情報要素の一例である。すなわち、本実施例では、許容誤差を割合や定数値のどちら（又は両方）で指定するか、及び、決定性が、ユーザにより設定変更可能な情報要素である。
【０１４５】
なお、“データストア２”について、「ストレージを増設してください」のような、記憶容量の増設の提示があるが、これは、目的達成度をユーザ所望の達成度以上にするためには今後誤差を小さくすることが必須であり、結果として、データ量の削減の度合が下がることが見込まれるからである。既に十分な空きの記憶容量がある場合には、このような提示は無くてもよい。プロセッサ１１３０が、定期的に又は不定期的に（例えば、ユーザからＧＵＩ９０００の表示要求を受けたときに、又は、第２の誤差調整処理を行ったときに）、データストアに対応した目的達成度がユーザ所望の達成度以上か否かを判断し、当該判断の結果が偽の場合に上述のストレージ増設の提示をしてもよい。当該判断は、予め入力されているユーザ所望の達成度（アウトカム情報中の、目的達成度の下限値）を基に行われてもよいし、ユーザからユーザ所望の達成度が満たされているか否かの回答を受け当該回答を基に行われてもよい。
【０１４６】
図１０は、許容誤差と補正値との関係の一例を示す。なお、モデル化前のデータセット群を構成する各データセット（値）が正の実数であることが前提とされてよいが、モデル化前のデーセット群のうちの少なくとも一つのデータセットが負の値でも正負の情報を保持することで本発明を適用することができる。また、図１０は、誤差が割合（誤差率）で指定されるケースの例に基づくが、誤差が定数値で指定されるケースについても本発明を適用することができる。
【０１４７】
図１０において、Ｋ（Ｋ１〜Ｋ９の各々）は、ｒ／ｐである。ｒは、モデル化前のデータセット群におけるデータセットであり、ｐは、パターンにおけるデータセットである。従って、誤差が無い場合、Ｋ＝１である。従って、誤差＝Ｋ−１である。Ｋが１から離れる程、誤差が大きいことになる。
【０１４８】
また、図１０において、許容誤差はαである。Ｋをベースにした場合、許容誤差範囲は、１／（１＋α）以上１＋α以下と表現される。
【０１４９】
誤差情報は、パターン（データモデルからの出力データセット群）を構成する複数の出力データセットにそれぞれ対応した複数の補正値ｄの配列である。ｄ（及びｄの桁数）は、α又はｅ（補正誤差）が小さい程、大きい傾向にある。言い換えれば、ｄ（及びｄの桁数）は、α又はｅが大きい程、小さい傾向にある。α又はｅが小さくなるにつれて、ｄは０（所定値の一例）に近づく。従って、α又はｅが小さい程、誤差情報には、０が多くなり、結果として、誤差情報の圧縮が効きやすくなる。誤差情報は、上述したように、符号化処理において生成される。
【０１５０】
本実施例では、許容誤差範囲内にあるＫに対応した出力データセットについては、補正は不要、すなわち、ｄ＝０である。図１０の例によれば、Ｋ２、Ｋ４、Ｋ８及びＫ９の各々に対応した出力データセットの補正は不要である。
【０１５１】
一方、許容誤差範囲外にあるＫに対応したデータセットについては、補正は必要、すなわち、ｄ＞０である。具体的には、Ｋが許容誤差範囲内に収まるＫ´となるようなｄが決定される。Ｋ´＝ｒ／ｒ´である。ｒ´＝ｐｄ、すなわち、ｒ´は、ｄを用いて補正されたｐである。補正後のデータセットｒ´に誤差が無ければ、Ｋ´＝１となる。図１０の例によれば、Ｋ１、Ｋ２、Ｋ５、Ｋ６及びＫ７がそれぞれ許容誤差範囲内のＫ１´、Ｋ２´、Ｋ５´、Ｋ６´及びＫ７´となるよう、Ｋ１、Ｋ２、Ｋ５、Ｋ６及びＫ７にそれぞれ対応した出力データセットの補正値ｄが決定される。具体的には、補正値ｄは、ｌｏｇ（ｒ／ｐ，底：１＋α＊２）の値を小数点第１位で四捨五入することで得られた値である。ｒ´は、ｐ＊（１＋α＊２）ｄである。補正誤差ｅは、Ｋ´−１＝（ｒ／ｒ´）−１である。ｅ≦αである。
【０１５２】
第１及び第２の誤差調整処理が行われてよい。
【０１５３】
第１の誤差調整処理は、例えばデータストア毎に行われてよい（以下、一つのデータストアを例に取る（第１の誤差調整処理の説明において、「対象データストア」））。プロセッサ１１３０は、許容誤差の範囲内で補正誤差を大きくしてよい。具体的には、例えば、プロセッサ１１３０は、対象データストアに対応した許容誤差をストア管理テーブルから特定し、対象データストアに属するデータモデルを特定し、特定データモデルから出力されるデータセット群を構成する一つ以上の出力データセットのうち、補正誤差（図２６の例によれば、ｅ＝ｒ／ｒ´−１）のある出力データセットについて、当該出力データセットの補正誤差を、所定の規則に従って、許容誤差の範囲内で大きくしてよい（「所定の規則」は、対象データストアに対応した忘却制御情報が示す規則である）。プロセッサ１１３０は、対象データストアに属する各データモデルについて、入力ベクトルと誤差情報を読み出し、読み出した入力ベクトル中の誤差情報を伸張し、伸張された誤差情報を、補正誤差を大きくした結果に基づき更新し、更新された誤差情報を圧縮し、圧縮された誤差情報を含んだ入力ベクトルを格納（例えば上書き）してよい。プロセッサ１１３０は、補正誤差を大きくした結果（例えば、補正誤差の平均値）を基に、第１閾値を小さくしてよい。補正誤差と第１閾値の関係は、例えば予め定義されていてよい。当該関係を基に、第１閾値を小さくすることが行われてよい。補正誤差が大きくされても第１閾値の変更が不要であれば（例えば、補正誤差の変化が第１閾値の変更が不要な程に小さければ）、第１の閾値を小さくすることはスキップされてよい。
【０１５４】
第２の誤差調整処理も、例えばデータストア毎に行われてよい（以下、一つのデータストアを例に取る（第２の誤差調整処理の説明において、「対象データストア」））。プロセッサ１１３０は、許容誤差を大きくしてよい。具体的には、例えば、プロセッサ１１３０は、対象データストアに対応した許容誤差として、ユーザにより大きくされた許容誤差を受けて、当該許容誤差を、ストア管理テーブルに設定し、対象データストアに対応した許容誤差を、ストア管理テーブルから特定してよい。プロセッサ１１３０は、対象データストアに対応したアウトカム情報中の目的達成度が相対的に高ければ（例えば、現在の目的達成度がユーザ所望の達成度よりも更に高くなっていれば）、許容誤差を大きくしてよい。許容誤差の増加量は、目的達成度と許容誤差との予め定義された関係と、目的達成度と許容誤差との関係の過去の履歴とのうちの少なくとも一つを基に決定されてよい。プロセッサ１１３０は、対象データストアに属する各データモデルについて、入力ベクトルと誤差情報を読み出し、読み出した入力ベクトル中の誤差情報を伸張し、伸張された誤差情報を、許容誤差を大きくした結果に基づき更新し、更新された誤差情報を圧縮し、圧縮された誤差情報を含んだ入力ベクトルを、格納（例えば上書き）してよい。プロセッサ１１３０は、許容誤差を大きくした結果（例えば、更新後の許容誤差）を基に、第１閾値を小さくしてよい。許容誤差と第１閾値の関係は、例えば予め定義されていてよい。当該関係を基に、第１閾値を小さくすることが行われてよい。許容誤差を大きくしても第１閾値の変更が不要であれば（例えば、許容誤差の変化が第１閾値の変更が不要な程に小さければ）、第１閾値を小さくすることはスキップされてよい。
【０１５５】
第２の誤差調整処理によれば、ユーザ所望の目的達成度に比してオーバースペックの記憶容量を削減することが期待できる。例えば、図１１に示すように、ユーザ所望の目的達成度がｖであるにも関わらず、現在の許容誤差がｗ１であるとすると、ユーザにとっては過剰に精度の高いデータが格納されていることになる。そこで、許容誤差を、ｗ１から、目的達成度ｖに対応したｗ２に大きくすることで、データモデルから復元されるデータセット群の精度は落ちるものの、ユーザ所望の目的達成度を維持し、且つ、記憶容量を削減することが期待できる。
【０１５６】
以上の説明を、下記のように総括することができる。なお、下記の総括には、上記の説明にない事項（例えば変形例）が含まれていてもよい。
【０１５７】
記憶装置１６００と、メモリ１１２０と、記憶装置１６００へのデータ入出力を制御するプロセッサ１１３０と、を有するストレージシステム１０００において、プロセッサ１１３０は、保存量とリード量とをモニタリングする。保存量は、ライト量と物理使用量とのうちの少なくとも一つである。ライト量は、ライト対象として受け付けられたデータの総量である。物理使用量は、記憶装置１６００に物理的に格納されたデータの総量である。プロセッサ１１３０は、モニタリングの結果に従う、対象期間についての保存量及びリード量を基に、記憶装置１６００の使用に関するコストである記憶コストとしての料金を対象期間について算出する。対象期間について、リード量の単位量当たりの料金は、保存量の単位量当たりの料金よりも高くてよく、この場合、プロセッサ１１３０は、対象期間より過去のリード量に応じて、対象期間についての保存量及びリード量に従う料金を下げてよい。
【０１５８】
プロセッサ１１３０は、更に、対象期間よりも過去のリード量を基に、対象期間についての料金を決定してよい。これにより、保存量の単位量当たりの料金がリード量の単位量当たりの料金に比べて安く、リード量が多いと料金が高くなるようなケースにおいて、対象期間より前のリード量を支払い済み料金とみなすことで、料金（記憶コスト）を減額することができる。
【０１５９】
プロセッサ１１３０は、記憶装置１６００に格納されるデータの量を削減するために圧縮と重複排除とのうちの少なくとも一つであるデータ量削減処理を行うようになっていて、プロセッサ１１３０は、記憶装置１６００に保存されているデータのデータ量削減率を、当該データのライト時刻からの経過時間に応じて高くしてよい。これにより、物理使用量を効率的に削減し、以って、記憶コストの適正化に貢献することができる。
【０１６０】
プロセッサ１１３０は、記憶装置１６００に格納されるデータの量を削減するために圧縮と重複排除とのうちの少なくとも一つであるデータ量削減処理を行うようになっていて、プロセッサ１１３０は、対象期間の料金を、対象期間について決定された論理格納コストに基づいて算出してよい。論理格納コストは、ライト量の単位量当たりの料金であって、物理使用量と物理使用量の単位量当たりの料金である物理格納コストとに基づいて決定された料金でよい。これにより、物理使用量が減ることに伴い論理格納コストを適正化することが期待される。
【０１６１】
論理格納コストは、更に、リード量と、リード量の単位量当たりの料金であるリードコストとに基づいて決定された料金でよい。これにより、リード量の多寡に伴い論理格納コストを適正化することが期待される。
【０１６２】
プロセッサ１１３０は、対象期間より前までの時系列の物理使用量に基づき、対象期間より将来の或る期間である将来期間についての物理使用量を予測してよい。また、プロセッサ１１３０は、対象期間より前までの時系列のリード量に基づき、将来期間におけるリード量を予測してよい。プロセッサ１１３０は、予測された物理使用量と、物理格納コストと、予測されたリード量と、リードコストとに基づいて、将来期間についての論理格納コストを決定してよい。
【０１６３】
プロセッサ１１３０は、対象期間より前までの時系列の物理使用量に基づき、対象期間より将来の或る期間である将来期間についての物理使用量を予測してよい。プロセッサ１１３０は、予測された物理使用量と、物理格納コストとに基づいて、将来期間についての論理格納コストを決定してよい。
【０１６４】
以上のように決定された将来期間についての論理格納コストが表示されれば、将来期間について予測される物理使用量及びリード量に基づき当該将来期間についてユーザに課す料金のベースとなる論理格納コストが決定されるため、時間経過に伴い保存量に関して単位量当たりの料金が下がること（ユーザ側のリスク低減）を維持しつつ、ストレージ事業者の採算性（ストレージ事業者のリスク低減）を維持することができる。なお、論理格納コストのベースとして、対象期間についての物理使用量及びリード量の予測値に代えて実測値が採用されてもよいが、実測値をベースとすると、物理使用量及びリード量のうちの少なくとも一つが対象期間において急激に増える又は減ると論理格納コストも対象期間について急激に高くなる又は低くなる可能性が考えられ、そのような可能性を低減するため、予測値が採用される方が好ましいと考えられる。
【０１６５】
物理使用量の単位量当たりの料金である物理格納コストは、記憶装置１６００の複数のユーザに共通であり、プロセッサ１１３０は、ユーザ毎に、当該ユーザについてライト対象とされたデータのデータ量削減率を基に当該ユーザについて対象期間の料金を算出してよい。
【０１６６】
プロセッサ１１３０は、対象期間の料金に関する条件であるコスト条件としてユーザ指定の一つ以上のコスト条件を受け付けてよい。プロセッサ１１３０は、当該一つ以上のコスト条件を満たすことを維持するデータ量削減処理を行ってよい。このケースにおいて、例えば、プロセッサ１１３０は、データ量削減処理に関する条件である削減条件としてユーザ指定の一つ以上の削減条件を受け付けてよい。プロセッサ１１３０は、一つ以上のコスト条件を満たすことを維持するデータ量削減処理が一つ以上の削減条件を満たるか否かを判断し、当該判断の結果が偽の場合にはアラートを出してよい。
【０１６７】
プロセッサ１１３０は、記憶装置１６００に格納されるデータの量を削減するために非可逆圧縮処理を行うようになっていて、プロセッサ１１３０は、記憶装置に保存されているデータに関しリード対象とされた頻度をモニタリングしてよい。プロセッサ１１３０は、記憶装置１６００に保存されているデータのうち相対的に低頻度にリード対象とされたデータについて非可逆圧縮処理を行ってよい。
【０１６８】
プロセッサ１１３０は、記憶装置１６００に格納されるデータの量を削減するために圧縮と重複排除とのうちの少なくとも一つであるデータ量削減処理を行うようになっていて、プロセッサ１１３０は、記憶装置１６００に保存されているデータのリード頻度に応じて当該データのデータ削減率を制御してよい。例えば、プロセッサ１１３０は、相対的に高頻度にリード対象とされたデータのデータ量削減率を、相対的に高頻度にリード対象とされたデータのデータ量削減率よりも低くしてよい。これにより、価値をリード頻度とみなして価値に応じた記憶コストとなることが期待される。
【０１６９】
また、図１２は、データモデルとして、オートエンコーダを用いた場合の、さらに誤差目的関数設定６０１５などによりユーザがデータセット群１０１（以降単にデータと記載）の全部または部分について、重要度を指定する場合の、処理の概要１２０００を示している。データモデルは、エンコーダとデコーダがあり、エンコーダはデータとアノテーションデータを入力とし、（デコーダに対する）入力ベクトルと重要度マップを出力する。
【０１７０】
重要度マップは、エンコーダが出力した入力ベクトルの中で重要な部分に、入力ベクトルの情報量を割くための仕組みであり、入力ベクトルの領域ごとのデータ量（bit量など）を表す。例えば、エンコーダやその他のニューラルネットワークによって、重要度マップを入力ベクトルと併せて自動出力させるように、全体のネットワークを学習してもよい。また、Context Adaptive Arithmetic Codingなどのデータ圧縮手法を併用することで、重要度マップを使わずに入力ベクトルを表現するシンボルの出現確率を制御することで、重要な部分に情報量を割くようにデータモデルを学習させてもよい。
【０１７１】
データは、任意次元の数値の配列であってよい。例えば、センサーデータの場合は、センサー×時間フレームの2次元、画像データの場合は、色空間×縦×横の3次元となり、動画データの場合は、色空間×縦×横×時間フレームの4次元となる。
【０１７２】
アノテーションデータは、データに対応した補助的な情報である。例えばユーザが指定するデータに対応した領域の重要度を表すデータであり、例えば、データに対応する次元を持つ、数値配列データである。アノテーションデータは、例えば画像認識のアプリケーションからデータとともにストレージシステム１０００に送信してもよいし、ストレージシステム１０００がデータから一般的に知られた手法により生成してもよい。アノテーションデータをエンコーダに入力することにより、エンコーダは重要度マップの生成規則を効率的に学習することができる。重要度マップの生成にエンコーダ以外のニューラルネットワークを用いて、そのニューラルネットワークにアノテーションデータを入力して学習させてもよい。
【０１７３】
エンコーダおよびデコーダは、データの次元に対応した次元のCNN （Convolutional Neural Networks）を用いてもよい。例えば、画像データの場合は、2D CNN（データの色空間およびアノテーション情報の次元をCNNの入力チャネルに使用）、動画データの場合は、3D CNN（データの色空間およびアノテーション情報の次元をCNNの入力チャネルに使用）を用いることができる。
【０１７４】
入力ベクトルは、デコーダへの入力データであり、デコーダは入力ベクトルを入力として、元データの形状にデータを復元して出力する。
【０１７５】
データのライト処理において、データモデルとしてオートエンコーダを用いた場合、入力ベクトルを保存し、デコーダをデータモデルとして入力ベクトルと対応付けて記録する。入力ベクトルは、重要度マップによりマスク処理したうえで、情報量を減らした状態で保存する。エンコーダは、保存しなくても、デコーダにより入力ベクトルからデータが生成できるため、エンコーダは保存せず削除してもよいが、エンコーダを再利用して処理を効率化するため、エンコーダをデータモデルとして、合わせて保存してもよい。また、入力ベクトルやデータモデルの保存時に、それらのデータを量子化し、上述したContext Adaptive Arithmetic Codingなどのデータ圧縮手法を用いてデータ圧縮してさらにデータ量を削減してもよい。
【０１７６】
デコーダは、補助的な入力として、元データやアノテーションデータ、または他のニューラルネットワークにより変換された情報を入力としてもよい。
【０１７７】
ロス関数は、誤差目的関数設定６０１５により設定される、ニューラルネットワーク全体の学習の目標となる関数である。例えば、画像や動画データの場合は、MSE （Mean Squared Error）やPSNR （Peak signal-to-noise ratio）、MS-SSIM （Multi-scale Structural Similarity）といった指標が用いられる。アノテーションデータで指定された領域毎の重要度に応じて、それぞれの指標を重みや目標を変更して計算し、重要な領域を優先的に学習するように、ロス関数を設定してもよい。
【０１７８】
ロス関数は、効率化のために、画像セグメンテーションや、物体認識などの、ニューラルネットワークを含んで、上述の方法と組み合わせて構成してもよい。また、効率化のためにGAN （Generative Adversarial Network）の手法を組みあわせ、ロス関数に、Discriminatorのニューラルネットワークを含んで構成してもよい。
【０１７９】
以上、一実施例を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実行することが可能である。具体的には、例えば、記憶制御部１４１は、図７に例示するように、ページテーブル１１４４を参照し、相対的にリード頻度が高い論理ページ７０１Ｈ（例えばリード頻度が第１の閾値以上の論理ページ）と、相対的にリード頻度が低い論理ページ７０１Ｌ（例えばリード頻度が第１の閾値と同じかそれよりも小さい第２の閾値未満の論理ページ）を特定し、論理ページ７０１Ｌ内のデータのデータ量を論理ページ７０１Ｈ内のデータのデータ量よりも削減する（例えば忘却する）非可逆圧縮を行ってよい。
【符号の説明】
【０１８０】
１０００：ストレージシステム
【図１】
2020155071.tif 000003
【図２Ａ】
2020155071.tif 000004
【図２Ｂ】
2020155071.tif 000005
【図２Ｃ】
2020155071.tif 000006
【図２Ｄ】
2020155071.tif 000007
【図２Ｅ】
2020155071.tif 000008
【図２Ｆ】
2020155071.tif 000009
【図２Ｇ】
2020155071.tif 000010
【図３】
2020155071.tif 000011
【図４Ａ】
2020155071.tif 000012
【図４Ｂ】
2020155071.tif 000013
【図４Ｃ】
2020155071.tif 000014
【図５Ａ】
2020155071.tif 000015
【図５Ｂ】
2020155071.tif 000016
【図５Ｃ】
2020155071.tif 000017
【図６】
2020155071.tif 000018
【図７】
2020155071.tif 000019
【図８】
2020155071.tif 000020
【図９】
2020155071.tif 000021
【図１０】
2020155071.tif 000022
【図１１】
2020155071.tif 000023
【図１２】
2020155071.tif 000024