7

B+ TreeErlangのデータ構造のオープン ソースの既知の実装はありますか?

4

3 に答える 3

6

eleveldb本当に B+ ツリーが必要な場合は、アプリケーションを検討することをお勧めします。ポイントは、データをツリーのリーフに格納し、オフラインでディスクに保存することです。これは、B + ツリーが通常オプションである場合です。hanoidbKresten Krab Thorup によって書かれた、これも非常に優れたLevelDB の純粋な Erlang のバリアントもあります。使用面積は同じです。

インメモリ ストレージが必要な場合は、ETS または Mnesia (後者はディストリビューション用) のいずれかを検討する必要があります。Erlang では、ディスクにヒットしないという利点があるため、これらは最速のソリューションになる傾向があります。Mnesia のトランザクション コンテキスト内で実行する必要なく (ダーティ リードを実行する)、データに対して標準のキー/値ルックアップを実行できる場合は特にそうです。その場合、典型的なルックアップ速度は 5 ~ 10 ナノ秒です。

于 2012-11-16T16:24:31.930 に答える
3

オープン ソース データベース システムにハッキングしたくない場合の代替手段:

Chris Okasaki のPurely Functional Data Structuresは、自分で実装するための洞察を提供してくれます。私の経験からすると、B+ ツリー自体はそれほど複雑ではありません。

インメモリ ストレージと、ets や mnesia よりも (ある意味で) 低レベルなものの両方が必要な場合は、gb_treesを使用することをお勧めします。

于 2012-11-17T04:35:40.333 に答える
2

私が知っているスタンドアロンのライブラリはありません。ただし、CouchDB のソース コードは非常に読みやすく、適切に実装されています。

于 2012-11-16T16:24:24.210 に答える