10

今後のSSDテクノロジーが(ほとんどのシステムの)プログラミングにどのように影響するのか疑問に思っています。たくさんの質問がありますが、ここにいくつかの最も明白な質問があります:

  • ディスクアクセスの速度は、メモリ速度に近いどこかで考慮することができますか?
  • そうでない場合、それは単なる一時的な状態ですか、それともSSDがRAMほど高速にならないいくつかの根本的な理由がありますか?
  • Bツリー(およびそのいとこ)はまだ関連していますか?
  • もしそうなら、SSD用に行われたBツリー(B +ツリー、Rツリーなど)の調整または変更はありますか?そうでない場合、SSD用に作成された他のデータ構造はありますか?
4

6 に答える 6

8

SSD によって読み取りのシーク時間の問題が解消されることは事実ですが、SSD に効率的に書き込むことは非常に困難です。Acunu ストレージ コアに SSD を使用する最良の方法を探しながら、これらの問題についていくつかの調査を行ってきました。

あなたはこれらが興味深いと思うかもしれません:

于 2011-08-22T12:02:37.007 に答える
3
  • 現在のフラッシュベースの SSD は、メインメモリ DRAM ほど高速ではありません。不揮発性メモリ技術は最終的に DRAM と同じ性能を発揮するでしょうか? いつか。開発中の有望な技術がたくさんあります。
  • SSD パフォーマンスのボトルネックの 1 つは SATA インターフェイスです。技術が向上するにつれて、SSD は DRAM または PCIe バスに接続されます。
  • メモリ アクセスがブロック単位で実行される限り、B ツリーは依然として関連性があります。DRAM でさえブロック単位でアクセスされ、人気のあるブロックは CPU にキャッシュされます。実装は困難ですが、DRAM で動作するように設計された B ツリーは、他の種類の揮発性検索ツリーよりも優れたパフォーマンスを発揮します。ただし、ツリーに何百万ものエントリが含まれるまで、パフォーマンスの利点は明らかではありません。
  • SSD 用に実装された B ツリーは、ブロック割り当ての改善による恩恵を受けます。現世代のフラッシュ SSD は、順次書き込みを優先します。B ツリーが成長 (または変更) するにつれて、新しいブロックを順番に割り当てて、最高の書き込みパフォーマンスを得る必要があります。ログベースのストレージ形式はうまく機能するはずですが、スケーリングできる実装は見たことがありません。シーケンシャル書き込みとランダム書き込みのパフォーマンスのギャップが小さくなると、割り当て順序の重要性が低下します。
于 2011-07-17T15:31:01.293 に答える
2
  1. RAM は、リセット/再起動後に状態を記憶する必要はありません。SSDがRAMと同じくらい高速になるとは思えません。
  2. ディスクの読み取りを最小限に抑えようとしているため、B ツリーは依然として非常に重要です。
于 2011-07-04T12:21:05.233 に答える
1

1つの要因がすぐに思い浮かびます...

大きく離れたトラック間でヘッドを移動させるには相対的にコストがかかるため、ハード ドライブをテープ ドライブのように扱う傾向が強まっています。これにより、データ アクセス パターンを最適化して、ヘッドがランダムにシークするのではなく、サーフェス上をスムーズに移動できるようにする取り組みが行われました。

SSD は実質的にシーク ペナルティを排除するため、ディスク上のデータのレイアウトについてあまり心配する必要はありません。(より正確には、ウェアレベリングの問題により、別の懸念事項があります)。

于 2011-07-04T12:15:41.870 に答える
1

SSD のシーク時間は、RAM と比較して HDD のシーク時間よりも 1 ~ 2 桁優れていますが、これらの時間は依然として重要です。これは、シーク時間に関連する問題がそれほど深刻ではないことを意味しますが、依然として存在します。スループットは依然として RAM よりもはるかに低くなります。ストレージ技術とは別に、接続が重要です。RAM はマザーボード上の CPU やその他のコンポーネントに物理的に非常に近く、特別なバスを使用します。大容量記憶装置には、この利点がありません。超高速 HDD の代替品として機能する RAM モジュールのバッテリ バックアップ パッケージが存在しますが、SATA、SCSI、またはその他の一般的なディスク インターフェイスを介して接続すると、システム RAM よりも低速になります。

これは、B ツリーが依然として重要であることを意味し、ハイパフォーマンスのためには、RAM にあるものと永続的なストレージにあるものに注意を払う必要があります。アーキテクチャ全体と物理的な制限 (不揮発性の書き込みは揮発性の書き込みよりもおそらく常に遅くなる傾向がある) により、このギャップは小さくなる可能性があると思いますが、近い将来に完全になくなるとは思えません。「RAM」を見ても、実際には単一の速度はありませんが、いくつかのレベルの高速で高速な(ただし、小さくて高価な)キャッシュがあります。したがって、少なくともいくつかの違いは残っています。

于 2012-04-27T11:44:35.953 に答える
0

SSD と RamDisk でビルド時間をテストしたところ、SSD の方が少し高速でした。同じ結果が同僚によってまったく異なるセットアップで達成されました。ビルド時間は、HDD で 9 分、RamDisk で 3 分 30 秒、SSD で 3 分 0 秒でした。

于 2012-01-13T15:04:04.737 に答える