Loading article…
スパイラルハッシュは、スパイラルストレージとも呼ばれ、拡張可能なハッシュアルゴリズムです。[1] [2] [3] [4] [5]すべてのハッシュスキームと同様に、スパイラルハッシュは、アドレス指定にレコードキーを使用して、さまざまな数のバケットにレコードを格納します。拡張リニアハッシュファイルでは、バケットは定義済みの順序で分割されます。これにより、ファイルの末尾に新しいバケットが追加されます。これにより、ファイルの段階的な再編成が可能になりますが、新しく作成されたバケットと分割されたバケットのレコードの予想数は、以前の数の半分に減少します。このスペース使用率の急激な低下を軽減するために、いくつかの試みがなされました。マーティンのスパイラルストレージは、異なるアプローチを使用します。ファイルは、連続した番号のバケットで構成されています。番号の小さい(左側の)バケットには、予想されるレコード数がより多くなります。ファイルが拡張されると、左端のバケットが右側の 2 つのバケットに置き換えられます。このアイデアにはいくつかのバリエーションがあります。[6] [7] [8]
スパイラル ハッシュでは、レコードのキーを単位間隔 に均一ハッシュ関数で処理する必要があります。ハッシュ ファイルがバケット で始まる場合、キーは実数 にマッピングされます。最終アドレスは次のように計算されます。ここでは「拡張係数」です。が増加すると、右側に約 個の新しいバケットが作成されます。Larson [9] は、線形ハッシュが依然としてスパイラル ハッシュよりも優れたパフォーマンスを発揮することを示す実験を行いました。
参照
参考文献
- ^ Martin, GN (1979)、「Spiral Storage」、Tech. Rep. 27、Univ. Of Warwick、コベントリー、英国
- ^ マリン、ジェームズ K. (1981)、「オーバーフローストレージを別途設けずに厳密に制御された線形ハッシュ」、BIT 数値数学、21 (4): 390–400、doi :10.1007/BF01932837、S2CID 43311559
- ^ マリン、ジェームズ K. (1985)、「スパイラルストレージ: 一定のパフォーマンスを備えた効率的な動的ハッシュ」、コンピュータジャーナル、28 (3): 330–334、doi : 10.1093/comjnl/28.3.330
- ^ Chu, JH.; Knott, GD (1994)、「スパイラルハッシュの分析」、The Computer Journal、37 (8): 715-719、doi : 10.1093/comjnl/37.8.715
- ^ Enbody, Richard; Du, HC (1988 年 6 月)、「動的ハッシュ スキーム」、ACM Computing Surveys、20 (2): 85–113、doi : 10.1145/46157.330532、S2CID 1437123
- ^ Mullin, James K. (1984)、「Unified Dynamic Hashing」、第 10 回国際超大規模データベース会議 (VLDB) の議事録
- ^ 川越 健 (1985)、「Modified Dynamic Hashing」、国際データ管理会議 SIGMOD 議事録
- ^ Chang, Ye-In; Lee, Chien-I; ChangLiaw, Wann-Bay (1999)、「拡張可能なファイルのための線形スパイラルハッシュ」、IEEE Transactions on Knowledge and Data Engineering、11 (6)
- ^ ラーソン、ペル・オーケ(1988年4月)、「動的ハッシュテーブル」、Communications of the ACM、31(4):446–457、doi:10.1145/42404.42410、S2CID 207548097
