データベース管理システムの作成に大きな関心があります。SQL Server 2000 の実装方法に関するいくつかのページを読んだところ、4KB のメモリ ページが使用され、それぞれがハード ディスク上の 4KB ページの直接コピーであることがわかりました。これらのページは必要に応じて RAM にロードされ、アイドル状態になると遅延してディスクに書き戻されます (単純化しすぎました)。
プロジェクトの計画段階にあるので、CLR で実行されるコードでこのレベルの制御が可能かどうか疑問に思っています。C、C++、またはDがおそらくこのタスクに適していることはわかっていますが、最初にそれを自分自身に証明したいと思います。この背後にある動機の 1 つは、少なくとも比較的古いオブジェクトについては、データベースをヒープとして使用して、最終的に CLR ガベージ コレクターを実際にオーバーライドしたいと考えていることです。
CLR からメモリを直接制御することは可能ですか? もしそうなら、どうすればいいですか?
今のところ、データが 256 バイト幅の構造体/クラスの集まりであり、ディスク上のフラット テーブルに格納されており、64KB のページを使用しているとします。