JP3201920B2 - データ記憶システム及びその操作方法 - Google Patents
データ記憶システム及びその操作方法Info
- Publication number
- JP3201920B2 JP3201920B2 JP03955895A JP3955895A JP3201920B2 JP 3201920 B2 JP3201920 B2 JP 3201920B2 JP 03955895 A JP03955895 A JP 03955895A JP 3955895 A JP3955895 A JP 3955895A JP 3201920 B2 JP3201920 B2 JP 3201920B2
- Authority
- JP
- Japan
- Prior art keywords
- disk
- compression
- sector
- data
- sectors
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 34
- 238000013500 data storage Methods 0.000 title claims description 25
- 238000007906 compression Methods 0.000 claims description 102
- 230000006835 compression Effects 0.000 claims description 102
- 238000013144 data compression Methods 0.000 claims description 26
- 230000004044 response Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 description 13
- 230000006837 decompression Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 2
- RWSOTUBLDIXVET-UHFFFAOYSA-N Dihydrogen sulfide Chemical compound S RWSOTUBLDIXVET-UHFFFAOYSA-N 0.000 description 1
- 244000297179 Syringa vulgaris Species 0.000 description 1
- 235000004338 Syringa vulgaris Nutrition 0.000 description 1
- 240000008042 Zea mays Species 0.000 description 1
- 235000005824 Zea mays ssp. parviglumis Nutrition 0.000 description 1
- 235000002017 Zea mays subsp mays Nutrition 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 235000005822 corn Nutrition 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 150000002500 ions Chemical class 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Description
【0001】
【産業上の利用分野】本発明は、一般的には情報記憶装
置および方法に関し、より具体的には圧縮データを使用
するデータ記憶装置および方法に関する。
置および方法に関し、より具体的には圧縮データを使用
するデータ記憶装置および方法に関する。
【0002】
【従来の技術】ディスクなどの大容量記憶媒体上に格納
できるデータの量を拡大し、それにより、顧客データの
単位当たりの記憶装置コストの比率を低下させるため、
データ圧縮が使用されている。データ圧縮を使用する
と、それに付随してディスクのパフォーマンスが向上す
る場合もある。データ圧縮アルゴリズムを既存および将
来の低コスト・ハードウェアで実現することが多くのユ
ーザの関心を集め、データ圧縮の利用がさらに普及する
ものと予想される。
できるデータの量を拡大し、それにより、顧客データの
単位当たりの記憶装置コストの比率を低下させるため、
データ圧縮が使用されている。データ圧縮を使用する
と、それに付随してディスクのパフォーマンスが向上す
る場合もある。データ圧縮アルゴリズムを既存および将
来の低コスト・ハードウェアで実現することが多くのユ
ーザの関心を集め、データ圧縮の利用がさらに普及する
ものと予想される。
【0003】ディスク・ベースの製品でデータ圧縮を使
用する場合、従来の方法では、圧縮するデータを同サイ
ズの圧縮単位に分割している。通常、圧縮/圧縮解除ハ
ードウェアの操作対象は、完全な圧縮単位に限られる。
つまり、圧縮/圧縮解除ハードウェアによって圧縮単位
内の特定のデータ要素の前にあるすべてのデータが先に
圧縮解除されない限り、圧縮単位からそのデータ要素を
取り出す(読み取る)ことができない。データ要素を保
管する際は、圧縮/圧縮解除ハードウェアによってその
要素が入っている圧縮単位全体が圧縮されてから、ディ
スクに保管される。したがって、圧縮単位よりかなり小
さい小規模読取り(たとえば、単一レコードなどのデー
タ要素の読取り)を実行する場合、効率が下がることに
なる。
用する場合、従来の方法では、圧縮するデータを同サイ
ズの圧縮単位に分割している。通常、圧縮/圧縮解除ハ
ードウェアの操作対象は、完全な圧縮単位に限られる。
つまり、圧縮/圧縮解除ハードウェアによって圧縮単位
内の特定のデータ要素の前にあるすべてのデータが先に
圧縮解除されない限り、圧縮単位からそのデータ要素を
取り出す(読み取る)ことができない。データ要素を保
管する際は、圧縮/圧縮解除ハードウェアによってその
要素が入っている圧縮単位全体が圧縮されてから、ディ
スクに保管される。したがって、圧縮単位よりかなり小
さい小規模読取り(たとえば、単一レコードなどのデー
タ要素の読取り)を実行する場合、効率が下がることに
なる。
【0004】さらに、所与の圧縮単位の圧縮係数(比)
はデータによって異なる。その結果、2つの圧縮単位
(未圧縮長が同じ)から長さの異なる圧縮イメージが得
られる場合もある。すべてのディスク空間を使用するた
め、圧縮イメージはディスクに連続して保管される。し
たがって、直接アクセスを可能にするために、圧縮単位
の数に比例するサイズを有するディレクトリに圧縮単位
の位置が保管される。パフォーマンス上の理由から、こ
のディレクトリは高速(かつ比較的高価な)制御メモリ
で実現することが好ましい。このため、コストおよびパ
フォーマンスの観点から圧縮単位の大型化が強く奨励さ
れている。
はデータによって異なる。その結果、2つの圧縮単位
(未圧縮長が同じ)から長さの異なる圧縮イメージが得
られる場合もある。すべてのディスク空間を使用するた
め、圧縮イメージはディスクに連続して保管される。し
たがって、直接アクセスを可能にするために、圧縮単位
の数に比例するサイズを有するディレクトリに圧縮単位
の位置が保管される。パフォーマンス上の理由から、こ
のディレクトリは高速(かつ比較的高価な)制御メモリ
で実現することが好ましい。このため、コストおよびパ
フォーマンスの観点から圧縮単位の大型化が強く奨励さ
れている。
【0005】しかし、データ圧縮指向の大容量記憶シス
テム、特に、ディスク・システムには、レコード読取り
などの小規模読取り操作に必要な接続時間と応答時間と
いうパフォーマンス上の重大な欠点がある。この問題を
解決するか少なくとも改善するための従来の手法では、
追加の制御情報が必要なため、大量の制御メモリ空間が
消費される。この制御メモリ空間を半導体メモリで実現
すると、コスト、パッケージのボリューム、および消費
電力の増加が発生する。
テム、特に、ディスク・システムには、レコード読取り
などの小規模読取り操作に必要な接続時間と応答時間と
いうパフォーマンス上の重大な欠点がある。この問題を
解決するか少なくとも改善するための従来の手法では、
追加の制御情報が必要なため、大量の制御メモリ空間が
消費される。この制御メモリ空間を半導体メモリで実現
すると、コスト、パッケージのボリューム、および消費
電力の増加が発生する。
【0006】
【発明が解決しようとする課題】このため、本発明の一
目的は、より小規模の圧縮単位を使用する場合に必要な
ものと比較して、ごく少量の情報をディレクトリに追加
するだけで、レコード読取り操作時の接続時間を短縮す
る方法を提供することにある。
目的は、より小規模の圧縮単位を使用する場合に必要な
ものと比較して、ごく少量の情報をディレクトリに追加
するだけで、レコード読取り操作時の接続時間を短縮す
る方法を提供することにある。
【0007】本発明の他の目的は、制御情報の追加量を
大幅に増加せずに、圧縮ディスク・トラックからの小規
模読取り操作の実行時に発生する接続時間と応答時間を
ともに短縮することにある。
大幅に増加せずに、圧縮ディスク・トラックからの小規
模読取り操作の実行時に発生する接続時間と応答時間を
ともに短縮することにある。
【0008】
【課題を解決するための手段】本発明は、ディレクトリ
内のみの使用項目数を増加するのではなく、ディレクト
リとディスクそのものの両方のデータ構造の組合せを使
用して管理する新規の方法を教示する。本発明の技法を
使用すると、各圧縮単位のサイズを縮小するという技法
の場合より、必要な追加ディレクトリ・メモリ量が削減
される。
内のみの使用項目数を増加するのではなく、ディレクト
リとディスクそのものの両方のデータ構造の組合せを使
用して管理する新規の方法を教示する。本発明の技法を
使用すると、各圧縮単位のサイズを縮小するという技法
の場合より、必要な追加ディレクトリ・メモリ量が削減
される。
【0009】このように、前記およびその他の問題の克
服と、本発明の目的の実現は、少なくとも1個のディス
クで構成されるデータ記憶システムを操作する方法によ
って達成される。本方法は、データ圧縮単位を2以上の
n個の基本圧縮単位に区分するステップを含む。各デー
タ圧縮単位は、複数のディスク・セクタで構成され、n
個の基本圧縮単位のそれぞれは異なる初期セクタから始
まる。次のステップでは、データ圧縮単位をn未満のX
個の間隔に区分する。X個の間隔のそれぞれは異なる初
期セクタから始まり、しかもn個の基本圧縮単位の1つ
の範囲内にある。本方法のその他のステップとしては、
1/X、2/X、・・・、(X−1)/Xという各間隔
が始まるn個の基本圧縮単位の1つの初期セクタをそれ
ぞれ指す複数の第一のポインタを少なくとも1個のディ
スクの外部に格納するステップと、1/X、2/X、・
・・、(X−1)/Xという各間隔が始まるn個の基本
圧縮単位のそれぞれの各初期セクタ内に、その基本圧縮
単位内で始まる間隔の初期セクタを指す第二のポインタ
を格納するステップと、X個の間隔の1つの範囲内に位
置するセクタの1つから始まる圧縮データ単位を読み取
るディスク読取り操作に対する応答として、第一のポイ
ンタの1つと第二のポインタの1つにより圧縮データ単
位の開始セクタにアクセスするステップがある。
服と、本発明の目的の実現は、少なくとも1個のディス
クで構成されるデータ記憶システムを操作する方法によ
って達成される。本方法は、データ圧縮単位を2以上の
n個の基本圧縮単位に区分するステップを含む。各デー
タ圧縮単位は、複数のディスク・セクタで構成され、n
個の基本圧縮単位のそれぞれは異なる初期セクタから始
まる。次のステップでは、データ圧縮単位をn未満のX
個の間隔に区分する。X個の間隔のそれぞれは異なる初
期セクタから始まり、しかもn個の基本圧縮単位の1つ
の範囲内にある。本方法のその他のステップとしては、
1/X、2/X、・・・、(X−1)/Xという各間隔
が始まるn個の基本圧縮単位の1つの初期セクタをそれ
ぞれ指す複数の第一のポインタを少なくとも1個のディ
スクの外部に格納するステップと、1/X、2/X、・
・・、(X−1)/Xという各間隔が始まるn個の基本
圧縮単位のそれぞれの各初期セクタ内に、その基本圧縮
単位内で始まる間隔の初期セクタを指す第二のポインタ
を格納するステップと、X個の間隔の1つの範囲内に位
置するセクタの1つから始まる圧縮データ単位を読み取
るディスク読取り操作に対する応答として、第一のポイ
ンタの1つと第二のポインタの1つにより圧縮データ単
位の開始セクタにアクセスするステップがある。
【0010】圧縮データ単位の開始セクタは対象セクタ
(SOI)と呼ばれ、アクセス・ステップは、SOIを
含む間隔が始まる目標基本圧縮単位の初期セクタを決定
するために第一のポインタを使用するステップと、目標
基本圧縮単位の初期セクタで少なくとも1個のディスク
から圧縮データの読取りを開始するステップと、第二の
ポインタの値を求めるために読み取ったデータを圧縮解
除するステップと、SOIを含む間隔の初期セクタに達
するまで圧縮解除データを破棄するステップとを含む。
(SOI)と呼ばれ、アクセス・ステップは、SOIを
含む間隔が始まる目標基本圧縮単位の初期セクタを決定
するために第一のポインタを使用するステップと、目標
基本圧縮単位の初期セクタで少なくとも1個のディスク
から圧縮データの読取りを開始するステップと、第二の
ポインタの値を求めるために読み取ったデータを圧縮解
除するステップと、SOIを含む間隔の初期セクタに達
するまで圧縮解除データを破棄するステップとを含む。
【0011】通常、圧縮単位は、複数のセクタで構成さ
れる少なくとも1つの圧縮レコードを含み、アクセス・
ステップは、所定のデータ圧縮比に基づいてセクタの必
要数を予測することで圧縮レコードを格納するために複
数のセクタを割り振る初期ステップを含む。この割振り
ステップは、レコードの実際の圧縮比を求め、そのレコ
ード内の同一文字の最長ランの値を求め、同一文字の最
長ランの値に基づいて実際の圧縮比を調整するステップ
を含む。また、割振りステップは、ディスクの別の領域
に圧縮レコードを再書込みせずに圧縮レコードを後でそ
の位置で更新できるようにするため、予測数に少なくと
も1つの追加セクタを追加するステップを含む。
れる少なくとも1つの圧縮レコードを含み、アクセス・
ステップは、所定のデータ圧縮比に基づいてセクタの必
要数を予測することで圧縮レコードを格納するために複
数のセクタを割り振る初期ステップを含む。この割振り
ステップは、レコードの実際の圧縮比を求め、そのレコ
ード内の同一文字の最長ランの値を求め、同一文字の最
長ランの値に基づいて実際の圧縮比を調整するステップ
を含む。また、割振りステップは、ディスクの別の領域
に圧縮レコードを再書込みせずに圧縮レコードを後でそ
の位置で更新できるようにするため、予測数に少なくと
も1つの追加セクタを追加するステップを含む。
【0012】
【実施例】図1のブロック図について説明するが、同図
は本発明により構築および操作されるデータ処理システ
ム10を示している。システム10は関連キャッシュ・
メモリ12aを有するデータ処理装置12を含む。この
キャッシュ・メモリ12aは不揮発性記憶(NVS)装
置で構成することができる。データ処理装置12、より
具体的にはキャッシュ・メモリ12aには、データ経路
12bと、関連のディスク・データ記憶システム14が
両方向に結合されている。ディスク・データ記憶システ
ム14は、1つまたは複数のディスク装置で構成するこ
とができる。たとえば、図示の実施例では、ディスク・
データ記憶システム14が第一のディスク装置14aと
第二のディスク装置14bとで構成されている。各ディ
スク装置は、それぞれが第一のデータ記憶面15aと第
二のデータ記憶面15bとを有する、1〜n個の個別デ
ィスクで構成することができる。各面は、従来の方法で
複数のトラック15cに区分されている。
は本発明により構築および操作されるデータ処理システ
ム10を示している。システム10は関連キャッシュ・
メモリ12aを有するデータ処理装置12を含む。この
キャッシュ・メモリ12aは不揮発性記憶(NVS)装
置で構成することができる。データ処理装置12、より
具体的にはキャッシュ・メモリ12aには、データ経路
12bと、関連のディスク・データ記憶システム14が
両方向に結合されている。ディスク・データ記憶システ
ム14は、1つまたは複数のディスク装置で構成するこ
とができる。たとえば、図示の実施例では、ディスク・
データ記憶システム14が第一のディスク装置14aと
第二のディスク装置14bとで構成されている。各ディ
スク装置は、それぞれが第一のデータ記憶面15aと第
二のデータ記憶面15bとを有する、1〜n個の個別デ
ィスクで構成することができる。各面は、従来の方法で
複数のトラック15cに区分されている。
【0013】本発明の好ましい実施例のディスク・デー
タ記憶システム14は、"A Case for Redundant Arrays
of Inexpensive Disks(RAID)"という論文(ACM SIGM
OD Conference, Chicago, IL, 1988年6月1〜3日, pp. 1
09-116)において D. A. Patterson、G. Gibson、およ
びR. H. Katz が説明しているRAID3またはRAI
D5システムに多少似ているRAIDシステムとして構
成され、操作される。RAID手法の利点は、RAID
を使用することでデータ処理装置のディスク・サブシス
テムがプロセッサの速度やメイン・メモリの密度の改良
の連続に遅れずに対応できる点である。
タ記憶システム14は、"A Case for Redundant Arrays
of Inexpensive Disks(RAID)"という論文(ACM SIGM
OD Conference, Chicago, IL, 1988年6月1〜3日, pp. 1
09-116)において D. A. Patterson、G. Gibson、およ
びR. H. Katz が説明しているRAID3またはRAI
D5システムに多少似ているRAIDシステムとして構
成され、操作される。RAID手法の利点は、RAID
を使用することでデータ処理装置のディスク・サブシス
テムがプロセッサの速度やメイン・メモリの密度の改良
の連続に遅れずに対応できる点である。
【0014】前記の論文では、5つのレベルのRAID
が論じられている。レベル1ではミラー・ディスク(デ
ータ・ディスクとチェック・ディスクの両方を含むすべ
てのディスクの完全冗長)を使用し、レベル2ではチェ
ック・ディスクの個数を減らすためにエラー訂正情報用
のハミング・コードを使用し、レベル3ではデータ・デ
ィスク・グループごとに1個のチェック・ディスクを使
用し、レベル4では個々の転送情報を単一ディスク装置
に収容して複数のディスクに分散しないようにした、独
立読取り/書込み操作を使用し、レベル5(RAID
5)ではデータとデータ保全性(パリティ)情報を、チ
ェック・ディスクを含むすべてのディスクに分散する。
が論じられている。レベル1ではミラー・ディスク(デ
ータ・ディスクとチェック・ディスクの両方を含むすべ
てのディスクの完全冗長)を使用し、レベル2ではチェ
ック・ディスクの個数を減らすためにエラー訂正情報用
のハミング・コードを使用し、レベル3ではデータ・デ
ィスク・グループごとに1個のチェック・ディスクを使
用し、レベル4では個々の転送情報を単一ディスク装置
に収容して複数のディスクに分散しないようにした、独
立読取り/書込み操作を使用し、レベル5(RAID
5)ではデータとデータ保全性(パリティ)情報を、チ
ェック・ディスクを含むすべてのディスクに分散する。
【0015】ただし、RAIDタイプのディスク・デー
タ記憶システムを使用することが本発明を実施する際に
制限として解釈されないことに留意されたい。
タ記憶システムを使用することが本発明を実施する際に
制限として解釈されないことに留意されたい。
【0016】システム10は、本発明の教示により動作
するディスク・マネージャ16をさらに含む。ディスク
・データ記憶システム14とディスク・マネージャ16
との間には、必要なディスク・デバイス・ドライバ18
が結合されている。このドライバ18は、ディスク装置
14aおよび14bの読み書きを可能にするためにロー
・レベルでディスク装置と対話する。ドライバ18の機
能を理解することと、本発明を理解することとは、密接
な関係があるわけではない。一例にすぎないが、ディス
ク14aおよび14bとドライバ18はいずれも、周知
のSCSIバスなどのバス18aによって接続すること
ができる。
するディスク・マネージャ16をさらに含む。ディスク
・データ記憶システム14とディスク・マネージャ16
との間には、必要なディスク・デバイス・ドライバ18
が結合されている。このドライバ18は、ディスク装置
14aおよび14bの読み書きを可能にするためにロー
・レベルでディスク装置と対話する。ドライバ18の機
能を理解することと、本発明を理解することとは、密接
な関係があるわけではない。一例にすぎないが、ディス
ク14aおよび14bとドライバ18はいずれも、周知
のSCSIバスなどのバス18aによって接続すること
ができる。
【0017】ディスク・マネージャ16は、n個の圧縮
単位のそれぞれに対応する複数の項目(項目0〜項
目n)を有するディレクトリ16aを含むか、これにア
クセスすることができる。
単位のそれぞれに対応する複数の項目(項目0〜項
目n)を有するディレクトリ16aを含むか、これにア
クセスすることができる。
【0018】システム10は、適当なデータ圧縮装置/
圧縮解除装置20と関連のトラック・バッファ22とを
さらに含む。トラック・バッファ22は、データ圧縮装
置20とドライバ18を介して記憶システム14に書き
込むか、ドライバ18とデータ圧縮解除装置20を介し
て記憶システム14から読み取る未圧縮データを格納す
る。データ圧縮装置/圧縮解除装置20にはラン・レン
グス・カウンタ20aが関連付けられている。このカウ
ンタの使い方については、後で詳述する。
圧縮解除装置20と関連のトラック・バッファ22とを
さらに含む。トラック・バッファ22は、データ圧縮装
置20とドライバ18を介して記憶システム14に書き
込むか、ドライバ18とデータ圧縮解除装置20を介し
て記憶システム14から読み取る未圧縮データを格納す
る。データ圧縮装置/圧縮解除装置20にはラン・レン
グス・カウンタ20aが関連付けられている。このカウ
ンタの使い方については、後で詳述する。
【0019】ここで説明する実施例では、ディスク・ト
ラック15c(たとえば、48Kバイト)が1つの圧縮
単位に対応するものと想定している。しかし、本発明の
教示は異なるサイズを有する圧縮単位に適用可能である
ことに留意されたい。
ラック15c(たとえば、48Kバイト)が1つの圧縮
単位に対応するものと想定している。しかし、本発明の
教示は異なるサイズを有する圧縮単位に適用可能である
ことに留意されたい。
【0020】従来の読取り操作を実行する場合、トラッ
ク(圧縮単位)上の対象レコードの前にあるすべてのデ
ータを圧縮解除してから、対象レコードの圧縮解除が行
われる。このため、圧縮比が2:1であると想定する
と、(トラックの先頭に方向付けするための0.5回転
に続いて)対象レコードに達する前にデータを読み取る
ために平均0.25回のディスク回転が必要である。こ
の0.25回転で、ディスク14aまたは14bが接続
され、データ転送資源が読取り操作専用になる。したが
って、小規模読取り操作用の圧縮指向ディスク・システ
ムの接続時間は、圧縮を使用しないシステムの同等の接
続時間より大幅に長くなる。しかも、圧縮指向ディスク
・システムでは小規模読取り操作の応答時間(主にシー
クおよび待ち時間によって決まる)が劣化する。
ク(圧縮単位)上の対象レコードの前にあるすべてのデ
ータを圧縮解除してから、対象レコードの圧縮解除が行
われる。このため、圧縮比が2:1であると想定する
と、(トラックの先頭に方向付けするための0.5回転
に続いて)対象レコードに達する前にデータを読み取る
ために平均0.25回のディスク回転が必要である。こ
の0.25回転で、ディスク14aまたは14bが接続
され、データ転送資源が読取り操作専用になる。したが
って、小規模読取り操作用の圧縮指向ディスク・システ
ムの接続時間は、圧縮を使用しないシステムの同等の接
続時間より大幅に長くなる。しかも、圧縮指向ディスク
・システムでは小規模読取り操作の応答時間(主にシー
クおよび待ち時間によって決まる)が劣化する。
【0021】トラック内のレコードが参照されたときに
ディスク・システムがそのトラックをバッファ22(ま
たはキャッシュ12a)に転送しなければならない場
合、圧縮指向ディスク・システムの合計接続時間が増加
しないことに留意されたい。しかし、小規模読取り操作
の場合はこのようなシステムの応答時間が劣化する。
ディスク・システムがそのトラックをバッファ22(ま
たはキャッシュ12a)に転送しなければならない場
合、圧縮指向ディスク・システムの合計接続時間が増加
しないことに留意されたい。しかし、小規模読取り操作
の場合はこのようなシステムの応答時間が劣化する。
【0022】次に図2を参照すると、同図にはトラック
15cとディレクトリ16aの好ましい論理構成が示さ
れている。ここでは、トラック15cが複数のセクタに
区分されているものと想定する。一例として、各セクタ
の長さが512バイトであるとすると、48Kバイトの
トラックは96個のセクタを含むことになる。ただし、
図2のセクタは、トラック15cに対して一定の比率で
描かれているわけではない。
15cとディレクトリ16aの好ましい論理構成が示さ
れている。ここでは、トラック15cが複数のセクタに
区分されているものと想定する。一例として、各セクタ
の長さが512バイトであるとすると、48Kバイトの
トラックは96個のセクタを含むことになる。ただし、
図2のセクタは、トラック15cに対して一定の比率で
描かれているわけではない。
【0023】本発明の方法は、1つの単一トラック長圧
縮イメージに圧縮解除するのではなく、整数個の同サイ
ズ(4Kバイト)の圧縮基本単位15eにすべての圧縮
単位を圧縮解除するように動作する。したがって、48
Kバイトのトラック(圧縮単位)15cの場合、4Kバ
イトの基本単位15eが合計12個存在する。
縮イメージに圧縮解除するのではなく、整数個の同サイ
ズ(4Kバイト)の圧縮基本単位15eにすべての圧縮
単位を圧縮解除するように動作する。したがって、48
Kバイトのトラック(圧縮単位)15cの場合、4Kバ
イトの基本単位15eが合計12個存在する。
【0024】本方法によれば、ディレクトリ16a内の
各項目17aには、圧縮単位の第一の基本単位15eを
指す絶対アドレスを格納するためのフィールド17bが
1つだけ用意される。このため、追加のディレクトリ項
目は不要になり、前記の分割は圧縮単位数の増加に相当
しない。
各項目17aには、圧縮単位の第一の基本単位15eを
指す絶対アドレスを格納するためのフィールド17bが
1つだけ用意される。このため、追加のディレクトリ項
目は不要になり、前記の分割は圧縮単位数の増加に相当
しない。
【0025】実施上の簡略化のため、各基本単位15e
が整数個の物理ディスク・セクタ(ブロック)に等しい
ことが好ましい。
が整数個の物理ディスク・セクタ(ブロック)に等しい
ことが好ましい。
【0026】本発明の方法では、ディレクトリ16aと
各基本単位15cの両方に追加の制御構造を提供する。
圧縮トラック内のレコードへの直接アクセスを可能にす
るために、各ディレクトリ項目17aには、追加のディ
レクトリ制御構造(フィールド17c)が追加されてい
る。このフィールド17cは、基本単位15e内のアド
レスを指すポインタを格納する。以下、これらのポイン
タをセクタ・ポインタと呼ぶ。それぞれのセクタ・ポイ
ンタは、圧縮単位内の事前定義セクタが入っている基本
単位15eを指す。圧縮単位は、X個の間隔15dに分
割され、各ディレクトリ項目17aのフィールド17c
内のX−1個のセクタ・ポインタは、その圧縮単位の1
/X、2/X、・・・、(X−1)/Xという各部の先
頭をマークするセクタが入っているX−1個の基本単位
を指している。本発明の好ましい実施例では、1つの圧
縮単位が5個の間隔15dに区分され、各ディレクトリ
項目のフィールド17c内の4個のセクタ・ポインタは
1/5、2/5、3/5、4/5の各間隔が始まる基本
単位15eの初期セクタ・アドレス(ボリューム、シリ
ンダ、面、セクタ)を指している。図示の例では、フィ
ールド17cに格納されているセクタ・ポインタが基本
単位2、4、7、9の初期セクタを指している。各セク
タ・ポインタは、基本単位の絶対アドレスを格納するの
ではなく、以前指し示されていた基本単位から現在指し
示されている基本単位までのオフセット(セクタ数)を
格納する。前述の通り、第一の基本単位15eの絶対ア
ドレスは各ディレクトリ項目のフィールド17bに格納
されている。
各基本単位15cの両方に追加の制御構造を提供する。
圧縮トラック内のレコードへの直接アクセスを可能にす
るために、各ディレクトリ項目17aには、追加のディ
レクトリ制御構造(フィールド17c)が追加されてい
る。このフィールド17cは、基本単位15e内のアド
レスを指すポインタを格納する。以下、これらのポイン
タをセクタ・ポインタと呼ぶ。それぞれのセクタ・ポイ
ンタは、圧縮単位内の事前定義セクタが入っている基本
単位15eを指す。圧縮単位は、X個の間隔15dに分
割され、各ディレクトリ項目17aのフィールド17c
内のX−1個のセクタ・ポインタは、その圧縮単位の1
/X、2/X、・・・、(X−1)/Xという各部の先
頭をマークするセクタが入っているX−1個の基本単位
を指している。本発明の好ましい実施例では、1つの圧
縮単位が5個の間隔15dに区分され、各ディレクトリ
項目のフィールド17c内の4個のセクタ・ポインタは
1/5、2/5、3/5、4/5の各間隔が始まる基本
単位15eの初期セクタ・アドレス(ボリューム、シリ
ンダ、面、セクタ)を指している。図示の例では、フィ
ールド17cに格納されているセクタ・ポインタが基本
単位2、4、7、9の初期セクタを指している。各セク
タ・ポインタは、基本単位の絶対アドレスを格納するの
ではなく、以前指し示されていた基本単位から現在指し
示されている基本単位までのオフセット(セクタ数)を
格納する。前述の通り、第一の基本単位15eの絶対ア
ドレスは各ディレクトリ項目のフィールド17bに格納
されている。
【0027】圧縮単位を5個の間隔15dに区分しても
本発明を実施する際に制限とはならず、使用する間隔の
数をそれより増減することも可能であることに留意され
たい。
本発明を実施する際に制限とはならず、使用する間隔の
数をそれより増減することも可能であることに留意され
たい。
【0028】データ圧縮処理によって48Kバイトのト
ラック15c内の5個の間隔15dがいずれも大幅に伸
張されないと想定すると、各セクタ・ポインタとしては
2ビット(0〜3の範囲)で十分である。その結果、デ
ィレクトリ16aの各項目17aに1バイト(2ビット
×4個のセクタ・ポインタ)を追加するだけで、フィー
ルド17cを収容することができる。2個(または3個
以上)のセクタ・ポインタが指し示すセクタが同一の基
本単位15eに存在する場合、第二(またはそれ以降)
のポインタのポインタ値がゼロに設定される。
ラック15c内の5個の間隔15dがいずれも大幅に伸
張されないと想定すると、各セクタ・ポインタとしては
2ビット(0〜3の範囲)で十分である。その結果、デ
ィレクトリ16aの各項目17aに1バイト(2ビット
×4個のセクタ・ポインタ)を追加するだけで、フィー
ルド17cを収容することができる。2個(または3個
以上)のセクタ・ポインタが指し示すセクタが同一の基
本単位15eに存在する場合、第二(またはそれ以降)
のポインタのポインタ値がゼロに設定される。
【0029】トラック15c内の間隔15dのいずれか
1つ(または複数)が大幅に伸張する場合は、本方法に
より達成される待ち時間の短縮がいくらか低下するが、
本方法の動作は損なわれない。
1つ(または複数)が大幅に伸張する場合は、本方法に
より達成される待ち時間の短縮がいくらか低下するが、
本方法の動作は損なわれない。
【0030】各ディレクトリ項目17aに追加される単
一のフィールド17cに加え、未圧縮トラック内の事前
定義位置に相当するディスク内の特定の位置からのデー
タ転送を可能にするため、ディスク・セクタ・ポインタ
15fというデータ構造がディスクに追加される。この
操作は、対応する未圧縮位置が不明な箇所からディスク
がデータ転送を開始する場合でも達成される。
一のフィールド17cに加え、未圧縮トラック内の事前
定義位置に相当するディスク内の特定の位置からのデー
タ転送を可能にするため、ディスク・セクタ・ポインタ
15fというデータ構造がディスクに追加される。この
操作は、対応する未圧縮位置が不明な箇所からディスク
がデータ転送を開始する場合でも達成される。
【0031】より具体的には、圧縮単位内の事前定義セ
クタの位置を指すディスク・セクタ・ポインタ15f
が、各基本単位15eの初期セクタに対応するディスク
・セクタに追加される。このディスク・セクタ・ポイン
タ15fは、基本単位15eの先頭から圧縮単位内の間
隔15dの1つの先頭までの距離を格納する。図2に示
す例によれば、ディスク・セクタ・ポインタ15fは、
基本単位15eの先頭からトラックの1/5、2/5、
3/5、4/5のいずれかの間隔の先頭までの距離を格
納している。これらの間隔のうちの複数が同一の基本単
位15e内にある場合は、ディスク・セクタ・ポインタ
15fが最初の間隔を指し示す。1/5、2/5、3/
5、4/5の間隔のいずれも基本単位内に位置していな
い場合は、ディスク・セクタ・ポインタ15fの値は未
定義なので使用されない。ディスク・セクタ・ポインタ
15fに格納されている距離は未圧縮単位数(すなわ
ち、未圧縮のバイト数)で示される。
クタの位置を指すディスク・セクタ・ポインタ15f
が、各基本単位15eの初期セクタに対応するディスク
・セクタに追加される。このディスク・セクタ・ポイン
タ15fは、基本単位15eの先頭から圧縮単位内の間
隔15dの1つの先頭までの距離を格納する。図2に示
す例によれば、ディスク・セクタ・ポインタ15fは、
基本単位15eの先頭からトラックの1/5、2/5、
3/5、4/5のいずれかの間隔の先頭までの距離を格
納している。これらの間隔のうちの複数が同一の基本単
位15e内にある場合は、ディスク・セクタ・ポインタ
15fが最初の間隔を指し示す。1/5、2/5、3/
5、4/5の間隔のいずれも基本単位内に位置していな
い場合は、ディスク・セクタ・ポインタ15fの値は未
定義なので使用されない。ディスク・セクタ・ポインタ
15fに格納されている距離は未圧縮単位数(すなわ
ち、未圧縮のバイト数)で示される。
【0032】ディスク・セクタ・ポインタ15fは、0
〜9600の範囲の値を表すのに2バイト程度を要す
る。このため、各トラックごとに、合計12バイト(圧
縮比が2:1であると想定する)がディスク・セクタ・
ポインタ15fの格納専用になり、ディスクの総データ
量はディレクトリのサイズと同程度になる。しかし、デ
ィスク・メモリはディレクトリ・メモリに比べ、相当低
価格である。
〜9600の範囲の値を表すのに2バイト程度を要す
る。このため、各トラックごとに、合計12バイト(圧
縮比が2:1であると想定する)がディスク・セクタ・
ポインタ15fの格納専用になり、ディスクの総データ
量はディレクトリのサイズと同程度になる。しかし、デ
ィスク・メモリはディレクトリ・メモリに比べ、相当低
価格である。
【0033】本発明の方法をサポートする追加のデータ
構造は、トラックがディスク記憶システム14に書き込
まれるときに初期設定される。書き込まれるトラック
は、トラック・バッファ22とデータ圧縮装置/圧縮解
除装置20を介してディスクに送られる。装置20はデ
ータを複数の基本単位15eに圧縮する。対応するディ
レクトリ項目17aのフィールド17cに入っているセ
クタ・ポインタの1つによって指し示されるセクタが圧
縮装置/圧縮解除装置20を介して転送される場合、圧
縮装置/圧縮解除装置20によって生成される基本単位
15eを指し示すように対応するセクタ・ポインタが設
定される。
構造は、トラックがディスク記憶システム14に書き込
まれるときに初期設定される。書き込まれるトラック
は、トラック・バッファ22とデータ圧縮装置/圧縮解
除装置20を介してディスクに送られる。装置20はデ
ータを複数の基本単位15eに圧縮する。対応するディ
レクトリ項目17aのフィールド17cに入っているセ
クタ・ポインタの1つによって指し示されるセクタが圧
縮装置/圧縮解除装置20を介して転送される場合、圧
縮装置/圧縮解除装置20によって生成される基本単位
15eを指し示すように対応するセクタ・ポインタが設
定される。
【0034】新しい基本単位15eが生成されると、デ
ィスク・セクタ・ポインタ15fは、基本単位15eに
送られる最初のバイトと次に指し示されるはずのセクタ
(すなわち、トラック15cの1/5、2/5、3/
5、4/5という所定の間隔)との間の距離(未圧縮単
位数)に必ず設定される。
ィスク・セクタ・ポインタ15fは、基本単位15eに
送られる最初のバイトと次に指し示されるはずのセクタ
(すなわち、トラック15cの1/5、2/5、3/
5、4/5という所定の間隔)との間の距離(未圧縮単
位数)に必ず設定される。
【0035】データ処理装置12によって生成されるレ
コード読取り操作コマンドでは、特定のセクタ(レコー
ドの先頭)から別のセクタ(レコードの末尾)までのデ
ータをディスク記憶システム14からトラック・バッフ
ァ22に(圧縮解除を使用して)転送する必要がある。
以下、読み取るレコードの初期セクタを対象セクタ(S
OI)と呼ぶ。
コード読取り操作コマンドでは、特定のセクタ(レコー
ドの先頭)から別のセクタ(レコードの末尾)までのデ
ータをディスク記憶システム14からトラック・バッフ
ァ22に(圧縮解除を使用して)転送する必要がある。
以下、読み取るレコードの初期セクタを対象セクタ(S
OI)と呼ぶ。
【0036】次に図3を参照して説明すると、レコード
読取り操作では以下のステップが実行される。
読取り操作では以下のステップが実行される。
【0037】A.データ処理装置12によってレコード
読取り操作が開始される。
読取り操作が開始される。
【0038】B.SOIに基づいて、ディスク・マネー
ジャ16がディレクトリ16aを探索し、SOIが入っ
ているトラックに対応するディレクトリ項目17aがデ
ィレクトリ16aから取り出される。
ジャ16がディレクトリ16aを探索し、SOIが入っ
ているトラックに対応するディレクトリ項目17aがデ
ィレクトリ16aから取り出される。
【0039】C.セクタ・ポインタの1つによって指し
示され、SOIの前にある最大未圧縮セクタが決定され
る。
示され、SOIの前にある最大未圧縮セクタが決定され
る。
【0040】D.前記のステップで決定された未圧縮セ
クタを指すセクタ・ポインタ(フィールド17c)によ
って指し示されている基本単位15eのアドレスがディ
レクトリ項目17aから取り出される。図2を参照して
例を挙げると、SOIがj+1であれば、基本単位9の
アドレス(初期セクタ)が取り出される。
クタを指すセクタ・ポインタ(フィールド17c)によ
って指し示されている基本単位15eのアドレスがディ
レクトリ項目17aから取り出される。図2を参照して
例を挙げると、SOIがj+1であれば、基本単位9の
アドレス(初期セクタ)が取り出される。
【0041】E.前記のステップで取り出された基本単
位9の初期セクタにシークするように、ディスクに指示
が送られる。ディスクが基本単位9に達すると、圧縮装
置/圧縮解除装置20が基本単位9の読取りを開始して
これを圧縮解除し、ディスク・セクタ・ポインタ15f
に格納されている値が求められる。ただし、ディスク・
セクタ・ポインタ15fによって示されるバイト数が圧
縮解除されるまでは、圧縮解除されたデータはトラック
・バッファ22に送られず、単に破棄されるだけであ
る。
位9の初期セクタにシークするように、ディスクに指示
が送られる。ディスクが基本単位9に達すると、圧縮装
置/圧縮解除装置20が基本単位9の読取りを開始して
これを圧縮解除し、ディスク・セクタ・ポインタ15f
に格納されている値が求められる。ただし、ディスク・
セクタ・ポインタ15fによって示されるバイト数が圧
縮解除されるまでは、圧縮解除されたデータはトラック
・バッファ22に送られず、単に破棄されるだけであ
る。
【0042】F.ディスク・セクタ・ポインタ15fに
よって示されるバイト数が圧縮解除されると、基本単位
15e内に残っているデータのうち、間隔4の開始部分
に相当するデータが圧縮解除され、トラック・バッファ
22に送られる。
よって示されるバイト数が圧縮解除されると、基本単位
15e内に残っているデータのうち、間隔4の開始部分
に相当するデータが圧縮解除され、トラック・バッファ
22に送られる。
【0043】G.SOIがトラック・バッファ22に格
納されると、レコード読取り操作は、トラック・バッフ
ァ22に格納されている圧縮解除データの処理を続行す
ることができる。
納されると、レコード読取り操作は、トラック・バッフ
ァ22に格納されている圧縮解除データの処理を続行す
ることができる。
【0044】H.残りの基本単位15eのうち、レコー
ド読取り操作が要求するレコードの一部が入っている基
本単位15eがあれば、それが圧縮解除され、トラック
・バッファ22に転送される。
ド読取り操作が要求するレコードの一部が入っている基
本単位15eがあれば、それが圧縮解除され、トラック
・バッファ22に転送される。
【0045】任意のトラックの1つのレコードが参照さ
れたときにそのトラック全体をトラック・バッファ22
に転送する必要があるタイプのディスク・システム14
の場合は、以下のステップが実行される。
れたときにそのトラック全体をトラック・バッファ22
に転送する必要があるタイプのディスク・システム14
の場合は、以下のステップが実行される。
【0046】I.残りの基本単位のうち、SOIが入っ
ている基本単位以降のもので、ステップHで転送されて
いないものが、トラック・バッファ22に転送される。
図2では、基本単位10および11がこれに該当する。
ている基本単位以降のもので、ステップHで転送されて
いないものが、トラック・バッファ22に転送される。
図2では、基本単位10および11がこれに該当する。
【0047】J.SOIが入っているトラック15cに
属す最後の基本単位15e(基本単位11)の転送後、
SOIが入っているトラック15cに属す最初の基本単
位(基本単位0)にシークするようにディスクに指示が
送られる。
属す最後の基本単位15e(基本単位11)の転送後、
SOIが入っているトラック15cに属す最初の基本単
位(基本単位0)にシークするようにディスクに指示が
送られる。
【0048】K.ディスクが基本単位0に達すると、基
本単位1からSOIが入っている基本単位9までのすべ
ての基本単位が圧縮解除され、トラック・バッファ22
に転送される。
本単位1からSOIが入っている基本単位9までのすべ
ての基本単位が圧縮解除され、トラック・バッファ22
に転送される。
【0049】L.トラック・バッファ22が受け取った
圧縮解除バイト数が基本単位9のディスク・セクタ・ポ
インタ15fによって示されるバイト数と等しくなるま
で、SOIを含む間隔の先頭が入っている基本単位9の
初期セクタからトラック・バッファ22にデータが転送
される。このようにして、トラック全体がトラック・バ
ッファ22に格納される。
圧縮解除バイト数が基本単位9のディスク・セクタ・ポ
インタ15fによって示されるバイト数と等しくなるま
で、SOIを含む間隔の先頭が入っている基本単位9の
初期セクタからトラック・バッファ22にデータが転送
される。このようにして、トラック全体がトラック・バ
ッファ22に格納される。
【0050】M.レコード読取り操作が終了する。
【0051】前記の解決策の代わりに、小規模レコード
読取り操作の接続時間と応答時間の両方を同じ程度まで
短縮し、追加のディレクトリ項目を必要とするような解
決策を使用すると、ディレクトリ16aの6倍程度(圧
縮比が2:1であると想定する)の大きいディレクトリ
が必要になることに留意されたい。ディレクトリ16a
の項目サイズが2バイトもあると想定すると、このよう
な代替解決策では、本発明の方法が必要とするディレク
トリ・サイズより1桁大きくなることを意味する。
読取り操作の接続時間と応答時間の両方を同じ程度まで
短縮し、追加のディレクトリ項目を必要とするような解
決策を使用すると、ディレクトリ16aの6倍程度(圧
縮比が2:1であると想定する)の大きいディレクトリ
が必要になることに留意されたい。ディレクトリ16a
の項目サイズが2バイトもあると想定すると、このよう
な代替解決策では、本発明の方法が必要とするディレク
トリ・サイズより1桁大きくなることを意味する。
【0052】前述のレコード読取り操作の結果、データ
ベース操作で一般に発生するように、データ処理装置1
2がレコードの内容を改訂したり更新する場合がある。
しかし、ディスク記憶システム14に書き戻す前に更新
済みレコードを圧縮すると、必要な記憶空間が元のレコ
ードより大きくなる可能性がある。このため、順次書き
込まれたレコードでは、改訂されたレコードを別の位置
に格納しなければならないという問題が発生し、それに
より、その後行われる順次レコードの読取り時にディス
クのパフォーマンスに悪影響を及ぼす。
ベース操作で一般に発生するように、データ処理装置1
2がレコードの内容を改訂したり更新する場合がある。
しかし、ディスク記憶システム14に書き戻す前に更新
済みレコードを圧縮すると、必要な記憶空間が元のレコ
ードより大きくなる可能性がある。このため、順次書き
込まれたレコードでは、改訂されたレコードを別の位置
に格納しなければならないという問題が発生し、それに
より、その後行われる順次レコードの読取り時にディス
クのパフォーマンスに悪影響を及ぼす。
【0053】ディスク記憶システム14の記憶域にまず
データベース・レコードが割り振られると、今後のレコ
ードの拡大に対応するためにそのレコードに未使用空間
が提供される。たとえば、レコードの未使用部分を16
進のゼロで埋めてもよい。
データベース・レコードが割り振られると、今後のレコ
ードの拡大に対応するためにそのレコードに未使用空間
が提供される。たとえば、レコードの未使用部分を16
進のゼロで埋めてもよい。
【0054】レコードの最初の更新を除けば、通常、圧
縮レコードのサイズの変動量は少ない。このため、本発
明の他の態様によれば、最初の更新のための予想圧縮サ
イズを上回る空間を元のレコードに割り振ると、更新済
みレコードをディスクの別の領域に再書込みせずに、レ
コードを所定の位置で更新できる確率が高くなる。
縮レコードのサイズの変動量は少ない。このため、本発
明の他の態様によれば、最初の更新のための予想圧縮サ
イズを上回る空間を元のレコードに割り振ると、更新済
みレコードをディスクの別の領域に再書込みせずに、レ
コードを所定の位置で更新できる確率が高くなる。
【0055】この予測を行うには、最初に作成したレコ
ード内の「ブランク」文字で埋められる未使用空間を考
慮する必要がある。つまり、0016という埋込み文字
の圧縮比(たとえば、96:1)は、「通常」データの
場合(たとえば、3.6:1)よりかなり高いのが一般
的である。このため、前述のランレングス・カウンタ2
0aが使用されるのである。
ード内の「ブランク」文字で埋められる未使用空間を考
慮する必要がある。つまり、0016という埋込み文字
の圧縮比(たとえば、96:1)は、「通常」データの
場合(たとえば、3.6:1)よりかなり高いのが一般
的である。このため、前述のランレングス・カウンタ2
0aが使用されるのである。
【0056】ランレングス・カウンタ20aは、圧縮単
位の圧縮完了時にその圧縮単位内の繰返しバイトの最長
ランの値(バイト数)を格納する24ビットのカウンタ
である。たとえば、"xxxyaaaa"という文字列に
は以下のランが含まれている。 xxx ランレングス=3 y ランレングス=1 aaaa ランレングス=4
位の圧縮完了時にその圧縮単位内の繰返しバイトの最長
ランの値(バイト数)を格納する24ビットのカウンタ
である。たとえば、"xxxyaaaa"という文字列に
は以下のランが含まれている。 xxx ランレングス=3 y ランレングス=1 aaaa ランレングス=4
【0057】文字列"xxxyaaaa"の圧縮後、ラン
レングス・カウンタ20aには、文字列"aaaa"に対
応する4という値が入っているはずである。このランレ
ングス・カウンタ20aの内容は、入出力操作によって
データ処理装置12から読み取ることができる。また、
ランレングス・カウンタ20aの内容は、圧縮操作の完
了時にホスト装置(たとえば、データ処理装置12)に
送られる圧縮終了(EOC)信号に自動的に付加するこ
とができる。
レングス・カウンタ20aには、文字列"aaaa"に対
応する4という値が入っているはずである。このランレ
ングス・カウンタ20aの内容は、入出力操作によって
データ処理装置12から読み取ることができる。また、
ランレングス・カウンタ20aの内容は、圧縮操作の完
了時にホスト装置(たとえば、データ処理装置12)に
送られる圧縮終了(EOC)信号に自動的に付加するこ
とができる。
【0058】新しいレコードを含む圧縮単位の圧縮終了
時に、ランレングス・カウンタ20aの値は、そのレコ
ードに含まれる埋込み文字の数を反映している。これ
は、埋込み文字が同一文字の最長ランに含まれていると
いう想定による。このため、ランレングス・カウンタ2
0aに格納されている値を使用して、そのレコードの実
際のデータ圧縮比を圧縮後のサイズを反映した値に調整
する。この圧縮後のサイズは、レコードが更新され、埋
込み文字が実際のデータで上書きされたときにレコード
が想定する。たとえば、レコードの20%が埋込み文字
で構成されていることがランレングス・カウンタ20a
から判定された場合、ならびに埋込み文字が96:1な
どの圧縮比で圧縮されていることが分かっている場合に
は、20%の埋込み文字部分が3.6:1などの圧縮比
で圧縮される実際のデータで置き換えられるという想定
に基づいて、予想圧縮比が調整される。レコードの調整
後、圧縮済み(調整済み)レコードのためにとっておく
必要があるディスク空間の第一の量が求められる。次
に、最初の更新が行われた後で所定の位置でレコードを
更新し、論理レコードの追加を行えるようにするため
に、追加の量のディスク空間(たとえば、5%)が追加
される。
時に、ランレングス・カウンタ20aの値は、そのレコ
ードに含まれる埋込み文字の数を反映している。これ
は、埋込み文字が同一文字の最長ランに含まれていると
いう想定による。このため、ランレングス・カウンタ2
0aに格納されている値を使用して、そのレコードの実
際のデータ圧縮比を圧縮後のサイズを反映した値に調整
する。この圧縮後のサイズは、レコードが更新され、埋
込み文字が実際のデータで上書きされたときにレコード
が想定する。たとえば、レコードの20%が埋込み文字
で構成されていることがランレングス・カウンタ20a
から判定された場合、ならびに埋込み文字が96:1な
どの圧縮比で圧縮されていることが分かっている場合に
は、20%の埋込み文字部分が3.6:1などの圧縮比
で圧縮される実際のデータで置き換えられるという想定
に基づいて、予想圧縮比が調整される。レコードの調整
後、圧縮済み(調整済み)レコードのためにとっておく
必要があるディスク空間の第一の量が求められる。次
に、最初の更新が行われた後で所定の位置でレコードを
更新し、論理レコードの追加を行えるようにするため
に、追加の量のディスク空間(たとえば、5%)が追加
される。
【0059】"The Design and Implementation of a Lo
g-Structured File System" という論文(ACM Transact
ions on Computer Systems, Vol.10, No.1, 1992年2月,
pp.26-52)において M. Rosenblum および John K. Ou
sterhout が記載しているタイプのログ構造ファイル・
システムとしてシステム10を操作することが本発明の
範囲内であることに留意されたい。
g-Structured File System" という論文(ACM Transact
ions on Computer Systems, Vol.10, No.1, 1992年2月,
pp.26-52)において M. Rosenblum および John K. Ou
sterhout が記載しているタイプのログ構造ファイル・
システムとしてシステム10を操作することが本発明の
範囲内であることに留意されたい。
【0060】本発明の好ましい実施例に関連して具体的
に本発明を示し説明してきたが、当業者には、本発明の
範囲および精神を逸脱せずに形式および細部の変更が可
能であることが理解されるだろう。
に本発明を示し説明してきたが、当業者には、本発明の
範囲および精神を逸脱せずに形式および細部の変更が可
能であることが理解されるだろう。
【0061】
【発明の効果】本発明の実施により、(1)より小規模
の圧縮単位を使用する場合に必要なものと比較して、ご
く少量の情報をディレクトリに追加するだけで、レコー
ド読取り操作時の接続時間を短縮する方法を提供し、
(2)制御情報の追加量を大幅に増加せずに、圧縮ディ
スク・トラックからの小規模読取り操作の実行時に発生
する接続時間と応答時間をともに短縮することができ
る。
の圧縮単位を使用する場合に必要なものと比較して、ご
く少量の情報をディレクトリに追加するだけで、レコー
ド読取り操作時の接続時間を短縮する方法を提供し、
(2)制御情報の追加量を大幅に増加せずに、圧縮ディ
スク・トラックからの小規模読取り操作の実行時に発生
する接続時間と応答時間をともに短縮することができ
る。
【図1】本発明により構築および操作されるデータ処理
システムを示すブロック図である。
システムを示すブロック図である。
【図2】本発明による圧縮単位の区分を示す図である。
【図3】本発明の好ましい方法を示す論理流れ図であ
る。
る。
10 データ処理システム 12 データ処理装置 12a キャッシュ 12b データ経路 14 ディスク・データ記憶システム 14a 第一のディスク装置 14b 第二のディスク装置 15a 第一のデータ記憶面 15b 第二のデータ記憶面 15c トラック 16 ディスク・マネージャ 16a ディレクトリ 18 ディスク・デバイス・ドライバ 18a バス 20 データ圧縮装置/圧縮解除装置 20a ランレングス・カウンタ 22 トラック・バッファ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョー=ミン・チェン アメリカ合衆国95111 カリフォルニア 州サンノゼ ライラック・レーン 4935 (72)発明者 オデド・コーン イスラエル32922 ハイファ グート・ レヴィン 20/4 (72)発明者 ジェームズ・ダブリュー・エルドリッジ アメリカ合衆国 カリフォルニア州サン ノゼ スイス・ドライブ 559 (72)発明者 ヨラム・ノヴィク イスラエル32922 ハイファ ゴット・ レヴィン・ストリート 14 (72)発明者 ノーマン・ケイ・オーウチ アメリカ合衆国95120 カリフォルニア 州サンノゼ ビュー・クレスト・コート 20248 (72)発明者 ダニト・セゲヴ イスラエル34751 ハイファ ワトソ ン・ストリート 12 (58)調査した分野(Int.Cl.7,DB名) G06F 3/06
Claims (19)
- 【請求項1】少なくとも1個のディスクで構成されるデ
ータ記憶システムを操作する方法において、 データ圧縮単位をn個(但し、nは2以上の正の整数)
の基本圧縮単位に区分するステップであって、各データ
圧縮単位が複数のディスク・セクタで構成され、n個の
基本圧縮単位のそれぞれが異なる初期セクタから始まる
ステップと、 データ圧縮単位をX個(但し、Xはn未満の正の整数)
の間隔に区分するステップであって、X個の間隔のそれ
ぞれが異なる初期セクタから始まり、しかもn個の基本
圧縮単位の1つの範囲内にあるステップと、 1/X、2/X、・・・、(X−1)/Xという各間隔
が始まるn個の基本圧縮単位の1つの初期セクタをそれ
ぞれ指す複数の第一のポインタを前記少なくとも1個の
ディスクの外部に格納する第一の格納ステップと、 1/X、2/X、・・・、(X−1)/Xという各間隔
が始まるn個の基本圧縮単位のそれぞれの各初期セクタ
内に、その基本圧縮単位内で始まる間隔の初期セクタを
指す第二のポインタを格納する第二の格納ステップと、 X個の間隔の1つの範囲内に位置するセクタの1つから
始まる圧縮データ単位を読み取るためのディスク読取り
操作に応答して、第一のポインタの1つと第二のポイン
タの1つにより、当該圧縮データ単位の開始セクタにア
クセスするアクセス・ステップとを含む、前記方法。 - 【請求項2】データ圧縮単位が前記少なくとも1個のデ
ィスクの1つのトラックに対応することを特徴とする、
請求項1に記載の方法。 - 【請求項3】第一のポインタのそれぞれが、以前の第一
のポインタからのオフセット(セクタ数)として格納さ
れることを特徴とする、請求項1に記載の方法。 - 【請求項4】第二のポインタのそれぞれが、1つの間隔
が始まる基本圧縮単位の初期セクタの先頭から基本圧縮
単位内で始まる間隔の初期セクタまでのバイト数として
格納されることを特徴とする、請求項1に記載の方法。 - 【請求項5】前記第一の格納ステップが、圧縮単位の初
期セクタを指す第三のポインタを前記少なくとも1個の
ディスクの外部に格納することを特徴とする、請求項1
に記載の方法。 - 【請求項6】圧縮データ単位の開始セクタが対象セクタ
(SOI)であり、前記アクセス・ステップが、 SOIを含む間隔が始まる目標基本圧縮単位の初期セク
タを決定するために第一のポインタを使用するステップ
と、 目標基本圧縮単位の初期セクタで前記少なくとも1個の
ディスクから圧縮データの読取りを開始するステップ
と、 第二のポインタの値を求めるために読み取ったデータを
圧縮解除するステップと、 SOIを含む間隔の初期セクタに達するまで圧縮解除デ
ータを破棄するステップとを含むことを特徴とする、請
求項1に記載の方法。 - 【請求項7】SOIと、圧縮データ単位を構成する他の
セクタとを読み取って圧縮解除するステップをさらに含
むことを特徴とする、請求項6に記載の方法。 - 【請求項8】SOIから圧縮単位の末尾までのすべての
セクタを読み取って圧縮解除するステップと、 圧縮単位の初期セクタにシークするステップと、 初期セクタからSOIまでのすべてのセクタを読み取っ
て圧縮解除するステップとをさらに含むことを特徴とす
る、請求項7に記載の方法。 - 【請求項9】圧縮単位が複数のセクタで構成される少な
くとも1つの圧縮レコードを含み、所定のデータ圧縮比
に基づいてセクタの必要数を予測することで圧縮レコー
ドを格納するために複数のセクタを割り振るステップを
含み、この割振りステップが、レコードの実際の圧縮比
を求め、そのレコード内の同一文字の最長ランの値を求
め、同一文字の最長ランの値に基づいて実際の圧縮比を
調整するステップを含むことを特徴とする、請求項1に
記載の方法。 - 【請求項10】前記割振りステップが、前記少なくとも
1個のディスクの別の領域に圧縮レコードを再書込みせ
ずに圧縮レコードを後で更新できるようにするため、予
測数に少なくとも1つの追加セクタを追加するステップ
を含むことを特徴とする、請求項9に記載の方法。 - 【請求項11】少なくとも1個のディスクを有するデー
タ記憶システムにおいて、 データ圧縮単位をn個(但し、nは2以上の正の整数)
の基本圧縮単位に区分するためのディスク・マネージャ
であって、各データ圧縮単位が複数のディスク・セクタ
で構成され、n個の基本圧縮単位のそれぞれが異なる初
期セクタから始まり、前記ディスク・マネージャがデー
タ圧縮単位をX個(但し、Xはn未満の正の整数)の間
隔にさらに区分し、X個の間隔のそれぞれが異なる初期
セクタから始まり、しかもn個の基本圧縮単位の1つの
範囲内にあるディスク・マネージャと、 1/X、2/X、・・・、(X−1)/Xという各間隔
が始まるn個の基本圧縮単位の1つの初期セクタをそれ
ぞれ指す複数の第一のポインタを前記少なくとも1個の
ディスクの外部に格納するための第一の格納手段と、 1/X、2/X、・・・、(X−1)/Xという各間隔
が始まるn個の基本圧縮単位のそれぞれの各初期セクタ
内に、その基本圧縮単位内で始まる間隔の初期セクタを
指す第二のポインタを格納するための第二の格納手段と
を含み、 前記ディスク・マネージャが、X個の間隔の1つの範囲
内に位置するセクタの1つから始まる圧縮データ単位を
読み取るためのディスク読取り操作に応答し、第一のポ
インタの1つと第二のポインタの1つにより、当該圧縮
データ単位の開始セクタにアクセスするためのアクセス
手段をさらに含む、前記データ記憶システム。 - 【請求項12】データ圧縮単位が前記少なくとも1個の
ディスクの1つのトラックに対応することを特徴とす
る、請求項11に記載のデータ記憶システム。 - 【請求項13】第一のポインタのそれぞれが、以前の第
一のポインタからのオフセット(セクタ数)として格納
されることを特徴とする、請求項11に記載のデータ記
憶システム。 - 【請求項14】第二のポインタのそれぞれが、1つの間
隔が始まる基本圧縮単位の初期セクタの先頭から基本圧
縮単位内で始まる間隔の初期セクタまでのバイト数とし
て格納されることを特徴とする、請求項11に記載のデ
ータ記憶システム。 - 【請求項15】前記第一の格納手段が、圧縮単位の初期
セクタを指す第三のポインタを前記少なくとも1個のデ
ィスクの外部に格納することを特徴とする、請求項11
に記載のデータ記憶システム。 - 【請求項16】圧縮データ単位の開始セクタが対象セク
タ(SOI)であり、前記アクセス手段が、SOIを含
む間隔が始まる目標基本圧縮単位の初期セクタを決定す
るために第一のポインタを使用して、目標基本圧縮単位
の初期セクタで前記少なくとも1個のディスクから圧縮
データの読取りを開始し、しかも第二のポインタの値を
求めるために読み取ったデータを圧縮解除して、SOI
を含む間隔の初期セクタに達するまで圧縮解除データを
破棄し、SOIと、圧縮データ単位を構成する他のセク
タとを読み取って圧縮解除するための手段をさらに含む
ことを特徴とする、請求項11に記載のデータ記憶シス
テム。 - 【請求項17】前記アクセス手段が、さらにSOIから
圧縮単位の末尾までのすべてのセクタを読み取って圧縮
解除し、しかも圧縮単位の初期セクタにシークし、初期
セクタからSOIまでのすべてのセクタを読み取って圧
縮解除するための手段を含むことを特徴とする、請求項
16に記載のデータ記憶システム。 - 【請求項18】圧縮単位が複数のセクタで構成される少
なくとも1つの圧縮レコードを含み、前記ディスク・マ
ネージャが、所定のデータ圧縮比に基づいてセクタの必
要数を予測することで圧縮レコードを格納するために複
数のセクタを割り振るための割振り手段をさらに含み、
レコードの実際の圧縮比を求めるための手段と、そのレ
コード内の同一文字の最長ランの値を求めるための手段
と、同一文字の最長ランの値に基づいて実際の圧縮比を
調整するための手段とを含むことを特徴とする、請求項
11に記載のデータ記憶システム。 - 【請求項19】前記割振り手段が、前記少なくとも1個
のディスクの別の領域に圧縮レコードを再書込みせずに
圧縮レコードを後で更新できるようにするため、予測数
に少なくとも1つの追加セクタを追加するための手段を
さらに含むことを特徴とする、請求項18に記載のデー
タ記憶システム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/241,982 US5644791A (en) | 1993-11-30 | 1994-05-11 | System for storing pointers to initial sectors of variable length n units and storing second pointers within the initial sector of the n unit |
| US241982 | 1994-05-11 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0863294A JPH0863294A (ja) | 1996-03-08 |
| JP3201920B2 true JP3201920B2 (ja) | 2001-08-27 |
Family
ID=22912985
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP03955895A Expired - Fee Related JP3201920B2 (ja) | 1994-05-11 | 1995-02-28 | データ記憶システム及びその操作方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3201920B2 (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115425985B (zh) * | 2022-08-10 | 2026-03-31 | 国网宁夏电力有限公司超高压公司 | 一种数据实时压缩存储方法、介质及系统 |
| CN116339645B (zh) * | 2023-05-26 | 2023-08-11 | 杭州中电安科现代科技有限公司 | 一种防火墙磁盘防溢出的方法、装置、设备及介质 |
-
1995
- 1995-02-28 JP JP03955895A patent/JP3201920B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0863294A (ja) | 1996-03-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5644791A (en) | System for storing pointers to initial sectors of variable length n units and storing second pointers within the initial sector of the n unit | |
| US6941420B2 (en) | Log-structure array | |
| US11630589B1 (en) | Transaction-based storage system and method that uses variable sized objects to store data | |
| JP2846839B2 (ja) | データ記憶システム及び関連する方法 | |
| US5237675A (en) | Apparatus and method for efficient organization of compressed data on a hard disk utilizing an estimated compression factor | |
| US6449689B1 (en) | System and method for efficiently storing compressed data on a hard disk drive | |
| JP2831602B2 (ja) | 圧縮データ管理装置及び圧縮データ管理方法 | |
| KR100211790B1 (ko) | 직접 액세스 저장 장치에서 데이터 압축을 위한 디렉토리 재 구축 방법 및 장치 | |
| US8914597B2 (en) | Data archiving using data compression of a flash copy | |
| JP3862274B2 (ja) | Raidディスクサブシステムと統合されたファイルシステムのファイル割り当て方法 | |
| KR100216146B1 (ko) | 직접 액세스 저장장치의 데이터 압축 방법 및 압축 데이터 구조 | |
| JP7794381B2 (ja) | データ圧縮方法及び装置 | |
| KR100449485B1 (ko) | 스트라이핑 시스템 및 이의 매핑 및 처리방법 | |
| US10338833B1 (en) | Method for achieving sequential I/O performance from a random workload | |
| US7716445B2 (en) | Method and system for storing a sparse file using fill counts | |
| JPH0642193B2 (ja) | Dasdアレイのための更新記録方法及び装置 | |
| JP3407628B2 (ja) | 計算機システム | |
| JPH096540A (ja) | 直接アクセス記憶装置のデータ圧縮用組込みディレクトリ方法及びディレクトリ・レコード | |
| CN1122926A (zh) | 最佳性能和空间利用的关键码计数数据到固定块结构映射 | |
| US7584229B2 (en) | Method and system for priority-based allocation in a storage pool | |
| CN119620916A (zh) | 一种数据存储方法、装置及存储系统 | |
| US7840657B2 (en) | Method and apparatus for power-managing storage devices in a storage pool | |
| JPH10320128A (ja) | ディスクアレイ装置の制御方法 | |
| US8402247B2 (en) | Remapping of data addresses for large capacity low-latency random read memory | |
| JP3419538B2 (ja) | 記憶制御方法及びそれを用いた圧縮機能付きディスクシステム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |