JP7475319B2 - ストレージシステム及びストレージシステムにおけるデータ処理方法 - Google Patents

ストレージシステム及びストレージシステムにおけるデータ処理方法 Download PDF

Info

Publication number
JP7475319B2
JP7475319B2 JP2021186159A JP2021186159A JP7475319B2 JP 7475319 B2 JP7475319 B2 JP 7475319B2 JP 2021186159 A JP2021186159 A JP 2021186159A JP 2021186159 A JP2021186159 A JP 2021186159A JP 7475319 B2 JP7475319 B2 JP 7475319B2
Authority
JP
Japan
Prior art keywords
data
compression
format
packet
length
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.)
Active
Application number
JP2021186159A
Other languages
English (en)
Other versions
JP2023073606A (ja
Inventor
知輝 東海林
永雅 水島
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 JP2021186159A priority Critical patent/JP7475319B2/ja
Priority to US17/691,595 priority patent/US20230152972A1/en
Priority to CN202210978639.1A priority patent/CN116136741A/zh
Publication of JP2023073606A publication Critical patent/JP2023073606A/ja
Application granted granted Critical
Publication of JP7475319B2 publication Critical patent/JP7475319B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3086Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing a sliding window, e.g. LZ77
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Memory System (AREA)

Description

本発明は、ストレージシステムにおけるデータ圧縮に関する。
ストレージシステムは大量のデータを管理・蓄積する必要があるため、システムの容量当たりのコストを低減させることができる、データ圧縮技術が注目されている。データ圧縮機能を使用したストレージシステムでは、ホストからデータの書き込み要求を出した場合、通常の書き込み処理に加えてデータ圧縮処理を実行する必要があり、ライト性能に影響を生じる。
ストレージシステムのデータ圧縮機能では、データの信頼性を担保するため、特許文献1のように、圧縮直後のデータをすぐに伸長して、正しい伸長データが出力されているかを確認する必要がある。
LZ4アルゴリズムは、計算速度が非常に速いことで知られる可逆データ圧縮アルゴリズムである。このアルゴリズムは、Lempel-Ziv(LZ)法と呼ばれる、辞書型圧縮の一種である。データの圧縮時、データはコピー符号とリテラル符号と呼ばれる二種の符号に分けられる。
コピー符号とは、ある文字列が以前にも出現していた時に、その距離と長さ情報で置き換えた符号であり、リテラル符号とは、コピー符号が見つからなかった文字列を非圧縮で出力した符号である。すなわち、辞書型圧縮アルゴリズムにおいて、圧縮対象のデータはリテラル符号とコピー符号それぞれをひとまとまりにしたデータ列が交互に並ぶこととなる。
LZ4アルゴリズムにおける圧縮データは、非特許文献1に示されるように、リテラル符号とコピー符号を1セットずつ含むパケットを1単位として出力するフォーマットをとる。
特開平8-55063号公報
Jeehong Kim and Jundong Cho. 2019. Hardware-accelerated Fast Lossless Compression Based on LZ4 Algorithm. In Proceedings of the 2019 3rd International Conference on Digital Signal Processing (ICDSP 2019). Association for Computing Machinery, New York, NY, USA, 65-68.
圧縮直後のデータを伸長してデータチェックすることで、データの信頼性を担保することができる。しかし、圧縮処理のみ実施した場合に比べてさらにライト性能が悪化するため、ライト性能の悪化を抑える技術が重要である。
本発明の代表的な一例に係るストレージシステムは、インタフェースと、コントローラと、を含む。前記コントローラは、前記インタフェースを介して受信した受信データを圧縮して圧縮データを生成する、圧縮回路と、前記圧縮データをストレージドライブに格納する前に伸長して、データ整合性を確認する伸長回路と、を含む。前記圧縮回路は、前記受信データの圧縮タスクを順次実行して、前記圧縮データのパケットを順次生成して前記伸長回路に転送する。前記伸長回路は、前記圧縮タスクと並列に、受信した前記パケットを伸長する。
本発明の代表的な一例によれば、データ圧縮機能を有するストレージシステムにおいて、データ圧縮後の伸長チェックを含めた圧縮スループットの悪化を抑制できる。上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
図1は、実施例1のデータ圧縮システムを適用したストレージシステムの全体構成の例を示す。 図2は、実施例1のストレージシステムのホストライト処理フローの例を示す。 図3は、実施例1のストレージシステムのホストライト処理のデータフローの例を示す。 図4は、実施例1のストレージシステムのライト処理における保証コード付きのデータ構造の例を示す。 図5は、実施例1の圧縮データを伸長チェックする処理のフローチャートの例を示す。 図6は、実施例1のストレージシステムの圧縮伸長回路の内部ブロックの例を示す。 図7は、実施例1の圧縮データを伸長チェックする回路の並列動作の例を示す。 図8は、実施例2の一般的なLZ4フォーマットを示す。 図9は、実施例2の一般的なLZ4の圧縮データパターンの例を示す。 図10は、実施例2の本発明のLZ4フォーマットを示す。 図11は、実施例2の本発明のLZ4の圧縮データパターンの例を示す。 図12は、実施例2のLZ4フォーマットのリテラル符号長領域の詳細説明を示す。 図13は、実施例2の本発明のLZ4のパケットごとの圧縮処理のフローチャートの例を示す。 図14は、実施例3の本発明のLZ4フォーマットを示す。 図15は、実施例3の本発明のLZ4のパケットごとの圧縮処理のフローチャートを示す。
以下、図面に基づいて、本発明の実施の形態を説明する。なお、以下の記載および図面は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略および簡略化がなされており、本発明は、他の種々の形態でも実施する事が可能であり、特に限定しない限り、各構成要素は単数でも複数でも構わない。
また、以下に説明する実施例は特許請求の範囲に係る発明を限定するものではなく、実施例の中で説明されている要素の組み合わせの全てが、発明の解決手段に必須であるとは限らない。
以下の説明では、「テーブル」、「リスト」、「キュー」等の表現にて各種情報を説明することがあるが、各種情報は、これら以外のデータ構造で表現されていてもよく、データ構造に依存しないことを示すため、「xxxのテーブル」、「xxxのリスト」、「xxxのキュー」等を「xxx情報」等と称することがある。以下の説明では、識別情報について説明する際に、「識別情報」、「識別子」、「名」、「ID」、「番号」等の表現を用いるが、これらについてはお互いに置換が可能である。
以下の説明では、同一あるいは同様な機能を有する構成要素が複数ある場合には、基本的に同一の符号を付して説明するが、機能が同じであっても機能を実現するための手段が異なる場合がある。さらに、後述する本発明の実施例は、汎用コンピュータ上で稼動するソフトウェアで実装してもよいし、専用ハードウェア又はソフトウェアとハードウェアの組み合わせで実装してもよい。
また、以下の説明では「プログラム」を主語として処理を説明することがあるが、プログラムはプロセッサ(例えば、CPU:Central Processing Unit)によって実行されることによって、定められた処理に対して、適宜に記憶装置(例えば、メモリ)、および/または、インタフェースデバイス(通信ポート)等を用いながら行うため、処理の主体がプロセッサとして説明してもよい。
プログラムを主語として説明された処理は、プロセッサを有する計算機(例えば、計算ホスト、ストレージ装置)が行う処理としてもよい。また、以下の説明では、「コントローラ」の表現で、プロセッサ又はプロセッサが行う処理の一部又は全部を行うハードウェア回路を指してもよい。
プログラムは、プログラムソース(例えば、プログラム配布サーバや、計算機が読み取り可能な記憶メディア)から、各計算機にインストールされてもよく、この場合、プログラム配布サーバはCPUと記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムを記憶し、配布プログラムをCPUが実行することで、プログラム配布サーバのCPUは配布対象のプログラムを他の計算機に配布してもよい。
以下において説明されるストレージシステムは、データ圧縮機能を有する。ストレージシステムは、受信データを圧縮して圧縮データを生成し、圧縮データをストレージドライブに格納する。ストレージシステムは、ストレージドライブに格納する前に圧縮データを伸長して、圧縮前データと伸長データの整合性をチェックする。これにより、高い信頼性を確保できる。
ストレージシステムは、データを圧縮する圧縮回路と、圧縮データを伸長する伸長回路とを含む。これらは、並列動作が可能である。圧縮回路は圧縮データのパケットを順次生成して、伸長回路に送信する。伸長回路は、圧縮回路の圧縮処理と並列に、パケットの伸長処理を実行する。これにより、データ圧縮後の伸長チェックを含めた圧縮スループットの悪化を抑制し、ストレージシステムの所定のライト性能を保証することができる。
図1は、本明細書の一実施例に係る、圧縮機能付きストレージシステムの全体構成の例を示す。ストレージシステム101は、ストレージコントローラ112及びストレージコントローラ122を搭載するデュアルコントローラ構成となっている。
ストレージコントローラ112は、ホストI/F(Interface)111と接続され、不図示のホストと通信し、また、スイッチ117を含み、複数のストレージドライブ102と通信する。ストレージドライブ102は、例えば、不揮発性ストレージドライブである、HDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
ストレージコントローラ112は、さらに、ホストと送受信するデータとストレージシステム101を制御するためのCPU113と、CPU113のメモリ114と、ストレージコントローラ112とストレージコントローラ122を接続するためのスイッチ115と、を含む。
CPU113はプロセッサであって、1又は複数のコアを含み、メモリ114に格納されているプログラムに従って動作することで、所定の機能を実現する。メモリ114は、例えば、DRAM等の揮発性メモリを使用できる。ストレージコントローラ112は、さらに、圧縮伸長回路116を含み、スイッチ115に接続されている。
ストレージコントローラ112とストレージコントローラ122のハードウェア構成は同等であり、ストレージコントローラ122の詳細説明は省略する。ストレージコントローラ122は、スイッチ127と、CPU123と、メモリ124と、スイッチ125と、圧縮伸長回路126と、を含む。図1の構成例において、圧縮伸長回路126はストレージコントローラ内に実装されているが、ストレージドライブ102を収容するドライブボックス(不図示)内に実装されてもよい。
図2、図3を用いて、ストレージシステム101で圧縮機能を動作させたときのホストライト処理について説明する。図2は、ストレージシステム101の圧縮機能動作を含めたホストライト処理の動作フローを示す。図3は、図2の処理フローで示されるストレージシステム101内のデータフローを示す。
図3におけるデータフロー301において、ストレージコントローラ112のCPU113は、ホストI/F111から平文ライトデータをメモリ114に格納する(図2におけるステップ201)。
図3におけるデータフロー302において、CPU113は、メモリ114に格納されている平文ライトデータを、スイッチ115と、スイッチ125と、CPU123とを通して、ストレージコントローラ122のメモリ124に二重化する(図2におけるステップ202)。
図3におけるデータフロー303において、CPU113は、メモリ114に格納されている平文ライトデータを、スイッチ115を通して圧縮伸長回路116に転送し、圧縮伸長回路116が転送されたデータを圧縮する。(図2におけるステップ203)
図3におけるデータフロー304において、圧縮伸長回路116は、圧縮ライトデータをストレージコントローラ112のメモリ114に返送すると同時に、ストレージコントローラ122のメモリ124にも転送し、二重化を行う。(図2におけるステップ204)
図3におけるデータフロー305において、CPU113は、メモリ114に格納されている圧縮ライトデータを、スイッチ117を通してストレージドライブ102に書き込む。(図2におけるステップ205)
図4は、ストレージシステム101の内部における、ユーザデータと、それに付与されている保証コードを示す。保証コード402は、ユーザデータ401の512Bごとに8Bとして付加されている。ストレージシステム101は、ホストライト処理において、ユーザデータ401をホストから受信し、保証コード402を、データフロー301のホストI/F111で付加する。
図5は、ストレージシステム101のホストライト処理において、圧縮機能を動作させたときの、圧縮伸長回路116の内部の、圧縮データの伸長チェック処理を行う処理フローを示す。伸長チェック処理は、伸長データと圧縮前データの整合性を確認する。保証コードを付与されたユーザデータは、圧縮伸長回路116で圧縮伸長される平文ライトデータである。
ステップ501において、圧縮伸長回路116は平文ライトデータの保証コードを除去し、圧縮対象となるユーザデータのみを抽出する。ステップ502において、圧縮伸長回路116は平文ライトデータを圧縮する。圧縮データはパケット単位で出力される。
ステップ503において、圧縮伸長回路116はパケットごとに圧縮データを伸長する。圧縮伸長回路116はパケット単位での圧縮と伸長を繰り返し、全平文ライトデータに対して同様の処理が完了したことをステップ504で判定する。処理が完了していない場合(504:NO)、フローはステップ502に戻る。
全圧縮データの伸長まで完了すると(504:YES)、ステップ505において、圧縮伸長回路116は、伸長データと、元の平文ライトデータが一致しているか、検算処理を行う。
検算の結果、伸長データと平文ライトデータが一致し、データに正しく圧縮がかかっていることを確認した場合(506:YES)、圧縮伸長回路116は、ステップ507において、圧縮データを出力し、圧縮データの伸長チェック処理を完了する。伸長データと平文ライトデータが不一致となった場合(506:NO)、圧縮伸長回路116は、ステップ508において、エラー応答を返し、圧縮データの伸長チェック処理を完了する。
図6は、圧縮伸長回路116の内部回路構成例を示す。圧縮伸長回路116は、I/F601、圧縮部602、伸長部603、比較部604、判定部605、信号線611~615を含む。本実施例において、圧縮部(圧縮回路)602、伸長部(伸長回路)603、比較部604、判定部605はそれぞれ、異なる回路として実装される。
I/F601は信号線611を通して圧縮部602に平文を送信する。圧縮部602はデータを圧縮し、信号線612を通して伸長部603に圧縮データを出力する。伸長部603は、圧縮データを伸長し、信号線613を通して比較部604に伸長データを出力する。
比較部604は、信号線611を通して圧縮前の平文をI/F601から受け取り、さらに信号線613を通して伸長部603から受け取った伸長データと比較し、データの一致を確認する。比較部604は、さらに、データを比較した結果を信号線614を通して判定部605に出力する。
判定部605は、比較部604の確認結果を受け取る。判定部605は、データの一致を確認した場合は、信号線612を通して圧縮部602から受け取った圧縮データを信号線615を通してI/F601に出力する。判定部605は、データの不一致を検出した場合は、信号線615を通してI/F601にエラー応答を返す。
圧縮部602、伸長部603、比較部604、判定部605はそれぞれ独立しているため、並列に動作することが可能である。図7は、圧縮部602と伸長部603を並列に動作させたときのタイムチャートである。圧縮部602は、パケット単位に分割した圧縮データを段階的に出力する。
タスク701が、圧縮データの最初のパケットを出力するまでの時間を示す。タスク701において、最初のパケットを出力すると、圧縮部602では、次のパケットの圧縮処理を示すタスク702を開始する。同時に、圧縮データの最初のパケットは伸長部603に渡され、圧縮部602のタスク702と伸長部603のタスク711が並列に動作する。同様に、圧縮部602でタスク702の処理が終わると、圧縮部602においてタスク703と、伸長部603においてタスク712が開始され、圧縮部602と伸長部603が並列に動作する。
上述のように、本実施例は、独立に動作し得る圧縮部と伸長部を含み、パケット単位で圧縮処理及び伸長処理を実行する。これにより、圧縮部と伸長部を並列動作させて、圧縮部と伸長部を合わせた処理時間を短縮させることができる。
以下において、データ圧縮アルゴリズムの例として、LZ4を説明する。本実施例及び他の実施例を含む本明細書の実施例の特徴は、LZ4と異なる種類の圧縮アルゴリズムに適用することができる。図8は、標準的に使用されているLZ4フォーマットを示す。以下、標準的に使用されているLZ4フォーマットを標準LZ4と呼ぶ。標準LZ4の圧縮データは、パケット単位で分割されており、各パケットの圧縮が完了次第、各パケットが出力される。パケット801は、標準LZ4フォーマットの1パケットである。
パケット801には、リテラル符号とコピー符号が1セットずつ格納されている。リテラル符号は、ユーザデータの文字列をそのまま符号化したものであり、コピー符号は、ユーザデータ内の繰り返しデータを示す符号である。パケット内の具体的なデータ領域について以下で説明する。トークン領域802は、リテラル符号とコピー符号のそれぞれの長さ情報を4ビットずつ持つ、1バイトの領域である。トークン領域802に格納される符号の長さ情報は、リテラル符号及びコピー符号それぞれ15文字分までの符号長まで格納可能となる。
そのため、リテラル符号及びコピー符号が15文字を超える長さとなった場合、リテラル符号長領域803及びコピー符号長領域806というデータ領域が追加でパケットに挿入され、長いリテラル符号長とコピー符号長であっても表現可能であるように構成されている。
リテラル文字領域804は、トークン802領域及びリテラル符号長領域803に格納されているリテラル符号の長さを足した数だけ、リテラル符号のリテラル文字が非圧縮で格納されているデータ領域である。コピー距離領域805は、コピー符号の距離情報が2バイトで格納されている。
パケット801において、リテラル符号の情報を示す部分がリテラル符号部であり、コピー符号の情報を示す部分がコピー符号部である。リテラル符号部は、トークン領域802の一部、リテラル符号長領域803及びリテラル文字領域804で構成される。コピー符号部は、トークン領域802の他の一部、コピー距離領域805及びコピー符号長領域806で構成される。
図9は、標準LZ4でユーザデータ901を圧縮した場合の、圧縮データパターンを示す。ユーザデータ901は、平文ライトデータから保証コード402を除去し、ユーザデータ401のみ抽出して整列させたデータである。ユーザデータ901をLZ4で圧縮する場合、辞書圧縮の原理より、ユーザデータ901は、リテラル符号領域902A、902B、902Cと、コピー符号領域903A、903B、903Cが交互に整列する形式となる。ただし、コピー符号領域の間にリテラル符号が必ず存在するとは限らない。例えば、ユーザデータ901にリテラル符号領域902Bが存在せず、903Aと903Bのコピー符号領域が連続する場合がある。
リテラル符号の領域とコピー符号の領域に分割されるユーザデータ901は、標準LZ4の圧縮データに符号化されると、パケット801A、801B、801Cの各パケット単位に分割される。
パケット801Aは、ユーザデータ901をリテラル符号領域とコピー符号領域に分割した領域に対し、リテラル符号領域902Aとコピー符号領域903Aを一つずつ含む。パケット801Bとパケット801Cに関しても同様のため、説明は省略する。ただし、前記のように、ユーザデータ901のうち、コピー符号領域が連続するデータ領域が存在する場合、標準LZ4のパケット801は、リテラル符号を含まず、コピー符号領域のみを符号化し、格納する。
実施例2は、実施例1におけるステップ502の圧縮において、1パケット当たりの処理量に制限を設けることによって、圧縮部602と伸長部603の並列動作性をより強化するものである。
以下、実施例2を図10から図13を用いて説明する。実施例2では、図10に示すように、本実施例で新たに定義する、2つのLZ4のパケットフォーマットを使用する。図10は、これら2つのパケットフォーマットに従うパケット1001及び1011を示す。以下、本施例で新たに定義するLZ4フォーマットを本実施例のLZ4と呼ぶ。本実施例のLZ4の特徴は、パケット内のリテラル符号長に上限値が設定されていることにある。
標準LZ4のパケット801と本施例のLZ4の第1のフォーマットのパケット1001の相違点は、以下の通りである。パケット801のリテラル符号長領域803のリテラル符号長に上限値が設定されていない。一方、パケット1001のリテラル符号長領域1003のリテラル符号長に上限値が設定されている。パケット内の他の領域は同一の形式である。
本実施例のLZ4の第2のフォーマットのパケット1011は、標準LZ4パケットフォーマットに、何もコピーしないこと(無コピー)を示す符号である”ダミーコピー符号”を定義する。ダミーコピー符号は、例えば、コピー距離領域805で構成され、コピー距離領域805は、0を示す。他の例において、コピー距離領域805及びコピー符号長領域806で構成され、コピー距離領域805及びコピー符号長領域806が共に0を示してもよい。リテラル符号の長さが、パケット1001のリテラル符号長領域1003の上限値を超える場合、パケット1011に示される第2のフォーマットによって圧縮データパケットが出力される。ダミーコピー符号は、第2のフォーマットを示す部分である。
パケット1011は、ユーザデータ中でリテラル符号に符号化される領域が、本実施例のLZ4のリテラル符号長領域1003で表現可能な文字数の上限値を超過していた場合、規定されている上限値の文字(リテラル符号)をリテラル符号長領域1003に格納し、出力される。すなわち、パケット1011は、ユーザデータ中の連続するリテラル符号領域の全てをパケットに収めきることができないため、何もコピーしないダミーコピー符号1015によってパケットの区切りが表現され、出力される。そして、次のパケットを生成する圧縮処理で、ユーザデータの途中でまだ符号化されていないリテラル符号から符号化を実施する。
図11は、本実施例のLZ4でユーザデータ901を圧縮した場合の、圧縮データパターンを示す。パケットの集合1101は、本実施例のLZ4で圧縮したデータのパケットのパターンを示す一形態である。パケットの集合1101は、複数の整列したパケット1011と、終端位置のパケット1001を含む。
ユーザデータ901は、本実施例のLZ4の符号領域で分割すると、本実施例のLZ4のリテラル符号上限値をデータ長とするリテラル符号領域1111Aからリテラル符号領域1111Bまでが連続して並ぶリテラル符号領域を含み、次に、データ長が1パケットの上限値以下となるリテラル符号領域1111Cと、コピー符号領域1111Dを含む。
パケット1011Aは、ユーザデータ901のリテラル符号領域1111Aを符号化する。パケット1011Bは、ユーザデータ901のリテラル符号領域1111Bを符号化する。パケット1011Aからパケット1011Bの間には、一定のリテラル符号長とダミーコピー符号を持つパケット1011がいくつか並ぶ形式をとる。
パケット1001Aは、本実施例のLZ4が持つリテラル符号長上限以下のリテラル符号領域1111Cと、コピー符号領域1111Dを符号化する。パケットの集合1101Aは、パケット1011Aからパケット1011Bまでのいくつかのパケット1011と、パケット1001Aを含む。
パケットの集合1101は、リテラル符号とコピー符号を1セットずつ含むパケットの集合である。圧縮データ全体は、パケットの集合1101の形式が順に整列する形式をとる。パケットの集合1101は、圧縮対象のユーザデータ901のパターンによって、パケット1001が1つだけの構成であってもよい。
図12を用いて、標準LZ4のリテラル符号長の表し方と、それを踏まえた本実施例のLZ4のリテラル符号長の上限値の決定方法について説明する。図12は、トークン領域802とリテラル符号長領域803のデータ形式の詳細説明である。トークン領域802の1バイト領域のうち、上位4ビットのデータ領域1201がリテラル符号長を示す領域であり、下位4ビットのデータ領域1202がコピー符号長を示す領域である。以下、データ領域1201をトークンリテラル符号長領域1201と呼び、データ領域1202をトークンコピー符号長領域1202と呼ぶ。
リテラル符号の長さが、トークンリテラル符号長領域1201で表現可能な範囲内であった場合、リテラル符号長領域803はパケット801には挿入されない。トークンリテラル符号長領域1201の4ビットの値が全て1となった場合、すなわち4ビットで表現可能な最大値となった場合に、リテラル符号長803が挿入される。
リテラル符号長領域803においては、データ長は1バイトずつ追加される。リテラル符号長バイト1203Aはリテラル符号長領域803に追加された最初の1バイトである。リテラル符号長バイト1203Aは1バイト分の文字数、すなわち255文字まで表現することが可能である。
リテラル符号文字数が、トークンリテラル符号長領域1201とリテラル符号長バイト1203Aを合わせて表現可能な文字数を超過した場合、すなわちトークンリテラル符号長領域1201とリテラル符号長バイト1203Aの全ビットが”1”を示した場合、さらにリテラル符号長バイト1203Bがリテラル符号長領域803に追加される。
以上のように、リテラル符号長領域803では、連続したリテラル符号255文字につき、リテラル符号長領域803に1バイトずつのデータが追加される。最後、リテラル符号長バイト1203Cのように、1バイトの領域全ビットが”1”で埋まらなかった場合に、リテラル符号長バイト1203Cでリテラル符号長領域803のデータ領域の終端とみなす。
以上より、LZ4のリテラル符号長バイト1203は、次の領域にまたリテラル符号長バイト1203が追加されずにとることが可能な最大の値は、ビット列”1111 1110”である。
本実施例のLZ4パケット1011においても、以上の規則を踏襲しているため、リテラル符号長領域1003の定められた上限バイト数の末尾のバイトの値の最大値を、ビット列”1111 1110”と設定することで、リテラル符号長の符号効率を最大にすることが可能となる。
例えば、リテラル符号長領域1003の最大バイト数を1としたとき、リテラル符号長領域1003の構成要素はリテラル符号長バイト1204のみとなる。リテラル符号長バイト1204は、最大値を”1111 1110”と設定するのが最も符号効率が良い。この場合、パケット1011が格納することが可能なリテラル符号長の最大値は、トークンリテラル符号長領域1201の最大値”1111”(=15)と、リテラル符号長領域1003の最大値”1111 1110”(=254)を合計し、本実施例のLZ4の1パケット当たり269文字のリテラル符号を格納することが可能となる。
図13は、圧縮伸長回路116の圧縮部602において、本実施例のLZ4を使用した場合の、図5のステップ502の詳細な1パケット当たりの圧縮処理フローを示す。ステップ1301において、圧縮部602は、前パケットで符号化されたデータに対して平文ライトデータの次の位置から読み出し、符号を検出する。
ステップ1302において、圧縮部602は、検出された符号がリテラル符号かコピー符号かを判定する。それがリテラル符号だった場合(1302:YES)、圧縮部602は、リテラル符号の計算を行い、パケット1001またはパケット1011のリテラル符号を示す領域に、リテラル符号の符号化を行う。コピー符号だった場合(1302:NO)、圧縮部602は、トークンリテラル符号長領域1201にリテラル符号長が0であることを示す符号を書き込み、次にコピー符号の計算を行い、パケット1001のコピー符号を示す領域に、コピー符号の符号化を行う。
ステップ1303において、リテラル符号長の計算・符号化を行うと、ステップ1304において、圧縮部602は、符号化する残データのリテラル符号長が、パケットに設定された上限リテラル符号長を超過しているかを判定する。
リテラル符号長が上限値以下の場合(1304:NO)、圧縮部602は、コピー符号を検出して符号化する。ステップ1305においてコピー符号を符号化した場合、パケット1001の形式で圧縮データパケットが出力される。リテラル符号長が上限値より大きい場合(1304:YES)、圧縮部602は、ダミーコピー符号を符号化する。ステップ1307において、ダミーコピー符号を符号化すると、パケット1011の形式で圧縮データパケットが出力される。
このように本実施例のLZ4フォーマットを使用することにより、LZ4アルゴリズムにおける圧縮データは、一定の時間内で各パケットが出力されることが保証され、圧縮部602と伸長部603の並列動作性を強化することが可能となる。
また、本実施例のLZ4フォーマットは、前述の通り標準LZ4からの変更点が小さいため、実装するのに少ない工数で実現可能である。
ストレージシステム101は、圧縮伸長回路116、126における圧縮処理を監視し、圧縮処理性能に基づいて、上限リテラル符号長を変更してもよい。例えば、CPU113、123は、圧縮伸長回路116、126における圧縮率及び/又は圧縮速度を監視し、その情報をメモリ114、124で管理する。上限リテラル符号長を変更するための回路が圧縮伸長回路116、126内に組み込まれていてもよい。
CPU113又は123は、所定のタイミングで、圧縮伸長回路116、126双方の圧縮率及び/又は圧縮速度の統計値を算出する。統計値は、例えば、平均値であってもよい。CPU113又は123は、例えば、算出した圧縮率が閾値未満である場合、上限値を所定数だけ増加させる。または、CPU113又は123は、算出した圧縮速度が閾値未満である場合、上限値を所定数だけ減少させる。
上述のように、圧縮部は、パケットの少なくとも一部が予め設定された上限値以下のサイズとなるようにパケットを順次生成する。上記例は、リテラル符号長に上限値を設定する。上限値が設定される部分は、パケットフォーマット及びシステム設計に応じて適切に設定されてよい。圧縮パケットのリテラル符号長が上限以下に制限されることで、各パケットの圧縮時間を制限し、圧縮と伸縮の並列処理をより効果的に行うことを可能とする。
本実施例は、実施例2のLZ4パケットのフォーマットを変更することにより、さらに高い圧縮率を実現するものである。図14、図15を使用し、実施例2のLZ4の第2のフォーマット及び圧縮処理フローからの変更点を以下に示す。
図14は、実施例3で定義されるLZ4の第2のフォーマットである。リテラル符号長が上限値にならず、リテラル符号とコピー符号が格納されるパケット1001においては、変更点が存在しない。パケット1401は、パケット1011に対して、ダミーコピー符号が定義されておらず、トークン領域802と、リテラル符号長領域1003と、リテラル文字領域804の3つのデータ領域によって構成される。
パケット1011では、ダミーコピー符号をパケットに挿入することによって、パケットの区切りが明示する。これと異なり、パケット1401では、トークン領域802におけるトークンコピー符号長領域1202が、コピー符号がパケットに格納されているかどうかを示す。つまり、トークンコピー符号長領域1202が示すコピー符号長が0である場合、コピー符号がパケットに格納されていないことを示す。このように、トークンコピー符号長領域1202を参照して、パケットの区切り位置を判定することができる。トークンコピー符号長領域1202は、第2のフォーマットを示す部分である。
図15は、実施例3で定義されるLZ4フォーマットの各パケット圧縮時処理フローである。実施例2の図13からの変更点として、ステップ1304での判定がYESとなった場合、それ以上は何も符号化せず、プロセス1501を通り、そのパケットの圧縮処理を終了する。
これにより、実施例2におけるLZ4フォーマットよりもさらに、ダミーコピー符号の分の領域を省略可能なため、圧縮率の向上を実現可能となる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に保管の実施例の構成を加えることも可能である。
また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、昨日、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアに実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、またはICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や信号線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や信号線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。
116…圧縮伸長回路、602…圧縮部、603…伸長部、1001,1011…本発明のLZ4パケットフォーマット、1003…上限値付きリテラル符号長領域

Claims (8)

  1. ストレージシステムであって、
    インタフェースと、
    前記インタフェースを介して受信した受信データを圧縮して圧縮データを生成する、圧縮回路と、
    前記圧縮データをストレージドライブに格納する前に伸長して、データ整合性を確認する伸長回路と、を含み、
    前記圧縮回路は、前記受信データの圧縮タスクを順次実行して、前記圧縮データのパケットを順次生成して前記伸長回路に転送し、
    前記伸長回路は、前記圧縮タスクと並列に、受信した前記パケットを伸長し、
    前記パケットの第1フォーマット及び第2フォーマットが定義されており、
    前記第1フォーマットは、前記受信データの一部が符号化され、予め設定された上限長さ以下のリテラル符号部と、前記受信データ内の繰り返しデータの位置及び長さを示すコピー符号部と、を含み、
    前記第2フォーマットは、前記受信データ内の繰り返しデータを示すことなく、前記上限長さを有する前記リテラル符号部と、前記第2フォーマットを示す部分と、を含み、
    前記第2フォーマットを示す部分は、前記コピー符号部に代えて挿入され、無コピーを示すダミーコピー符号部である、ストレージシステム。
  2. ストレージシステムであって、
    インタフェースと、
    前記インタフェースを介して受信した受信データを圧縮して圧縮データを生成する、圧縮回路と、
    前記圧縮データをストレージドライブに格納する前に伸長して、データ整合性を確認する伸長回路と、を含み、
    前記圧縮回路は、前記受信データの圧縮タスクを順次実行して、前記圧縮データのパケットを順次生成して前記伸長回路に転送し、
    前記伸長回路は、前記圧縮タスクと並列に、受信した前記パケットを伸長し、
    前記パケットの第1フォーマット及び第2フォーマットが定義されており、
    前記第1フォーマットは、前記受信データの一部が符号化され、予め設定された上限長さ以下のリテラル符号部と、前記受信データ内の繰り返しデータの位置及び長さを示すコピー符号部と、を含み、
    前記第2フォーマットは、前記受信データ内の繰り返しデータを示すことなく、前記上限長さを有する前記リテラル符号部と、前記第2フォーマットを示す部分と、を含み、
    前記第1フォーマット及び前記第2フォーマットは、前記パケットにおけるリテラル符号長を示す部分と、前記パケットにおけるコピー符号長を示す部分と、を含み、
    前記第2フォーマットを示す部分は、前記コピー符号長を示す部分であって、前記コピー符号長が0であることを示す、ストレージシステム。
  3. ストレージシステムであって、
    インタフェースと、
    前記インタフェースを介して受信した受信データを圧縮して圧縮データを生成する、圧縮回路と、
    前記圧縮データをストレージドライブに格納する前に伸長して、データ整合性を確認する伸長回路と、を含み、
    前記圧縮回路は、前記受信データの圧縮タスクを順次実行して、前記圧縮データのパケットを順次生成して前記伸長回路に転送し、
    前記伸長回路は、前記圧縮タスクと並列に、受信した前記パケットを伸長し、
    前記パケットの第1フォーマット及び第2フォーマットが定義されており、
    前記第1フォーマットは、前記受信データの一部が符号化され、予め設定された上限長さ以下のリテラル符号部と、前記受信データ内の繰り返しデータの位置及び長さを示すコピー符号部と、を含み、
    前記第2フォーマットは、前記受信データ内の繰り返しデータを示すことなく、前記上限長さを有する前記リテラル符号部と、前記第2フォーマットを示す部分と、を含み、
    前記第1フォーマット及び前記第2フォーマットは、前記パケットにおけるリテラル符号長を示す部分を含み、
    前記リテラル符号長を示す部分は、前記パケットにおけるリテラル符号長を示す規定数のビット列を含み、
    前記上限長さは、前記ビット列で表現可能な符号長の最大値である、ストレージシステム。
  4. ストレージシステムであって、
    インタフェースと、
    前記インタフェースを介して受信した受信データを圧縮して圧縮データを生成する、圧縮回路と、
    前記圧縮データをストレージドライブに格納する前に伸長して、データ整合性を確認する伸長回路と、を含み、
    前記圧縮回路は、前記受信データの圧縮タスクを順次実行して、前記圧縮データのパケットを順次生成して前記伸長回路に転送し、
    前記伸長回路は、前記圧縮タスクと並列に、受信した前記パケットを伸長し、
    前記圧縮回路は、前記パケット内のリテラル符号部が予め設定された上限長さ以下のサイズとなるように前記パケットを順次生成し、
    前記圧縮回路の圧縮結果に基づき圧縮処理性能を監視し、
    前記圧縮回路の圧縮処理性能に基づいて前記上限長さを更新する、ストレージシステム。
  5. ストレージシステムにおけるデータ処理方法であって、
    前記ストレージシステムは、圧縮回路及び伸長回路を含み、
    前記データ処理方法は、
    前記圧縮回路が、受信データを圧縮して圧縮データを生成し、
    前記伸長回路が、前記圧縮データをストレージドライブに格納する前に伸長して、データ整合性を確認する、ことを含み、
    前記圧縮データの生成は、前記受信データの圧縮タスクを順次実行して、前記圧縮データのパケットを順次生成して前記伸長回路に転送し、
    前記圧縮データの伸長は、前記圧縮タスクと並列に、受信した前記パケットを伸長し、
    前記パケットの第1フォーマット及び第2フォーマットが定義されており、
    前記第1フォーマットは、前記受信データの一部が符号化され、予め設定された上限長さ以下のリテラル符号部と、前記受信データ内の繰り返しデータの位置及び長さを示すコピー符号部と、を含み、
    前記第2フォーマットは、前記受信データ内の繰り返しデータを示すことなく、前記上限長さを有する前記リテラル符号部と、前記第2フォーマットを示す部分と、を含み、
    前記第2フォーマットを示す部分は、前記コピー符号部に代えて挿入され、無コピーを示すダミーコピー符号部である、データ処理方法。
  6. ストレージシステムにおけるデータ処理方法であって、
    前記ストレージシステムは、圧縮回路及び伸長回路を含み、
    前記データ処理方法は、
    前記圧縮回路が、受信データを圧縮して圧縮データを生成し、
    前記伸長回路が、前記圧縮データをストレージドライブに格納する前に伸長して、データ整合性を確認する、ことを含み、
    前記圧縮データの生成は、前記受信データの圧縮タスクを順次実行して、前記圧縮データのパケットを順次生成して前記伸長回路に転送し、
    前記圧縮データの伸長は、前記圧縮タスクと並列に、受信した前記パケットを伸長し、
    前記パケットの第1フォーマット及び第2フォーマットが定義されており、
    前記第1フォーマットは、前記受信データの一部が符号化され、予め設定された上限長さ以下のリテラル符号部と、前記受信データ内の繰り返しデータの位置及び長さを示すコピー符号部と、を含み、
    前記第2フォーマットは、前記受信データ内の繰り返しデータを示すことなく、前記上限長さを有する前記リテラル符号部と、前記第2フォーマットを示す部分と、を含み、
    前記第1フォーマット及び前記第2フォーマットは、前記パケットにおけるリテラル符号長を示す部分と、前記パケットにおけるコピー符号長を示す部分と、を含み、
    前記第2フォーマットを示す部分は、前記コピー符号長を示す部分であって、前記コピー符号長が0であることを示す、データ処理方法。
  7. ストレージシステムにおけるデータ処理方法であって、
    前記ストレージシステムは、圧縮回路及び伸長回路を含み、
    前記データ処理方法は、
    前記圧縮回路が、受信データを圧縮して圧縮データを生成し、
    前記伸長回路が、前記圧縮データをストレージドライブに格納する前に伸長して、データ整合性を確認する、ことを含み、
    前記圧縮データの生成は、前記受信データの圧縮タスクを順次実行して、前記圧縮データのパケットを順次生成して前記伸長回路に転送し、
    前記圧縮データの伸長は、前記圧縮タスクと並列に、受信した前記パケットを伸長し、
    前記パケットの第1フォーマット及び第2フォーマットが定義されており、
    前記第1フォーマットは、前記受信データの一部が符号化され、予め設定された上限長さ以下のリテラル符号部と、前記受信データ内の繰り返しデータの位置及び長さを示すコピー符号部と、を含み、
    前記第2フォーマットは、前記受信データ内の繰り返しデータを示すことなく、前記上限長さを有する前記リテラル符号部と、前記第2フォーマットを示す部分と、を含み、
    前記第1フォーマット及び前記第2フォーマットは、前記パケットにおけるリテラル符号長を示す部分を含み、
    前記リテラル符号長を示す部分は、前記パケットにおけるリテラル符号長を示す規定数のビット列を含み、
    前記上限長さは、前記ビット列で表現可能な符号長の最大値である、データ処理方法。
  8. ストレージシステムにおけるデータ処理方法であって、
    前記ストレージシステムは、圧縮回路及び伸長回路を含み、
    前記データ処理方法は、
    前記圧縮回路が、受信データを圧縮して圧縮データを生成し、
    前記伸長回路が、前記圧縮データをストレージドライブに格納する前に伸長して、データ整合性を確認する、ことを含み、
    前記圧縮データの生成は、前記受信データの圧縮タスクを順次実行して、前記圧縮データのパケットを、前記パケット内のリテラル符号部が予め設定された上限長さ以下のサイズとなるように順次生成して前記伸長回路に転送し、
    前記圧縮データの伸長は、前記圧縮タスクと並列に、受信した前記パケットを伸長し、
    前記データ処理方法は、さらに
    前記圧縮回路の圧縮結果に基づき圧縮処理性能を監視し、
    前記圧縮回路の圧縮処理性能に基づいて前記上限長さを更新する、データ処理方法。
JP2021186159A 2021-11-16 2021-11-16 ストレージシステム及びストレージシステムにおけるデータ処理方法 Active JP7475319B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2021186159A JP7475319B2 (ja) 2021-11-16 2021-11-16 ストレージシステム及びストレージシステムにおけるデータ処理方法
US17/691,595 US20230152972A1 (en) 2021-11-16 2022-03-10 Storage system and data processing method in storage system
CN202210978639.1A CN116136741A (zh) 2021-11-16 2022-08-16 存储系统以及存储系统中的数据处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021186159A JP7475319B2 (ja) 2021-11-16 2021-11-16 ストレージシステム及びストレージシステムにおけるデータ処理方法

Publications (2)

Publication Number Publication Date
JP2023073606A JP2023073606A (ja) 2023-05-26
JP7475319B2 true JP7475319B2 (ja) 2024-04-26

Family

ID=86324592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021186159A Active JP7475319B2 (ja) 2021-11-16 2021-11-16 ストレージシステム及びストレージシステムにおけるデータ処理方法

Country Status (3)

Country Link
US (1) US20230152972A1 (ja)
JP (1) JP7475319B2 (ja)
CN (1) CN116136741A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240086392A1 (en) * 2022-09-14 2024-03-14 Sap Se Consistency checks for compressed data

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000188553A (ja) 1998-01-07 2000-07-04 Internatl Business Mach Corp <Ibm> デ―タ圧縮システム
JP2000339842A (ja) 1999-05-28 2000-12-08 Nec Ibaraki Ltd 磁気テープ制御装置
JP2003046392A (ja) 2001-06-30 2003-02-14 Robert Bosch Gmbh データ圧縮方法およびデータ伸長方法、該方法を実施するためのコンピュータプログラム製品と電子システム
JP2006526227A (ja) 2003-05-23 2006-11-16 ワシントン ユニヴァーシティー Fpgaデバイスを使用するインテリジェントデータ記憶および処理
WO2018061161A1 (ja) 2016-09-29 2018-04-05 株式会社日立製作所 ストレージ装置およびその制御方法
US10587285B1 (en) 2018-12-06 2020-03-10 Nyquist Semiconductor Limited Hardware friendly data compression

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155484A (en) * 1991-09-13 1992-10-13 Salient Software, Inc. Fast data compressor with direct lookup table indexing into history buffer

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000188553A (ja) 1998-01-07 2000-07-04 Internatl Business Mach Corp <Ibm> デ―タ圧縮システム
JP2000339842A (ja) 1999-05-28 2000-12-08 Nec Ibaraki Ltd 磁気テープ制御装置
JP2003046392A (ja) 2001-06-30 2003-02-14 Robert Bosch Gmbh データ圧縮方法およびデータ伸長方法、該方法を実施するためのコンピュータプログラム製品と電子システム
JP2006526227A (ja) 2003-05-23 2006-11-16 ワシントン ユニヴァーシティー Fpgaデバイスを使用するインテリジェントデータ記憶および処理
WO2018061161A1 (ja) 2016-09-29 2018-04-05 株式会社日立製作所 ストレージ装置およびその制御方法
US10587285B1 (en) 2018-12-06 2020-03-10 Nyquist Semiconductor Limited Hardware friendly data compression

Also Published As

Publication number Publication date
US20230152972A1 (en) 2023-05-18
CN116136741A (zh) 2023-05-19
JP2023073606A (ja) 2023-05-26

Similar Documents

Publication Publication Date Title
US20180285393A1 (en) Content estimation data compression
US6597812B1 (en) System and method for lossless data compression and decompression
US8407378B2 (en) High-speed inline data compression inline with an eight byte data path
US10224959B2 (en) Techniques for data compression verification
US20130307709A1 (en) Efficient techniques for aligned fixed-length compression
US20140023135A1 (en) Systems and Methods for Video and Audio data Storage and Distribution.
BR102012002559A2 (pt) sistema e mÉtodo para compressço de dados de longo alcance e de curto alcance
CN110795272B (zh) 用于在可变大小的i/o上促进的原子性和延迟保证的方法和系统
JP6009676B2 (ja) データ圧縮装置およびデータ伸張装置
US11385794B2 (en) System and method for data compaction and security using multiple encoding algorithms
JP7475319B2 (ja) ストレージシステム及びストレージシステムにおけるデータ処理方法
US11928335B2 (en) System and method for data compaction utilizing mismatch probability estimation
US11762557B2 (en) System and method for data compaction and encryption of anonymized datasets
US20230393737A1 (en) System and method for multiple pass data compaction utilizing delta encoding
CN116560581A (zh) 一种虚拟机磁盘文件迁移方法、系统、存储介质及设备
US20240020006A1 (en) System and method for compaction of floating-point numbers within a dataset
KR20220049522A (ko) 다중 데이터 스트림을 포함하는 압축된 입력 데이터를 압축 해제하기 위한 압축 해제 엔진
US11349494B2 (en) Data compression apparatus and data compression method
JP2016052046A (ja) 圧縮装置、伸長装置およびストレージ装置
US7612692B2 (en) Bidirectional context model for adaptive compression
Slattery et al. Design considerations for the ALDC cores
CN116601593A (zh) 数据压缩装置、数据存储装置和用于数据压缩和重复数据删除的方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230214

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240306

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240319

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240416

R150 Certificate of patent or registration of utility model

Ref document number: 7475319

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150