2012-11-16 5 views

Répondre

6

Je recommande fortement de regarder dans l'application eleveldb si vous avez vraiment besoin d'un arbre B +. Le point étant que vous voulez stocker des données dans les feuilles d'un arbre, hors ligne sur le disque, car c'est là que les arbres B + sont normalement une option. Il y a aussi une variante en Erlang pur de LevelDB appelée hanoidb qui est aussi très jolie, écrite par Kresten Krab Thorup. Même zone d'utilisation

Si vous avez besoin d'un stockage en mémoire, vous devriez regarder ETS ou Mnesia (ce dernier pour la distribution). Dans Erlang, ces solutions ont tendance à être les plus rapides car vous avez l'avantage de ne jamais toucher le disque. C'est particulièrement vrai si vous pouvez faire des recherches de clé/valeur standard sur vos données sans avoir besoin de courir dans le contexte transactionnel dans Mnesia (faire des lectures sales). La vitesse de recherche typique est alors de 5 à 10 nanosecondes.

2

Je ne connais pas de bibliothèque autonome. Cependant, le CouchDB source code est très lisible et bien implémenté.

3

Juste une alternative si vous ne voulez pas pirater les systèmes de base de données open source:

Chris Okasaki Structures de données fonctionnelles Purement peuvent vous donner un aperçu de la mise en œuvre par vous-même. B + arbre lui-même n'est pas si compliqué de mon expérience.

Je recommande d'utiliser gb_trees si vous voulez à la fois un stockage en mémoire et quelque chose de plus bas niveau (dans un sens) que ets et Mnesia.

Questions connexes