10

ソリッド ステート ディスク (SSD) の価格が下がり、システム ドライブとしてすぐに普及すること、およびそのアクセス レートが回転する磁気メディアよりもはるかに高いことを考えると、SSD をローカル ドライブに使用することで、どのような標準アルゴリズムのパフォーマンスが向上するでしょうか。保管所?たとえば、SSD の高いランダム読み取り速度により、ディスクベースのハッシュテーブルのようなものが大規模なハッシュテーブルの実行可能性になります。4GB のディスク容量がすぐに利用できるため、32 ビット整数の範囲全体へのハッシュが実行可能になります (ただし、作成よりもルックアップの方が多く、それでも時間がかかります)。このサイズのハッシュテーブルは、アクセス速度が原因で回転メディアを扱うには法外ですが、SSD ではそれほど問題にはなりません。

差し迫った SSD への移行によって、アルゴリズムのパフォーマンスが向上する可能性がある分野は他にありますか? 意見ではなく、あることがどのように機能するかについての推論を見たいと思います。私はこれが論争に発展することを望んでいません。

4

5 に答える 5

15

ハッシュテーブルの例は、確かに利益をもたらす重要なデータベース構造です。値を調べるために 4GB 以上のファイル全体をメモリにロードする代わりに、SSD を直接調べることができます。SSD は依然として RAM よりも桁違いに遅いですが、50GB のハッシュ テーブルをディスクに配置することは非常に合理的ですが、大きな鉄に多額のお金を払わない限り、RAM には配置しません。

例として、チェスの位置データベースがあります。私は 50GB を超えるハッシュされた位置を持っています。関連する位置をハッシュ内でグループ化しようとする複雑なコードがあるため、一度に 10MB のテーブルをページインして、その一部を複数の同様の位置クエリに再利用したいと考えています。これを効率的にするには、大量のコードと複雑さが必要です。

SSD に置き換えて、クラスタリングのすべての複雑さを取り除き、本当にばかげたランダム化されたハッシュを使用することができました。また、10MB の大きなチャンクではなく、必要なデータのみをディスクからフェッチするため、パフォーマンスも向上しました。レイテンシは確かに大きくなりますが、正味のスピードアップは大幅に向上します..そして、非常にクリーンなコード (800+ ではなく 20 行) は、おそらくさらに優れています.

于 2009-06-16T22:16:11.117 に答える
3

SSD は、ランダム アクセスの場合のみ大幅に高速です。ディスクへの順次アクセスは、主流の回転ドライブの 2 倍のパフォーマンスしかありません。ここで説明されているように、多くの SSD は多くのシナリオでパフォーマンスが低下し、パフォーマンスが低下します

SSD は大きな変化をもたらしますが、それでも CPU 操作や物理メモリよりもはるかに低速です。4GB ハッシュ テーブルの例では、ランダム ハッシュ テーブル バケットにアクセスするために、SSD から 250 MB/秒以上を維持できる場合があります。回転ドライブの場合、1 桁の MB/秒を破ることができれば幸運です。この 4 GB のハッシュ テーブルをメモリに保持できれば、毎秒ギガバイト単位でアクセスできます。非常に高速な SSD よりもはるかに高速です。

参照記事には、SSD で実行しているときに MS が Windows 7 に対して行ったいくつかの変更がリストされています。まず、ディスクからデータをプリフェッチするための SuperFetch が無効になっています。これは、SSD によって軽減されるディスクの遅いランダム アクセス時間を回避するように設計されています。ファイルがディスク全体に散らばっていても SSD のパフォーマンスに影響しないため、デフラグは無効になっています。

于 2009-06-16T22:17:15.640 に答える
2

当然のことながら、多くのランダムなディスク I/O を必要とする考えられるアルゴリズムはすべて (ランダムがキーワードであり、局所性の原則を鳥に投げかけるのに役立ち、進行中の多くのキャッシュの有用性を排除します) .

ただし、特定のデータベースシステムがこれから得られるのを見ることができました。MySQL、たとえば MyISAM ストレージ エンジンを使用します (データ レコードは基本的に美化された CSV です)。ただし、良い例としては、非常に大きなハッシュテーブルが最善の策になると思います。

于 2009-06-16T22:28:21.123 に答える
1

SSD は、ランダム読み取りでははるかに速く、シーケンシャル読み取りでは少し速く、書き込み (ランダムかどうかに関係なく) は適切に遅くなります。

そのため、ディスクベースのハッシュテーブルは、SSD の更新にかなりの時間がかかるため、適切には有用ではありませんが、ディスクの検索は (通常の hdd と比較して) 非常に安価になります。

于 2009-06-18T09:54:57.207 に答える
0

自分をからかってはいけません。SSDは、システムメモリよりもはるかに低速です。ハードディスク上でシステムメモリを使用することを選択するアルゴリズムは、他のすべての条件が同じであれば、さらに高速になります。

于 2009-06-16T21:56:07.990 に答える