完全スキャンから統計スキャンへ同一視 - IUEC

HOMEブロックチェーン完全スキャンから統計スキャンへ同一視 SSD/NVMe

□ 完全スキャンから統計スキャンへ同一視

なぜ、SSD/NVMeの完全スキャンでは解析精度が低下するのか、その概要をまとめます。

SSD/NVMeには、フラッシュメモリとコントローラの間に「ファームウェアによるアルゴリズム」が存在いたします。 そのため、過去と同じアクセスパターンや管理テーブルに0x00だと記録された各セクタについては、 フラッシュへの読み出しが行われておりません。 このようなトリッキーな構造には、どうしても「ベンチマークで速い=優秀なSSD/NVMe」というイメージがあるためです。
※ トリムコマンドで0x00が書き込まれる背景には、この「管理テーブル」の構築という目的があります。
※ 例えば競技で速さを競う時、「オブジェクト内部のdeleteを外せば大幅に高速化する」があります。 たしかに、それらのdeleteを外せば大幅に高速化いたします(やり方は、void*にキャストしてからdelete、、、絶対にやってはいけません)。 その場限りで、メモリを食い潰しても良いなら、それはありかもしれません(^^;。
しかし、それがプログラムとして優秀かどうかは「別問題」となります。

□ そして、さらには不確定なセクタが塊で出てきます。

さらに、フラッシュ特有の不確定なセクタが出現いたします。[>> 理由はこちら]

□ 完全スキャンを微調整するだけでは対応できないロジックゆえに、統計スキャンが必要となりました

ファームウェアとフラッシュ特有の問題が同時に絡むため、完全スキャンの微調整では対応できません。
そして、この問題はSSD/NVMeが大容量化した後のデータ復旧で、間違いなく牙を剥いてきます。
すでにSSD/NVMeはテラバイトの時代に突入していますので、これらに大切なデータを格納する時が迫っております。 そこで、早い段階から解決法を探りまして、統計スキャンの開発に至りました。
※ 少し前の256GB程度のSSD/NVMeならばシステムしかないため、データ復旧の必要性は低かったです。 しかし、これが2.0TB等になった今……、システム以外のデータも普通に入れて運用されていると思います。


↑ 完全スキャン (v1時代からある、全セクタを呼び出す検査です)

↑ 完全スキャンの結果を統計スキャンへ反映 (完全スキャンの結果→統計スキャンに反映[同一視])

□ 本ページをご覧いただきました方は、以下のページもよくご覧いただいております。
■ 集計中.....