2012-11-16 4 views

答えて

6

本当にB +ツリーが必要な場合は、eleveldbアプリケーションを調べることをお勧めします。重要なのは、ディスクのオフラインでツリーの葉にデータを保存することです。これは、通常はB +ツリーがオプションであるためです。 LevelDBのErlangのバリエーションもhanoidbと呼ばれ、Kresten Krab Thorupによって書かれた、かなりいいです。同じ使用領域。

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

2

私が知っているスタンドアロンのライブラリはありません。しかし、CouchDB source codeは非常に読みやすく、うまく実装されています。

3

ただ、代替あなたは、オープンソースのデータベースシステムに侵入しない場合:あなたは自分でそれを実装する上でいくつかの洞察を与えることができ

クリス・オカサキの純粋に機能的なデータ構造。 B +ツリー自体は、私の経験からそれほど複雑ではありません。

etsとmnesiaよりも低レベル(何らかの意味で)のメモリと両方が必要な場合は、gb_treesを使用することをお勧めします。

関連する問題