JP2023012369A - ファイルストレージ - Google Patents

ファイルストレージ Download PDF

Info

Publication number
JP2023012369A
JP2023012369A JP2021115973A JP2021115973A JP2023012369A JP 2023012369 A JP2023012369 A JP 2023012369A JP 2021115973 A JP2021115973 A JP 2021115973A JP 2021115973 A JP2021115973 A JP 2021115973A JP 2023012369 A JP2023012369 A JP 2023012369A
Authority
JP
Japan
Prior art keywords
data
compression
file
written
file storage
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
JP2021115973A
Other languages
English (en)
Inventor
彰 山本
Akira Yamamoto
彬史 鈴木
Akifumi Suzuki
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2021115973A priority Critical patent/JP2023012369A/ja
Priority to CN202210127720.9A priority patent/CN115617259A/zh
Priority to US17/693,462 priority patent/US20230021108A1/en
Publication of JP2023012369A publication Critical patent/JP2023012369A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • 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/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files

Landscapes

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

Abstract

【課題】データの格納時の応答性能を劣化させることなく、データの削減率を高めることができるファイルストレージを提供する。【解決手段】アプリケーションから、ファイルに対する書き込み要求を受け付け、ファイルのデータを記憶装置に書き込み、後から、書き込みを行ったファイルのデータを圧縮して記憶装置に書き込むプロセッサを備えるファイルストレージであって、プロセッサは、書き込みを行った一つ以上のファイルの所定時間に書き込まれたデータ量に応じて、圧縮に用いる圧縮アルゴリズムを決定するようにした。【選択図】図4

Description

本発明は、フラッシュメモリや磁気ディスクをストレージ(記憶媒体)とした、バッチ圧縮機能をもつファイルストレージに関する。
特許文献1は、画像関係の圧縮アルゴリズムに関する特許文献である。近年、データ量の爆発的な拡大に伴い、データ量削減技術の開発が盛んに行われている。特に、データ量の大きな画像関係の圧縮アルゴリズムの研究が活発である。これらの圧縮アルゴリズムの特徴は、非可逆圧縮によるデータ損失を特定の用途に特化して抑制できることにある。例えば、人の認識が困難なデータ損失となるように画像圧縮器を作成できる。
圧縮アルゴリズムで最も重要なのは、データの削減率である圧縮率であるが、圧縮速度もまた重要となる。一般に、圧縮率を向上させようとすると、圧縮速度は減速する。また、圧縮率の増減と圧縮速度の増減との関係は、線形ではなく、圧縮率を向上しようとすると、圧縮速度は急激に減少する。また、データを読み出す際の伸長速度も、一般的には、圧縮率が高いと、遅くなる。
特許文献2では、圧縮および伸張の処理時間が異なる複数の圧縮アルゴリズムを備えたストレージにおいて、アクセス頻度に応じ好適な圧縮アルゴリズムを選択する例が開示されている。
特開2019-095913号公報 特開2019-79113号公報
画像データの圧縮は、ファイル単位に実行することが多い。理由は、ファイル単位に、データの種別、静止画データ、動画データ、音声データであるかが決まっているからである。データの種別により、どのような圧縮アルゴリズムを適用するかが決まることになる。したがって、ファイル単位にデータの格納、読み出しを実行するファイルストレージに、データの種別を認識させることで、ファイル単位の圧縮が可能になる。
この場合、圧縮率の最も高い圧縮アルゴリズムを適用することが望ましいが、圧縮速度の制約がある。特に、データをファイルストレージに格納する際に、圧縮処理を実行すると、アプリケーションから見た応答性能が著しく劣化する可能性がある。
本発明は、以上の点を考慮してなされたもので、データの格納時の応答性能を劣化させることなく、データの削減率を高めることができるファイルストレージ等を提案しようとするものである。
かかる課題を解決するため本発明においては、アプリケーションから、ファイルに対する書き込み要求を受け付け、前記ファイルのデータを記憶装置に書き込み、後から、書き込みを行ったファイルのデータを圧縮して記憶装置に書き込むプロセッサを備えるファイルストレージであって、前記プロセッサは、書き込みを行った一つ以上のファイルの所定時間に書き込まれたデータ量に応じて、圧縮に用いる圧縮アルゴリズムを決定するようにした。
上記構成によれば、書き込みを行ったファイルのデータが後から圧縮されるので、例えば、データの格納時の応答性能を劣化させることなく、データの削減率を高めることができる。
本発明によれば、データの格納時の応答性能を劣化させることなく、データの削減率を高めることができる。
第1の実施の形態による情報システムの構成の一例を示す図である。 第1の実施の形態によるファイルストレージの構成の一例を示す図である。 第1の実施の形態による共用メモリに格納される情報の一例を示す図である。 第1の実施の形態によるファイルストレージ情報の形式の一例を示す図である。 第1の実施の形態によるファイル情報の形式の一例を示す図である。 第1の実施の形態によるストレージ装置情報の形式の一例を示す図である。 第1の実施の形態による実ページ情報の形式の一例を示す図である。 第1の実施の形態による空きファイル情報ポインタによって管理される空き状態になるファイル情報の一例を示す図である。 第1の実施の形態による空きページ情報によって管理される空き状態にある実ページ情報の一例を示す図である。 第1の実施の形態によるLRU先頭ポインタおよびLRU末尾ポインタで管理されるキャッシュ領域を割り当てられたファイル情報の管理状態の一例を示す図である。 第1の実施の形態による受け付け時先頭ポインタおよび受け付け時末尾ポインタで管理される実ページ情報の構造の一例を示す図である。 第1の実施の形態による主記憶(メインメモリ)に格納されたプロセッサが実行するプログラムの一例を示す図である。 第1の実施の形態によるライト処理部の処理フローの一例を示す図である。 第1の実施の形態によるリード処理部の処理フローの一例を示す図である。 第1の実施の形態による圧縮処理部の処理フローの一例を示す図である。
以下、本発明の一実施の形態を詳述する。ただし、本発明は、実施の形態に限定されるものではない。
ファイルストレージにおけるデータの削減率を鑑みると、圧縮率の最も高い圧縮アルゴリズムを適用することが望ましいが、圧縮速度の制約がある。特に、データをファイルストレージに格納する際に、圧縮処理を実行すると、アプリケーションから見た応答性能が著しく劣化する可能性がある。
また、ある程度の時間で見たデータの発生速度以下の、圧縮速度の圧縮アルゴリズムで圧縮を行うと、圧縮が間に合わなくなり、非圧縮のデータがたまってしまい、容量削減ができなくなる。
また、圧縮したデータを読み出す際にも、伸長速度が遅いと、格納する場合と同様に、アプリケーションから見た応答性能が著しく劣化する可能性がある。
本実施の形態では、データの格納時の応答性能の劣化の課題を、ファイルストレージが、圧縮処理を後から、バッチ処理でまとめて実行することで解決する。
また、圧縮速度の異なった圧縮アルゴリズムを複数用意し、圧縮処理を実行するファイル群の単位時間当たりのデータ発生量を把握し、許容時間内に、圧縮処理を完了できる圧縮アルゴリズムの中から圧縮アルゴリズムを選択することで、効果の高いデータの削減率を達成できる。
また、読み出し処理の性能劣化の対応には、ファイルストレージ内にキャッシュ領域を設け、伸長したファイルをキャッシュ領域に格納しておく。読み出し要求があったとき、キャッシュ領域にファイルがヒットすれば、キャッシュ領域から伸長したデータを直接読み出す。これにより、読み出し頻度の高いファイルの読み出し性能の劣化の課題を解決する。
次に、本発明の実施の形態を図面に基づいて説明する。以下の記載および図面は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略および簡略化がなされている。本発明は、他の種々の形態でも実施することが可能である。特に限定しない限り、各構成要素は、単数でも複数でも構わない。
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数または順序を限定するものではない。また、構成要素の識別のための番号は、文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
図1は、本発明における情報システムの構成を示す。情報システムは、一つ以上のファイルストレージ100、一つ以上のサーバ110、ファイルストレージ100とサーバ110とを接続するネットワーク120、とから構成される。サーバ110は、サーバポート195によって、ファイルストレージ100は、ストレージポート197によって、ネットワーク120に接続される。サーバ110は、一つ以上のサーバポート195をもち、ファイルストレージ100は、ネットワーク120に接続される一つ以上のストレージポート197をもつ。サーバ110は、ユーザアプリケーション140が動作するシステムで、ユーザアプリケーション140の要求にしたがって、ファイルストレージ100との間で、ネットワーク120経由で、必要なデータを読み書きする。ネットワーク120で使用されるプロトコルは、例えばNFSやCIFSである。
図2は、ファイルストレージ100の構成を示す。ファイルストレージ100は、一つ以上のプロセッサ200、メインメモリ210、共有メモリ220、これらの構成要素を接続する一つ以上の接続装置250、ストレージ装置130から構成される。本実施例では、ファイルストレージ100は、ストレージ装置130を含み、ストレージ装置130との間で直接、データを読み書きする。しかし、本発明は、ファイルストレージ100が、ストレージ装置130を含まず、ストレージ装置130を含むブロックストレージに対して、論理ボリューム(LUN等)を指定して、データを読み書きする構成でも、有効である。また、本発明は、ファイルストレージ100がソフトウェアとして、サーバ110上に搭載され、ユーザアプリケーション140と同一の装置で動作する構成でも有効である。この場合、ストレージ装置130は、サーバ110に接続された装置となる。ストレージ装置130は、HDD(Hard Disk Drive)、フラッシュメモリを記憶媒体とするフラッシュストレージなどのストレージ装置130などが含まれる。また、フラッシュストレージも、いくつかの種類があり、高価格、高性能、消去可能回数の多いSLCとこれに対し、低価格、低性能、消去可能回数の少ないMLCがある。さらに、相変化メモリなどの新しい記憶媒体が含まれていてもよい。プロセッサ200は、サーバ110から発行された読み書き要求を処理する。メインメモリ210には、プロセッサ200が実行するプログラム、それぞれのプロセッサ200の内部情報などが格納される。
接続装置250は、ファイルストレージ100内の各構成要素を接続する機構である。
共有メモリ220は、通常DRAMなどの揮発メモリで構成されるが、バッテリーなどにより不揮発化されているものとする。また、本実施例では、高信頼化のため、それぞれが2重化されているものとする。ただ、本発明は、共有メモリ220が不揮発化されていなくても、2重化されていなくとも、有効である。共有メモリ220には、プロセッサ200間で共有される情報が格納される。
なお、本実施例では、ファイルストレージ100は、ストレージ装置130の中の一台の装置が故障しても、その装置のデータを回復できるRAID(Redundancy Array Independent Device)機能をもっていないものとする。なお、本発明は、ファイルストレージ100がRAID機能もった場合も有効である。
図3は、本実施例におけるファイルストレージ100の共有メモリ220の中の本実施例に関する情報を示しており、ファイルストレージ情報2000、ファイル情報2100、ストレージ装置情報2200、仮想ページ容量2300、空きファイル情報ポインタ2400、空きページ情報2500、LRU先頭ポインタ2600、LRU末尾ポインタ2700、トータル圧縮量2800、トータル伸長時間2900によって構成される。
この中で、ファイルストレージ情報2000は、図4に示すように、ファイルストレージ100に関する情報で、ファイルストレージ識別子2001、メディア種別2002、アルゴリズム数2007、圧縮アルゴリズム2003、圧縮率2004、圧縮性能2005、伸長性能2006から構成される。本実施例では、サーバ110は、ユーザアプリケーション140からの指示により、読み書き要求を発行する際、ファイルストレージ100の識別子、ファイルの識別子、ファイル内の相対アドレスとデータ長(読み書きするデータの長さ)を指定するものとする。読み書き要求で指定されるファイルストレージ100の識別子は、ファイルストレージ情報2000に含まれるファイルストレージ識別子2001である。さらに、本実施例では、読み書き要求で、ファイルのメディア情報、圧縮情報が指定されるものとする。なお、ファイルのメディア情報、圧縮情報は、他の手段で通知されても、本発明は有効である。本発明は、動画や画像などの高い圧縮率が期待できるメディア情報を格納したファイルを対象とし、メディアに対応する圧縮を行い、データ削減を実施する。メディア種別2002は、ファイルストレージ100が圧縮を行うメディアの種別(静止画、動画など)を表す。アルゴリズム数2007は、対応するメディア種別に対し、本ファイルストレージ100がもっている圧縮アルゴリズムの数を示す。圧縮アルゴリズム2003は、当該ファイルストレージ100がもつ、圧縮アルゴリズムを示す。圧縮率2004と圧縮性能2005は、対応する圧縮アルゴリズムの圧縮率と圧縮の性能(速度)を示す。また、伸長性能2006は、伸長の性能(速度)を示す。圧縮アルゴリズム2003、圧縮率2004、圧縮性能2005、および伸長性能2006は、アルゴリズム数2007に設定した数だけ繰り返されることになる。この後、次のメディア種別2002に示されたメディアに関する情報が設定される。ファイルストレージ100は、メディア種別2002に対応して、一つ以上の圧縮アルゴリズムをもつ。読み書き要求で指定されるメディア情報は、当該ファイルのメディア種別を表し、圧縮情報は、圧縮の有無、圧縮を行っている場合は、使用されている圧縮アルゴリズムを示す。
本実施例の特徴は、ファイルストレージ100が容量仮想化機能をサポートしている点である。ただし、本発明は、ファイルストレージ100が、容量仮想化機能をもっていなくとも有効である。通常、容量仮想化機能において、記憶領域の割り当て単位は、ページと呼ばれる。なお、本実施例では、ファイルの空間は、仮想ページという単位で、分割されているものとし、ストレージ装置130は、実ページという単位で分割されているものとする。容量仮想化機能を実現した場合、ファイルストレージ100がサーバ110からのライト要求で書き込みを指示されたアドレスを含む仮想ページに実ページが割り当てていないとき、実ページを割り当てる。仮想ページ容量2300は、仮想ページの容量である。本実施例では、仮想ページ容量2300と実ページの容量とは等しい。ただし、本発明は、実ページが冗長データを含み、仮想ページ容量2300が、実ページ容量と等しくなくとも有効である。
図5は、ファイル情報2100の形式を示したもので、ファイル識別子2101、ファイルサイズ2102、ファイルメディア2103、初期圧縮情報2104、適用圧縮情報2105、圧縮ファイルサイズ2106、受け付け時先頭ポインタ2107、受け付け時末尾ポインタ2108、圧縮先頭ポインタ2109、圧縮末尾ポインタ2110、キャッシュ先頭ポインタ2111、キャッシュ末尾ポインタ2112、次LRUポインタ2113、前LRUポインタ2114、未圧縮フラグ2115、スケジュールフラグ2116、キャッシュフラグ2117、次空きポインタ2118、アクセスアドレス2119から構成される。
本実施例では、ファイルストレージ100は、サーバ110から読み書き要求を受け取ると、指定されたファイルの識別子により、対応するファイルを認識する。本発明は、動画や画像などの高い圧縮率が期待できるメディア情報を格納したファイルを対象とする。また、このようなファイルの特徴としては、書き込みは、ファイルを生成した契機に、先頭のアドレスから順番にデータが追記されていく。このため、すでに、書き込みが終わった領域の書き替えは行われないのが通常である。また、ファイルを読み出す際には、ファイルの先頭から、アドレス順に、最後まで読まれるのが通常である。
ファイル識別子2101は、当該ファイルの識別子である。ファイルサイズ2102は、当該ファイルに書き込まれたデータの量である。ファイルメディア2103は、当該ファイルのメディアの種別、例えば動画などの種別を表す。初期圧縮情報2104は、当初、サーバ110から書き込まれたデータの圧縮の状態を示す。初期圧縮情報2104は、圧縮の有無、圧縮されている場合、適用されている圧縮アルゴリズムを示す。本発明では、後から、当初適用していた圧縮アルゴリズムより圧縮率の高い圧縮アルゴリズムを適用して、データの削減率を向上させる。適用圧縮情報2105は、後から適用する圧縮アルゴリズムを示す。圧縮ファイルサイズ2106は、適用圧縮情報2105を適用した時のファイルサイズを示す。受け付け時先頭ポインタ2107と受け付け時末尾ポインタ2108は、最初に要求を受け付けたデータを格納した先頭のページと最後のページを示す。圧縮先頭ポインタ2109と圧縮末尾ポインタ2110は、ファイルストレージ100が圧縮したデータを格納した先頭のページと最後のページとを示す。ファイルストレージ100は、ファイルストレージ100が圧縮したデータを格納したデータに対する読み出し要求を受け付けた場合、サーバ110に対しては、当初書き込まれたデータに変換してから、データを渡す必要がある。この際、本発明では、アクセス頻度の高いファイルの応答性能を確保するために、この変換したデータを、ストレージ装置130に設けたキャッシュ領域に格納する。キャッシュ先頭ポインタ2111とキャッシュ末尾ポインタ2112は、キャッシュ領域に格納したデータの先頭のページと最後のページを示す。このような制御を行うと、アクセス頻度の下がったファイルのデータをキャッシュ領域から追い出す必要がある。本発明では、キャッシュ領域にデータを格納したファイルのLRU管理を行って、追い出すファイルを決める。次LRUポインタ2113と前LRUポインタ2114は、当該ファイルより、アクセス頻度が一つ高いファイルのファイル情報2100へのポインタと、アクセス頻度が一つ低いファイルのファイル情報2100へのポインタである。未圧縮フラグ2115は、ファイルストレージ100が、まだ、圧縮を行っていないことを示すフラグである。スケジュールフラグ2116は、当該ファイルを圧縮の対象としたことを示すフラグである。キャッシュフラグ2117は、当該ファイルをキャッシュ領域に格納中であることを示す。本発明では、ファイルに対する先頭のアドレスに対する書き込み要求を受け取った時、新しいファイルに対する書き込み要求を受け取ったことになるので、この契機で、ファイル情報2100を割り当てる必要がある。このため、空いた状態にあるファイル情報2100を管理しておく必要がある。次空きポインタ2118は、次に、空いた状態にあるファイル情報へのポインタである。アクセスアドレス2119は、ファイルストレージ100で、圧縮したデータを読み出すときに、次に、読み出しを行うアドレスを示す。圧縮したデータの長さは可変長となるため、リード要求で指定された相対アドレスからは、圧縮後のデータが格納されているデータは一般的には計算できない。ただし、メディアデータなどは、アドレス順にアクセスされるので、次にアクセスされるデータは、圧縮後のデータ空間においても、次のアドレスとなるので、これを記憶しておけば、次の要求でアクセスされる圧縮後のデータのアドレスを認識できる。
図6は、ストレージ装置情報2200を示す。ストレージ装置情報2200は、ストレージ装置識別子2201、ストレージ容量2202、実ページ情報2203をもつ。ストレージ装置識別子2201は、当該ストレージ装置130の識別子である。ストレージ容量2202は、当該ストレージ装置130の容量である。実ページ情報2203は、当該ストレージ装置130に含まれる実ページに対応する情報であり、その個数は、ストレージ容量を仮想ページ容量でわった値となる。
図7は、実ページ情報2203のフォーマットを示す。実ページ情報2203は、ストレージ識別子3000、相対アドレス3001、次ページポインタ3002から構成される。ストレージ識別子3000は、対応する実ページのストレージ装置130の識別子を示す。相対アドレス3001は、対応する実ページのストレージ装置130内の相対アドレスを示す。本発明においては、実ページは、いくつかの状態をとる。空いた状態(未割当)か、割り当てた状態であるが、割り当てた状態には、最初に書き込まれたデータを格納した状態、ファイルストレージ100で圧縮したデータを格納した状態、キャッシュ領域に格納した状態となり、併せて、4つの状態が存在する。同一の状態にある実ページは、ポインタによりつながっているため、次ページポインタ3002は、同一の状態にある次の実ページ情報2203へのポインタである。
図8は、空きファイル情報ポインタ2400によって管理される空き状態になるファイル情報2100を示したものである。このキューを空きファイル情報キュー800と呼ぶ。空きファイル情報ポインタ2400は、空いた状態にある先頭のファイル情報2100を示す。ファイル情報2100内の次空きポインタ2118が、次に、空いた状態にあるファイル情報2100を示す。
図9は、空きページ情報2500によって管理される空き状態にある実ページ情報2203を示したものである。このキューを空き実ページ情報キュー900と呼ぶ。空きページ情報2500は、空いた状態にある先頭の実ページ情報2203を示す。実ページ情報2203内の次ページポインタ3002が、次に、空いた状態にある実ページ情報2203を示す。
本発明では、ファイルストレージ100は、周期的に、受け付けたファイルのデータの圧縮処理を実行する。本発明の特徴は、圧縮する必要のあるデータ量を把握して、次の周期までに、圧縮処理が完了する圧縮アルゴリズムを選択する。これにより、圧縮処理が間に合う範囲で、データ削減効果が最も高い圧縮アルゴリズムを適用できる。トータル圧縮量2800は、当該周期で圧縮処理を行う必要のあるデータ量である。また、本発明においては、当初、圧縮をしたデータを受け付けることを許容している。この場合、当初の圧縮アルゴリズムより圧縮率の高い圧縮アルゴリズムを適用しようとすると、一度、データを伸長する必要がある。このため、実際には、この伸長時間も含めて、圧縮処理を間に合わせる必要がある。トータル伸長時間2900は、伸長処理にかかる時間の合計値である。
図10は、LRU先頭ポインタ2600およびLRU末尾ポインタ2700で管理されるキャッシュ領域を割り当てられたファイル情報2100の管理状態を示す。このキューをファイル情報LRUキュー1000と呼ぶ。LRU先頭ポインタ2600で示されたファイル情報2100が最近リードされたファイルのファイル情報2100であり、LRU末尾ポインタ2700で示されたファイル情報2100が最も長い期間リードされていないファイルのファイル情報2100である。新たに、キャッシュ領域を割り当てるファイルがでてきた場合、LRU末尾ポインタ2700で示されたファイル情報2100から、実ページを解放して、図9で示した空きページ情報2500で管理される空き状態の実ページに戻すことになる。
図11は、受け付け時先頭ポインタ2107および受け付け時末尾ポインタ2108で管理される実ページ情報2203の構造を示している。受け付け時先頭ポインタ2107は、最初に要求を受け付けたデータ、すなわち、ファイルの先頭のアドレスのデータを格納した実ページ情報2203を示している。実ページ情報2203の次ページポインタ3002には、そのファイルの次のアドレスのデータを格納した実ページ情報2203が示されている。受け付け時末尾ポインタ2108には、最後に受け付けた、すなわち、最も後ろのアドレスのデータを格納した実ページ情報2203のアドレスが格納される。
圧縮先頭ポインタ2109および圧縮末尾ポインタ2110で管理される実ページ情報2203の構造、キャッシュ先頭ポインタ2111およびキャッシュ末尾ポインタ2112で管理される実ページ情報2203の構造は、それぞれ、図11で示した構造と同じであるため、説明を省略する。
次に、上記に説明した管理情報を用いて、ファイルストレージ100のプロセッサ200の動作の説明を行う。ファイルストレージ100のプロセッサ200が実行するプログラムは、メインメモリ210に格納されている。図12は、メインメモリ210内に、格納された本実施例に関するプログラムが示されている。本実施例に関するプログラムは、ライト処理部4000、リード処理部4100、圧縮処理部4200である。
図13は、ライト処理部4000の処理フローを示す。ライト処理部4000の処理フローは、サーバ110からライト要求を受け付けた時に実行される処理フローである。
ステップ50000:指定された相対アドレスがファイルの先頭のアドレスかをチェックする。先頭でなければ、ステップ50004へジャンプする。
ステップ50001:空きファイル情報ポインタ2400が示すファイル情報2100を当該ファイルに割り当てる。空きファイル情報ポインタ2400には、割り当てたファイル情報2100の次空きポインタ2118が示す値を設定する。
ステップ50002:ライト要求で指定された、ファイルの識別子、メディア種別、圧縮情報を、ファイル識別子2101、ファイルメディア2103、初期圧縮情報2104に設定する。
ステップ50003:空きページ情報2500が示す空いた状態にある実ページ情報2203を、当該ファイル情報の受け付け時先頭ポインタ2107と受け付け時末尾ポインタ2108の双方が示すようにする。また、空きページ情報2500には、割り当てた実ページ情報2203の次ページポインタ3002が示す情報を設定する。この後、ステップ50005へジャンプする。
ステップ50004:ライト要求で指定されたファイル識別子から、対応するファイル情報2100を見つける。
ステップ50005:受け付けたライト要求の相対アドレスとデータ長より、現在、割り当てている実ページだけで、データを格納できるかをチェックする。格納できれば、ステップ50007へジャンプする。
ステップ50006:空きページ情報2500が示す空いた状態にある実ページ情報2203(当該実ページ情報2203)を、受け付け時末尾ポインタ2108が示していた実ページ情報2203の次ページポインタ3002が示すようにする。また、当該実ページ情報2203を、受け付け時末尾ポインタ2108が示すようにする。加えて、空きページ情報2500には、当該実ページ情報2203(割り当てた実ページ情報2203)の次ページポインタ3002が示す情報を設定する。
ステップ50007:ライトデータを受け取る。相対アドレスとデータ長から、どのページのどのアドレスにデータを書き込めばよいかを計算する。
ステップ50008:ストレージ装置130に書き込み要求を発行する。
ステップ50009:完了するのを待つ。
ステップ50010:受け取ったデータ長から、ファイルサイズ2102を更新する。
ステップ50011:サーバ110に完了報告を行う。
図14は、リード処理部4100の処理フローを示す。リード処理部4100の処理フローは、ファイルストレージ100が、サーバ110からリード要求を受け取った時に、実行される処理フローである。
ステップ60000:指定されたファイル識別子から、対応するファイル情報2100を見つける。
ステップ60001:未圧縮フラグ2115がオンかをチェックする。オンであれば、ステップ60018へジャンプする。
ステップ60002:キャッシュフラグ2116がオンかをチェックする。オンであれば、ステップ60017へジャンプする。
ステップ60003:リード要求で指定された相対アドレスが先頭のアドレスかをチェックし、そうなければ、ステップ60005へジャンプする。
ステップ60004:先頭の場合、アクセスアドレス2119に圧縮先頭ポインタ2109に対応する実ページの先頭のアドレスを設定する。また、図10に示すLRU末尾ポインタ2700が示すファイル情報2100に割り当てた実ページ情報2203、つまり当該ファイル情報2100のキャッシュ先頭ポインタ2111からキャッシュ末尾ポインタ2112の間の存在する実ページ情報2203を、空きページ情報2500が示す空き実ページ情報キュー900に移す。また、当該ファイル情報2100のキャッシュフラグ2117をオフにする。さらに、これまでLRU末尾ポインタ2700が示していたファイル情報2100の中の前LRUポインタ2114が示すファイル情報2100のアドレスを、LRU末尾ポインタ2700に設定する。
ステップ60005:圧縮後のデータを格納したページにおける、アクセスアドレス2119が示すアドレスから、データを読み出すために、ストレージ装置130に読み出し要求を発行し、完了を待つ。
ステップ60006:ファイル情報2100の適用圧縮情報2105等を参照し、読み出したデータをサーバ110から受け取ったデータに変換する。
ステップ60007:変換したデータをサーバ110に送り、完了報告を行う。
ステップ60008:指定された相対アドレスがファイルの先頭のアドレスかをチェックする。先頭でなければ、ステップ60010へジャンプする。
ステップ60009:空きページ情報2500が示す空いた状態にある実ページ情報2203を、当該ファイル情報のキャッシュ先頭ポインタ2111とキャッシュ末尾ポインタ2112の双方が示すようにする。また、空きページ情報2500には、割り当てた実ページ情報2203の次ページポインタ3002が示す情報を設定する。また、当該ファイル情報2100を、図10に示した、LRU先頭ポインタ2600が示す位置に移す。
ステップ60010:受け付けたリード要求の相対アドレスとデータ長より、現在、割り当てている実ページだけで、データを格納できるかをチェックする。格納できれば、ステップ60012へジャンプする。
ステップ60011:空きページ情報2500が示す空いた状態にある実ページ情報2203(当該実ページ情報2203)を、キャッシュ末尾ポインタ2112が示していた実ページ情報2203の次ページポインタ3002が示すようにする。また、当該実ページ情報2203を、キャッシュ末尾ポインタ2112が示すようにする。加えて、空きページ情報2500には、当該実ページ情報2203(割り当てた実ページ情報2203)の次ページポインタ3002が示す情報を設定する。
ステップ60012:受け取った相対アドレスとデータ長から、どのページのどのアドレスにデータを書き込めばよいかを計算する。
ステップ60013:ストレージ装置130に書き込み要求を発行する。
ステップ60014:完了するのを待つ。
ステップ60015:アクセスアドレス2119を更新する。ファイル全体の書き込みが完了したかをチェックする。完了していない場合、処理を終了する。
ステップ60016:完了した場合、キャッシュフラグ2117をオンにして処理を完了する。
ステップ60017:受け付けた相対アドレスと、キャッシュ先頭ポインタ2111と、キャッシュ末尾ポインタ2112を参照して、読み出すデータを格納した実ページのアドレスを認識する。ステップ60019へジャンプする。
ステップ60018:受け付けた相対アドレスと、受け付け時先頭ポインタ2107と、受け付け時末尾ポインタ2108を参照して、読み出すデータを格納した実ページのアドレスを認識する。
ステップ60019:ストレージ装置130に読み出し要求を発行する。
ステップ60020:読み出しが完了するのを待つ。
ステップ60021:読み出したデータをサーバ110へ送り、終了報告を行う。この後、処理を終了する。
図15は、圧縮処理部4200の処理フローを示す。圧縮処理部4200の処理フローは、ファイルストレージ100の中で、周期的に起動される。
ステップ70000:トータル圧縮量2800とトータル伸長時間2900を初期化する。
ステップ70001:未圧縮フラグ2115がオンのファイル情報2100を見出す。未圧縮フラグ2115がオンのファイル情報2100を見出せなかった場合、ステップ70005へジャンプする。
ステップ70002:見出したファイル情報2100の未圧縮フラグ2115をオフにして、スケジュールフラグ2116をオンにする。ファイルサイズ2102をトータル圧縮量2800に加える。
ステップ70003:初期圧縮情報2104が圧縮なしであれば、ステップ70001へジャンプする。
ステップ70004:圧縮ありの場合、ファイルメディア2103と初期圧縮情報2104から、使用されている圧縮アルゴリズム2003を認識し、対応する伸長性能2006により、このデータを伸長する速度を認識する。さらに、この速度にファイルサイズ2102をかけた値(=伸長時間)を、トータル伸長時間2900に加算する。この後、ステップ70001へジャンプする。
ステップ70005:次のスケージュールまでの時間から、トータル伸長時間2900を減算する。減算した時間内に、圧縮処理を完了しなければならない。減算した値で、トータル圧縮量2800を割り、必要な圧縮速度を計算する。
ステップ70006:メディア種別2002ごとに、ファイルストレージ100が保有している圧縮アルゴリズム2003の中で、圧縮速度を満足する中で、最も圧縮率の高い圧縮アルゴリズム2003を適用する圧縮アルゴリズムに決定する。
ステップ70007:スケジュールフラグ2116がオンのファイル情報2100を見つける。見つからなかった場合、処理を完了する。
ステップ70008:ファイルメディア2103を参照して、ステップ70006で決定した圧縮アルゴリズムを、適用圧縮情報2105に設定する。
ステップ70009:受け付け時先頭ポインタ2107、受け付け時末尾ポインタ2108が示す実ページ情報2203に対応する実ページに格納されたデータを読み出していく。ここでは、先頭のデータを読み出し対象として、次のステップに進む。
ステップ70010:読み出し対象としたデータを読み出すため、ストレージ装置130に読み出し要求を発行する。また、次に読み出し対象とするデータのアドレスを計算しておく。
ステップ70011:完了するのを待つ。
ステップ70012:初期圧縮情報2104を参照して、圧縮なしであれば、ステップ70014へジャンプする。
ステップ70013:読み出したデータに、初期圧縮情報2104で適用されていた圧縮アルゴリズムを認識して、伸長処理を行い、圧縮されていない状態に戻す。
ステップ70014:適用圧縮処理2105を参照して、適用する圧縮アルゴリズムによりデータを圧縮する。
ステップ70015:現在のアドレスがファイルの先頭のアドレスかをチェックする。先頭でなければ、ステップ70017へジャンプする。
ステップ70016:空きページ情報2500が示す空いた状態にある実ページ情報2203を、当該ファイル情報の圧縮先頭ポインタ2109と圧縮末尾ポインタ2110の双方が示すようにする。また、空きページ情報2500には、割り当てた実ページ情報2203の次ページポインタ3002が示す情報を設定する。書き込みを行うアドレスを割り当てた実ページの先頭とする。
ステップ70017:圧縮したデータの長さから、現在、割り当てている実ページだけで、データを格納できるかをチェックする。格納できれば、ステップ70019へジャンプする。
ステップ70018:空きページ情報2500が示す空いた状態にある実ページ情報2203(当該実ページ情報2203)を、圧縮末尾ポインタ2110が示していた実ページ情報2203の次ページポインタ3002が示すようにする。また、当該実ページ情報2203を、圧縮末尾ポインタ2110が示すようにする。加えて、空きページ情報2500には、当該実ページ情報2203(割り当てた実ページ情報2203)の次ページポインタ3002が示す情報を設定する。
ステップ70019:書き込みを行うと認識した領域に、圧縮後のデータを書き込むため、ストレージ装置130に書き込み要求を発行する。
ステップ70020:完了を待つ。
ステップ70021:ファイルのデータのすべてが完了したかを確認し、完了した場合、ステップ70023へジャンプする。
ステップ70022:圧縮後のデータの長さから、次に書き込みを行うアドレスを計算する。この後、ステップ70010へジャンプする。
ステップ70023:受け付け時先頭ポインタ2107からポイントされている、すべての実ページ情報2203を、空きページ情報2500が示す空き実ページ情報キュー900に戻す。この後、ステップ70007に戻る。
本実施の形態によれば、圧縮を後から一括して実行するファイルストレージにおいて、圧縮しなければならないデータ量に応じて、適用する圧縮アルゴリズムを選択することにより、データの削減率を向上できる。また、アクセス頻度の高いファイルは一時的に伸長したデータをキャッシュすることにより、応答性能を改善できる。
(付記)
上述の実施の形態には、例えば、以下のような内容が含まれる。
上述の実施の形態においては、本発明をファイルストレージに適用するようにした場合について述べたが、本発明はこれに限らず、種々のシステム、装置、方法、プログラムに広く適用することができる。
また、上述の実施の形態においては、キャッシュ領域のデータの管理がファイル単位で行われる場合について述べたが、本発明はこれに限らない。例えば、キャッシュ領域のデータの管理は、読み出し要求の単位で行われるようにしてもよい。
また、上述の実施の形態においては、アプリケーションから第1の圧縮アルゴリズムを受け取っている場合、アプリケーションからファイルの読み出し要求を受けたとき、当該ファイルのデータが第2の圧縮アルゴリズムにより圧縮されているデータをストレージ装置から読み出し、読み出した圧縮されているデータを第2の圧縮アルゴリズムにより伸長し、伸長したデータを第1の圧縮アルゴリズムにより圧縮してアプリケーションに応答する場合について述べたが、本発明はこれに限らない。例えば、アプリケーションから第1の圧縮アルゴリズムを受け取っている場合、アプリケーションからファイルの読み出し要求を受けたとき、当該ファイルのデータが第2の圧縮アルゴリズムにより圧縮されているデータをストレージ装置から読み出し、読み出した圧縮されているデータを第2の圧縮アルゴリズムにより伸長し、伸長したデータを、第1の圧縮アルゴリズムとは異なる第3の圧縮アルゴリズムにより圧縮してアプリケーションに応答するようにしてもよい。
また、上述した実施の形態の構成は、例えば、以下の構成としてもよい。
(1)
アプリケーション(例えば、ユーザアプリケーション140)から、ファイルに対する書き込み要求を受け付け、上記ファイルのデータを記憶装置(例えば、ストレージ装置130)に書き込み、後から、書き込みを行ったファイルのデータを圧縮して記憶装置(例えば、ストレージ装置130)に書き込むプロセッサ(例えば、プロセッサ200)を備えるファイルストレージ(例えば、ファイルストレージ100、サーバ110)であって、上記プロセッサは、ステップ70006において、書き込みを行った一つ以上のファイルの所定時間に書き込まれたデータ量(例えば、トータル圧縮量2800)に応じて、圧縮に用いる圧縮アルゴリズムを決定してもよい。上記ファイルストレージは、例えば、センサがデータの生成速度に応じて圧縮方式を選択するものである。ストレージ装置としてはセンサが生み出すデータの生成速度は、所定時間に書き込まれたデータ量に相当する。
例えば、プロセッサは、書き込みデータ量が閾値を超えない場合は、第1の圧縮速度の圧縮アルゴリズムを決定し、書き込みデータ量が閾値を超える場合は、第1の圧縮速度よりも大きい第2の圧縮速度の圧縮アルゴリズムを決定する。また、例えば、プロセッサは、書き込みデータ量が少ない時間帯(例えば、夜間)は、第1の圧縮速度の圧縮アルゴリズムを決定し、書き込みデータ量が多い時間帯(例えば、昼間)は、第1の圧縮速度よりも大きい第2の圧縮速度の圧縮アルゴリズムを決定してもよい。
ここで、圧縮アルゴリズムは、例えば、アプリケーションプログラム(圧縮ソフトウェア)である。この場合、プロセッサは、圧縮ソフトウェアにおいて圧縮速度(圧縮率)に係る設定を変更し、設定を変更した圧縮ソフトウェアを実行してデータを圧縮してもよいし、圧縮速度が異なる複数の圧縮ソフトウェアから、決定した圧縮ソフトウェアを実行してデータを圧縮してもよい。
上記構成によれば、書き込みを行ったファイルのデータが後から圧縮されるので、例えば、データの格納時の応答性能を劣化させることなく、データの削減率を高めることができる。
(2)
(1)に記載のファイルストレージであって、上記プロセッサは、ステップ70006において、書き込みを行った一つ以上のファイルの所定時間に書き込まれたデータ量と、複数の圧縮アルゴリズムのそれぞれの圧縮速度(例えば、圧縮性能2005)とにしたがって、圧縮に用いる圧縮アルゴリズムを決定してもよい。
例えば、プロセッサは、100GBのデータが書き込まれた場合、所定の時間(例えば、予め指定された時間、ユーザアプリケーション140に係る業務が終了してから業務が開始するまでの時間、1日毎といった周期的な時間)内に、100GBのデータを圧縮可能な圧縮アルゴリズムを決定する。
上記構成によれば、例えば、データの発生速度より大きい圧縮速度の圧縮アルゴリズムの中から、最も圧縮率の高い圧縮アルゴリズムを決定することができるので、未圧縮のデータがたまってしまう事態を回避することができる。
(3)
(1)に記載のファイルストレージであって、上記プロセッサは、ステップ50002において、アプリケーションからファイルに書き込むデータのメディア種別(例えば、メディア種別2002)を受け取り、ステップ70006において、書き込みを行った一つ以上のファイルの所定時間に書き込まれたデータ量と、受け取ったメディア種別とにしたがって、圧縮に用いる圧縮アルゴリズムを決定してもよい。
上記プロセッサは、例えば、動画のデータと静止画のデータと音声のデータとでは、それぞれ異なる圧縮アルゴリズムを決定する。また、動画のデータと、静止画のデータと、音声のデータとが未圧縮のデータであり、合計の書き込みデータ量が4500MBであり、圧縮に使用できる時間が45秒であった場合、例えば、上記プロセッサは、動画、静止画、音声のそれぞれについて、100MB/sの圧縮速度を満たす圧縮アルゴリズムの中から、最も圧縮率の高い圧縮アルゴリズムを決定する。このように、平均の圧縮速度で圧縮アルゴリズムを決定してもよい。ただし、圧縮アルゴリズムの決定方法は、これに限定されない。
上記構成によれば、例えば、メディア種別に適した圧縮アルゴリズムを決定することができるので、データの削減率をより高めることができる。
付言するならば、プロセッサは、同じメディア種別であったとしても、アプリケーションから劣化していないデータが送信される場合には、品質(画質、音質等)が優先される圧縮アルゴリズムを決定し、アプリケーションからサイズが小さくされてデータが送信される場合には、品質が優先されない圧縮アルゴリズムを決定してもよい。
(4)
(3)に記載のファイルストレージであって、上記プロセッサは、ステップ70006において、書き込みを行った一つ以上のファイルの所定時間に書き込まれたデータ量と、受け取ったメディア種別と、複数の圧縮アルゴリズムのそれぞれの圧縮速度とにしたがって、圧縮に用いる圧縮アルゴリズムを決定してもよい。
上記構成によれば、例えば、メディア種別ごとに、データの発生速度より大きい圧縮速度の圧縮アルゴリズムの中から、最も圧縮率の高い圧縮アルゴリズムを決定することができるので、データの削減率をより高めると共に、未圧縮のデータがたまってしまう事態を回避することができる。
(5)
(1)に記載のファイルストレージであって、上記プロセッサは、アプリケーションから、上記アプリケーションより送信されるデータについての圧縮の有無と、圧縮を行っている場合の圧縮アルゴリズムとを受け取る(例えば、図13のステップ50002参照)。
上記構成では、例えば、プロセッサは、アプリケーションから第1の圧縮アルゴリズムを受け取った場合、当該アプリケーションから送信される圧縮されたデータを、当該第1の圧縮アルゴリズムを用いて伸長し、当該第1の圧縮アルゴリズムよりも圧縮率の高い第2の圧縮アルゴリズムで圧縮して記憶することができるようになる。なお、上記構成では、例えば、プロセッサは、当該アプリケーションから読み出し要求があったとき、対象のデータを第2の圧縮アルゴリズムで伸長し、伸長したデータを第1の圧縮アルゴリズムを用いて圧縮して当該アプリケーションに応答することができる。
また、例えば、プロセッサは、アプリケーションから第1の圧縮アルゴリズムを受け取った場合、第1の圧縮アルゴリズムと似たような性質の第2の圧縮アルゴリズムを決定できるようになる。例えば、プロセッサは、第1の圧縮アルゴリズムの圧縮が可逆圧縮であるか非可逆圧縮であるかを加味して、第2の圧縮アルゴリズムを決定することができるので、アプリケーションから受け取ったデータの性質を損なうことなく圧縮できるようになる。
(6)
(5)に記載のファイルストレージであって、上記プロセッサは、ステップ70006において、書き込みを行った一つ以上のファイルの所定時間に書き込まれたデータ量と、複数の圧縮アルゴリズムのそれぞれの圧縮速度とにしたがって、圧縮に用いる圧縮アルゴリズムを決定してもよい。
上記構成によれば、例えば、未圧縮のデータがたまってしまう事態を回避することができる。更に、上記構成によれば、例えば、アプリケーションから送信される圧縮されたデータを伸長し、より圧縮率の高い圧縮アルゴリズムで圧縮できるので、アプリケーションから送信される圧縮されたデータの削減率をより高めることができる。
(7)
(5)に記載のファイルストレージであって、上記プロセッサは、ステップ70006において、書き込みを行ったデータが圧縮されたデータである場合、上記データを伸長する時間(例えば、トータル伸長時間2900)と、書き込みを行った一つ以上のファイルの所定時間に書き込まれたデータ量と、複数の圧縮アルゴリズムのそれぞれの圧縮速度とにしたがって、圧縮に用いる圧縮アルゴリズムを決定してもよい。
上記構成によれば、例えば、プロセッサは、アプリケーションから送信される圧縮されたデータを伸長する時間を加味して、圧縮アルゴリズムを決定することができるので、アプリケーションから送信される圧縮された圧縮率の低いデータがたまってしまう事態を回避することができる。
(8)
(5)に記載のファイルストレージであって、上記プロセッサは、ステップ50002において、アプリケーションからファイルに書き込むデータのメディア種別を受け取り、ステップ70006において、書き込みを行った一つ以上のファイルの所定時間に書き込まれたデータ量と、受け取ったメディア種別とにしたがって、圧縮に用いる圧縮アルゴリズムを決定してもよい。
上記構成によれば、例えば、メディア種別に適した圧縮アルゴリズムを決定することができるので、アプリケーションから送信される圧縮されたデータの削減率をより高めることができる。
(9)
(8)に記載のファイルストレージであって、上記プロセッサは、ステップ70006において、書き込みを行った一つ以上のファイルの所定時間に書き込まれたデータ量と、受け取ったメディア種別と、複数の圧縮アルゴリズムのそれぞれの圧縮速度とにしたがって、圧縮に用いる圧縮アルゴリズムを決定してもよい。
上記構成によれば、例えば、アプリケーションから送信される圧縮されたデータの削減率をより高めると共に、未圧縮のデータがたまってしまう事態を回避することができる。
(10)
(9)に記載のファイルストレージであって、上記プロセッサは、書き込みを行ったデータが圧縮されたデータである場合、ステップ70006において、上記データを伸長する時間と、書き込みを行った一つ以上のファイルの所定時間に書き込まれたデータ量と、受け取ったメディア種別と、複数の圧縮アルゴリズムのそれぞれの圧縮速度とにしたがって、圧縮に用いる圧縮アルゴリズムを決定してもよい。
上記構成によれば、例えば、アプリケーションから送信される圧縮されたデータの削減率をより高めると共に、アプリケーションから送信される圧縮された圧縮率の低いデータがたまってしまう事態を回避することができる。
(11)
アプリケーション(例えば、ユーザアプリケーション140)から、ファイルに対する書き込み要求を受け付け、上記ファイルのデータを記憶装置(例えば、ストレージ装置130)に書き込み、後から、書き込みを行ったファイルのデータを圧縮して記憶装置(例えば、ストレージ装置130)に書き込むプロセッサ(例えば、プロセッサ200)を備えるファイルストレージ(例えば、ファイルストレージ100、サーバ110)であって、上記プロセッサは、アプリケーションから、圧縮したデータを記憶したファイルに対する読み出し要求を受けたとき、ステップ60006において、上記圧縮したデータを伸長し、ステップ60013において、伸長したデータをキャッシュ領域に格納し、ステップ60002において、アプリケーションから読み出し要求を受けたファイルのデータが上記キャッシュ領域に存在するか否かを判定し、上記キャッシュ領域に存在する場合、ステップ60017およびステップ60019において、上記キャッシュ領域からデータを読み出し、ステップ60021において、読み出したデータを上記アプリケーションに渡す。
上記構成によれば、例えば、データの格納時の応答性能を劣化させることなく、データの削減率を高めると共に、読み出し頻度の高いファイルのデータの読み出し性能が劣化する事態を回避することができる。
(12)
アプリケーション(例えば、ユーザアプリケーション140)から、ファイルに対する書き込み要求を受け付け、上記ファイルのデータを記憶装置(例えば、ストレージ装置130)に書き込み、後から、書き込みを行ったファイルのデータを圧縮して記憶装置(例えば、ストレージ装置130)に書き込むプロセッサ(例えば、プロセッサ200)を備えるファイルストレージ(例えば、ファイルストレージ100、サーバ110)であって、上記プロセッサは、ステップ50002において、アプリケーションから、上記アプリケーションより送信されるデータについての圧縮の有無と、圧縮を行っている場合の圧縮アルゴリズムとを受け取り、アプリケーションから、圧縮したデータを記憶したファイルに対する読み出し要求を受けたとき、ステップ60006において、上記圧縮したデータを伸長し、上記アプリケーションから圧縮アルゴリズムを受け取っている場合、伸長したデータを、受け取った圧縮アルゴリズムを用いて圧縮し、ステップ60013において、圧縮したデータをキャッシュ領域に格納し、ステップ60002において、アプリケーションから読み出し要求を受けたファイルのデータが上記キャッシュ領域に存在するか否かを判定し、上記キャッシュ領域に存在する場合、ステップ60017およびステップ60019において、上記キャッシュ領域からデータを読み出し、ステップ60021において、読み出したデータを上記アプリケーションに渡す。
上記構成によれば、例えば、データの格納時の応答性能を劣化させることなく、データの削減率を高めると共に、読み出し頻度の高いファイルの圧縮されたデータの読み出し性能が劣化する事態を回避することができる。
また上述した構成については、本発明の要旨を超えない範囲において、適宜に、変更したり、組み替えたり、組み合わせたり、省略したりしてもよい。
100 ファイルストレージ
110 サーバ
120 ネットワーク
130 ストレージ装置
140 ユーザアプリケーション
200 プロセッサ
210 メインメモリ
220 共有メモリ
2000 ファイルストレージ情報
2100 ファイル情報
2200 ストレージ装置情報
2203 実ページ情報
4000 ライト処理部
4100 リード処理部
4200 圧縮処理部

Claims (12)

  1. アプリケーションから、ファイルに対する書き込み要求を受け付け、前記ファイルのデータを記憶装置に書き込み、後から、書き込みを行ったファイルのデータを圧縮して記憶装置に書き込むプロセッサを備えるファイルストレージであって、
    前記プロセッサは、書き込みを行った一つ以上のファイルの所定時間に書き込まれたデータ量に応じて、圧縮に用いる圧縮アルゴリズムを決定する、
    ファイルストレージ。
  2. 請求項1に記載のファイルストレージであって、
    前記プロセッサは、書き込みを行った一つ以上のファイルの所定時間に書き込まれたデータ量と、複数の圧縮アルゴリズムのそれぞれの圧縮速度とにしたがって、圧縮に用いる圧縮アルゴリズムを決定する、
    ファイルストレージ。
  3. 請求項1に記載のファイルストレージであって、
    前記プロセッサは、
    アプリケーションからファイルに書き込むデータのメディア種別を受け取り、
    書き込みを行った一つ以上のファイルの所定時間に書き込まれたデータ量と、受け取ったメディア種別とにしたがって、圧縮に用いる圧縮アルゴリズムを決定する、
    ファイルストレージ。
  4. 請求項3に記載のファイルストレージであって、
    前記プロセッサは、書き込みを行った一つ以上のファイルの所定時間に書き込まれたデータ量と、受け取ったメディア種別と、複数の圧縮アルゴリズムのそれぞれの圧縮速度とにしたがって、圧縮に用いる圧縮アルゴリズムを決定する、
    ファイルストレージ。
  5. 請求項1に記載のファイルストレージであって、
    前記プロセッサは、アプリケーションから、前記アプリケーションより送信されるデータについての圧縮の有無と、圧縮を行っている場合の圧縮アルゴリズムとを受け取る、
    ファイルストレージ。
  6. 請求項5に記載のファイルストレージであって、
    前記プロセッサは、書き込みを行った一つ以上のファイルの所定時間に書き込まれたデータ量と、複数の圧縮アルゴリズムのそれぞれの圧縮速度とにしたがって、圧縮に用いる圧縮アルゴリズムを決定する、
    ファイルストレージ。
  7. 請求項5に記載のファイルストレージであって、
    前記プロセッサは、書き込みを行ったデータが圧縮されたデータである場合、前記データを伸長する時間と、書き込みを行った一つ以上のファイルの所定時間に書き込まれたデータ量と、複数の圧縮アルゴリズムのそれぞれの圧縮速度とにしたがって、圧縮に用いる圧縮アルゴリズムを決定する、
    ファイルストレージ。
  8. 請求項5に記載のファイルストレージであって、
    前記プロセッサは、
    アプリケーションからファイルに書き込むデータのメディア種別を受け取り、
    書き込みを行った一つ以上のファイルの所定時間に書き込まれたデータ量と、受け取ったメディア種別とにしたがって、圧縮に用いる圧縮アルゴリズムを決定する、
    ファイルストレージ。
  9. 請求項8に記載のファイルストレージであって、
    前記プロセッサは、書き込みを行った一つ以上のファイルの所定時間に書き込まれたデータ量と、受け取ったメディア種別と、複数の圧縮アルゴリズムのそれぞれの圧縮速度とにしたがって、圧縮に用いる圧縮アルゴリズムを決定する、
    ファイルストレージ。
  10. 請求項9に記載のファイルストレージであって、
    前記プロセッサは、書き込みを行ったデータが圧縮されたデータである場合、前記データを伸長する時間と、書き込みを行った一つ以上のファイルの所定時間に書き込まれたデータ量と、受け取ったメディア種別と、複数の圧縮アルゴリズムのそれぞれの圧縮速度とにしたがって、圧縮に用いる圧縮アルゴリズムを決定する、
    ファイルストレージ。
  11. アプリケーションから、ファイルに対する書き込み要求を受け付け、前記ファイルのデータを記憶装置に書き込み、後から、書き込みを行ったファイルのデータを圧縮して記憶装置に書き込むプロセッサを備えるファイルストレージであって、
    前記プロセッサは、
    アプリケーションから、圧縮したデータを記憶したファイルに対する読み出し要求を受けたとき、前記圧縮したデータを伸長し、伸長したデータをキャッシュ領域に格納し、
    アプリケーションから読み出し要求を受けたファイルのデータが前記キャッシュ領域に存在するか否かを判定し、前記キャッシュ領域に存在する場合、前記キャッシュ領域からデータを読み出し、読み出したデータを前記アプリケーションに渡す、
    ファイルストレージ。
  12. アプリケーションから、ファイルに対する書き込み要求を受け付け、前記ファイルのデータを記憶装置に書き込み、後から、書き込みを行ったファイルのデータを圧縮して記憶装置に書き込むプロセッサを備えるファイルストレージであって、
    前記プロセッサは、
    アプリケーションから、前記アプリケーションより送信されるデータについての圧縮の有無と、圧縮を行っている場合の圧縮アルゴリズムとを受け取り、
    アプリケーションから、圧縮したデータを記憶したファイルに対する読み出し要求を受けたとき、前記圧縮したデータを伸長し、前記アプリケーションから圧縮アルゴリズムを受け取っている場合、伸長したデータを、受け取った圧縮アルゴリズムを用いて圧縮し、圧縮したデータをキャッシュ領域に格納し、
    アプリケーションから読み出し要求を受けたファイルのデータが前記キャッシュ領域に存在するか否かを判定し、前記キャッシュ領域に存在する場合、前記キャッシュ領域からデータを読み出し、読み出したデータを前記アプリケーションに渡す、
    ファイルストレージ。
JP2021115973A 2021-07-13 2021-07-13 ファイルストレージ Pending JP2023012369A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2021115973A JP2023012369A (ja) 2021-07-13 2021-07-13 ファイルストレージ
CN202210127720.9A CN115617259A (zh) 2021-07-13 2022-02-11 文件存储器
US17/693,462 US20230021108A1 (en) 2021-07-13 2022-03-14 File storage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021115973A JP2023012369A (ja) 2021-07-13 2021-07-13 ファイルストレージ

Publications (1)

Publication Number Publication Date
JP2023012369A true JP2023012369A (ja) 2023-01-25

Family

ID=84856585

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021115973A Pending JP2023012369A (ja) 2021-07-13 2021-07-13 ファイルストレージ

Country Status (3)

Country Link
US (1) US20230021108A1 (ja)
JP (1) JP2023012369A (ja)
CN (1) CN115617259A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023018365A (ja) * 2021-07-27 2023-02-08 富士通株式会社 情報処理プログラム、情報処理方法及び情報処理装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120089775A1 (en) * 2010-10-08 2012-04-12 Sandeep Ranade Method and apparatus for selecting references to use in data compression
US11487430B2 (en) * 2018-03-16 2022-11-01 International Business Machines Corporation Reducing data using a plurality of compression operations in a virtual tape library
US11119802B2 (en) * 2019-05-01 2021-09-14 EMC IP Holding Company LLC Method and system for offloading parallel processing of multiple write requests

Also Published As

Publication number Publication date
US20230021108A1 (en) 2023-01-19
CN115617259A (zh) 2023-01-17

Similar Documents

Publication Publication Date Title
US6360300B1 (en) System and method for storing compressed and uncompressed data on a hard disk drive
KR100745532B1 (ko) 압축률에 기반한 압축 메인 메모리 사용을 위한 시스템 및방법
US6857047B2 (en) Memory compression for computer systems
US6941420B2 (en) Log-structure array
US7181457B2 (en) System and method for utilizing compression in database caches to facilitate access to database information
US9547591B1 (en) System and method for cache management
US6449689B1 (en) System and method for efficiently storing compressed data on a hard disk drive
EP2823401B1 (en) Deduplicating hybrid storage aggregate
KR100216146B1 (ko) 직접 액세스 저장장치의 데이터 압축 방법 및 압축 데이터 구조
US5881311A (en) Data storage subsystem with block based data management
EP3036642B1 (en) Hardware managed compressed cache
US9256367B2 (en) Data storage and moving of relatively infrequently accessed data among storage of different types
US10430376B1 (en) Managing inline data compression in storage systems
US10338833B1 (en) Method for achieving sequential I/O performance from a random workload
US9727479B1 (en) Compressing portions of a buffer cache using an LRU queue
JP5944502B2 (ja) 計算機システム及び制御方法
EP3278229B1 (en) Compressed pages having data and compression metadata
WO2011121590A1 (en) Log structure array
CN112799595A (zh) 数据处理方法、设备及存储介质
CN111190537B (zh) 一种追加写场景下顺序存储磁盘管理的方法及系统
WO1993000635A1 (en) Data storage management systems
US20230021108A1 (en) File storage
US8990615B1 (en) System and method for cache management
US9286219B1 (en) System and method for cache management
US9128854B1 (en) System and method for data prediction

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240307