1

一部のインデックスに 64 ビットのハッシュベースの B+ ツリーを使用する NoSQL データベースを開発しています。現在、永続的な B+ ツリーにスナップショット分離マルチバージョン同時実行制御 (SI MVCC) を適用することを検討しています。

私が最初に直面した問題は、B+ ツリーのすべてのノードがツリーの次のノードへのポインタを保持していることです。次のノードが配置されているファイル内のバイト アドレスへの 64 ビット ポインター。したがって、レコード ノードを更新する場合、ルート ノードまでの B+ ツリーのそのブランチ内のすべてのノードを更新する必要があります。非常に多くのディスク更新を回避するためにこれを行うためのより良い/簡単な方法はありますか (通常は 4 'ディスクセクター/ノードは、レコードの書き込みごとに更新する必要があり、各ノードは単一のディスクセクター内に収まります)? おそらく、すべてのリンクされたノードの概要を保持する別のディレクトリ レコードですか?

4

0 に答える 0