2011-03-06 3 views
4

Je développe un produit open source et j'ai besoin d'un dbms embarqué. Pouvez-vous recommander une base de données open source intégré qui ...Base de données java open source nosql intégrée

  • peut gérer des objets de plus de 10 Go chacun
  • a une licence amicale pour l'intégration (LGPL, non GPL).
  • est Java pur
  • Est (de préférence) nosql. Sql pourrait fonctionner, mais préfèrent NoSQL

Je l'ai regardé quelques-uns des documents DBMS, comme MongoDB, mais ils semblent se limiter à 4 ou 16 documents mb.

Berkeley DB a semblé attrayant mais a une licence de type GPL. Sqlite3 est attrayant: bonne licence, et vous pouvez compiler avec n'importe quelle taille de blob maximum que vous aimez. Mais ce n'est pas Java. Je sais que les pilotes JDBC existent, mais nous avons besoin d'un système Java pur.

Des suggestions?

Merci

Steve

Répondre

6

Bien qu'il soit une vieille question, je cherchais dans ce récemment et ont rencontré les suivantes (on a demandé au moins deux qui ont été écrit après cette question). Je ne sais pas comment ceux-ci manipulent de très gros objets - et à 10 Go, vous devrez probablement faire des tests sérieux, car je suppose que peu de développeurs de bases de données auraient des objets de cette taille en tête. Je voudrais certainement envisager de les stocker directement sur le disque, avec juste une référence à l'emplacement du fichier dans votre base de données.

(Les opinions ci-dessous sont toutes assez superficielles, d'ailleurs, car je ne les ai pas encore utilisées sérieusement).


OrientDB ressemble le plus mature des trois que je trouvais. Il semble être une base de données de documents et/ou de graphiques et prétend être très rapide (en utilisant la structure de données "RB + Tree" - une combinaison d'arbres B + et Red Black). Il prétend être super rapide et léger, sans dépendances externes. Il semble y avoir une communauté active qui l'a développée, avec beaucoup de commits ces derniers jours, par exemple. Il est également conforme à la norme de base de données graphique TinkerPop, qui ajoute une autre couche de fonctionnalités (telle que le langage d'interrogation graphique Gremlin). C'est ACID conforme, a REST et d'autres API externes et même une application de gestion basée sur le Web (qui pourrait probablement être déployé avec votre DB intégré, mais je ne suis pas sûr). Les deux suivants tombent davantage dans le camp de stockage de valeurs-clés simple du monde SQL N (ot) O (nly).

JDBM3 est un magasin de données extrêmement minime: il a une carte de hachage, carte d'arbre, ensemble d'arbres et liste chaînée qui sont écrites sur le disque dans les fichiers de mémoire mappées. Il prétend être très léger et rapide, est entièrement transactionnel et est activement développé.

HawtDB ressemble très simple et rapide - un index BTree ou Hash persisté sur le disque avec des fichiers mappés en mémoire. C'est (optionnellement) complètement transactionnel.Il n'y a eu aucun engagement au cours des sept derniers mois (à la fin de mars 2012) et il n'y a pas beaucoup d'activité sur la liste de diffusion. Cela ne veut pas dire que ce n'est pas une bonne bibliothèque, mais mérite d'être mentionnée.

JDBM3 et HawtDB sont assez minimes, donc vous n'obtiendrez pas de GUI de fantaisie. Mais je pense qu'ils ont l'air très attirants pour leur rapidité et leur simplicité.


Ce sont tout ce que j'ai trouvé correspondant à vos besoins. En outre, Neo4J est génial - une base de données graphique, qui est maintenant assez mature et fonctionne très bien en mode embarqué. Il est GPL/AGPL sous licence, bien que, donc peut exiger une licence payante, à moins que vous pouvez ouvrir votre code source de trop: http://neotechnology.com/products/price-list/

Bien sûr, vous pouvez également utiliser le H2 SQL database avec une grande table et aucun indice!

+0

Vous avez essayé d'utiliser OrientDB en tant que document DB. La documentation est obsolète et presque tous les exemples utilisent des classes obsolètes ... la lecture des javadocs des dernières versions n'offre presque aucune aide ... J'attendais avec impatience de l'essayer, mais après ce début frustrant je ne suis pas C'est sûr que c'est un bon choix. – Renato

Questions connexes