質問: キャッシュ適用のためのMemoryMappedFileおよびb-tree これは単なるアイデアです、私はまだコードを持っていない、私はいくつかの設計アドバイスが必要です。私はC#でMemoryMappedFileを使ってキャッシュを実装します(最初のインスタンスでは分散しません)。私は、Bツリーを頼りにならない構造として持つことが良いと思うが、これも議論の余地がある。 だから問題は次のとおりです: * 遅延のないサポートがメモリマップファイルの場合、B-treeはアイテムを高速に検索するのに良い戦略ですか? * メモリマップされたファイルのヒントとヒントどのくらいの大きさのビューができますか、大きすぎるか大きすぎる場合の欠点は何ですか? * マルチスレッドの考慮事項:メモリマップファイルと並行処理の仕組みキャッシュはクライアントにヒットするはずですが、何かを実行する方が良いでしょうか? @Internal Server Errorが尋ねられたので、私はこの質問を統合します: Keyは最大64文字の文字列です。データは約1024バイトの長さですが、128バイト以上の平均を考えてみましょう:キャッシュしたいものはOR/Mエンティティです。シリアル化されたエンティティのバイト数は、BSOnシリアライザ。
回答: * Bツリーは(メモリマップされたファイルの場合)良好ですが、ファイルが常に常駐メモリに保持されているとは限らない場合は、ページアライメントされたB +ツリーがはるかに優れています。 も参照してください。 * メモリマップファイルのトリックは、ファイル全体をメモリにマップできるように64ビットアーキテクチャを使用することです。そうしないと、パーツとキャッシュされた `read` `mmap` よりも速いかもしれません。 * 共有メモリ上でCAS(比較とスワップ)を試してください。 こちらもご覧ください。