2012-11-16 12 views

Odpowiedz

6

Zdecydowanie polecam zajrzeć do aplikacji eleveldb, jeśli naprawdę potrzebujesz drzewa B +. Chodzi o to, że chcesz przechowywać dane w liściach drzewa, off-line na dysku, ponieważ jest to miejsce, w którym B + -tury są zwykle opcją. Istnieje również wariant w czystym Erlangu z LevelDB o nazwie hanoidb, który również jest całkiem ładny, napisany przez Kresten Krab Thorup. Ten sam obszar zastosowania.

Jeśli potrzebujesz przechowywania w pamięci, powinieneś spojrzeć na ETS lub Mnesię (te ostatnie do dystrybucji). W Erlang są to najszybsze rozwiązania, ponieważ masz tę zaletę, że nigdy nie trafiasz na dysk. Jest to szczególnie ważne, jeśli możesz wykonywać standardowe dane o kluczach/wartościach na swoich danych bez konieczności uruchamiania w kontekście transakcyjnym w Mnesii (robi brudne-czyta). Typowa szybkość wyszukiwania to 5-10 nanosekund.

2

Nie ma dostępnej samodzielnej biblioteki, którą znam. Jednak CouchDB source code jest bardzo czytelny i dobrze zaimplementowany.

3

tylko alternatywą, jeśli nie chcesz, aby włamać się do systemów baz danych open source: czysto funkcjonalne struktury danych

Chris Okasaki za może dać pewne wyobrażenie o wdrażaniu go samemu. Drzewo B + nie jest tak skomplikowane z mojego doświadczenia.

Polecam używać gb_trees, jeśli chcesz przechowywać w pamięci i coś więcej niższego poziomu (w pewnym sensie) niż ets i mnesia.