2012-11-16 19 views

cevap

6

Gerçekten bir B + ağacına ihtiyacınız varsa kesinlikle eleveldb uygulamasına bakmanızı öneririz. Buradaki nokta, B + -trees'in normalde bir seçenek olduğu gibi, bir ağacın yapraklarındaki veriyi diskte çevrim dışı tutmak istediğinizdir. Aynı zamanda, Kresten Krab Thorup tarafından yazılan oldukça güzel olan hanoidb adlı LevelDB'nin saf Erlang'ında bir varyant vardır. Aynı kullanım alanı.

Bellek içi depolamaya ihtiyacınız varsa, ya ETS veya Mnesia (dağıtım için ikinci) olarak bakmalısınız. Erlang'da bu, diske asla vurma avantajına sahip olmanın en hızlı çözümleri olma eğilimindedir. Mnesia'da işlem içeriğinin içine girmeye gerek kalmadan (kirli okumalar) verilerinizde standart anahtar/değer aramaları yapabiliyorsanız özellikle doğrudur. Tipik arama hızı 5-10 nanosaniyedir. Eğer açık kaynak veritabanı sistemlerine kesmek istemiyorsanız eğer

2

Bildiğim kadarıyla bağımsız bir kitaplık yok. Ancak CouchDB source code çok okunabilir ve iyi uygulanmış.

3

Sadece alternatif:

Chris Okasaki en Tamamen Fonksiyonel Veri Yapıları kendiniz uygulanmasına ilişkin bazı bilgiler verebilir. B + ağacının kendisi benim deneyimimden karmaşık değil.

gb_trees'u hem bellekte depolamayı hem de ets ve mnesia'dan daha düşük düzeydeki (bazı durumlarda) bir şey istiyorsanız tavsiye ederim.