34 votes

Y a-t-il un magasin cloud / base de données clé=>valeur éprouvé pour les entreprises? (Open Source)

J'ai cherché des solutions de cloud computing / stockage depuis longtemps (inspiré par le Google Bigtable). Mais je n'arrive pas à trouver une solution facile à utiliser et prête pour les entreprises.

Je recherche une base de données simple, tolérante aux pannes et distribuée de type Clé=>Valeur comme SimpleDB d'Amazon.

J'ai vu des choses comme :

  1. Le projet CouchDB : Base de données simple, distribuée et tolérante aux pannes. Mais elle ne prend en charge que le JSON. Pas de connecteurs XML, etc.
  2. Eucalyptus : Belles interfaces Amazon EC2. Normes ouvertes & XML. Mais moins distribué et moins tolérant aux pannes ? Il y a aussi beaucoup de problèmes ouverts avec XEN/VMWare.
  3. Cloudstore / Kosmosfs : Fichier système distribué, tolérant aux pannes. Mais difficile à configurer. Y a-t-il des connecteurs Java ?
  4. Apache Hadoop : Bel système offrant bien plus que la capacité de stocker des données. Utilise son propre système de fichiers distribué Hadoop et a été testé sur des clusters avec 2000 nœuds.
  5. *Amazon SimpleDB : Impossible de trouver une alternative open source ! C'est un bon système mais coûteux pour de grandes quantités de données. Et vous devenez dépendant d'Amazon.

Y a-t-il d'autres meilleures solutions là-bas ? Laquelle est la meilleure à choisir ? Laquelle offre le moins de SOP (singe point de défaillance) ?

17voto

Assaf Lavie Points 20181

Que diriez-vous de memcached ?

Le blog High Scalability couvre ce problème ; s'il existe une solution open source pour ce que vous recherchez, elle y sera sûrement.

Autres projets inclus :

Une autre bonne liste : Anti-RDBMS : Une liste de magasins clés-valeurs distribués

7voto

dpavlin Points 609

MongoDB est une autre option qui est très similaire à CouchDB, mais qui utilise un langage de requête très similaire à SQL au lieu de map/reduce en JavaScript. Il prend également en charge les index, le profilage des requêtes, la réplication et le stockage de données binaires.

Il dispose d'une énorme quantité de documentation qui peut être écrasante au début, je vous suggère donc de commencer par la tournée du développeur

4voto

JasonSmith Points 34470

Wikipedia dit que Yahoo contribue à Hadoop et l'utilise en production (article lié depuis Wikipedia). Donc je dirais que cela compte pour la fiabilité commerciale, bien que je ne sois pas sûr que cela compte comme une base de données de valeurs clés.

Non présent dans votre liste, le système Friendfeed utilise MySQL comme un magasin de clés/valeurs sans schéma simple.

Il est difficile pour moi de comprendre vos priorités. CouchDB est simple, tolérant aux pannes et distribué, mais vous l'excluez d'une manière ou d'une autre parce qu'il n'a pas d'XML. Les connecteurs XML et Java sont-ils une exigence implicite?

(Quoi qu'il en soit, CouchDB devrait en fait être exclu car il est jeune, son API n'est pas stable, et ce n'est pas un magasin de valeurs clés.)

4voto

Robert Gould Points 29406

J'utilise l'API de Google Base de Google, c'est Xml, gratuit, documenté, basé sur le cloud, et dispose de connecteurs pour de nombreux langages. Je pense que cela répondra à vos besoins si vous recherchez également un hébergement gratuit.

Maintenant, si vous voulez héberger vos propres serveurs, Tokyo Cabinet est la solution, basée sur des clés=>valeurs, utilise des fichiers plats, et est la base de données la plus rapide actuellement disponible (très épurée comparée à Oracle, mais incroyable pour stocker et accéder aux données, environ 1 million d'enregistrements par seconde, avec environ 10 octets de surcharge (en fonction du moteur de stockage)). En termes de préparation pour les entreprises, TokyoCabinet est le cœur d'un service appelé Mixi, qui est l'équivalent du Facebook+MyPage du Japon, avec plusieurs millions d'utilisateurs importants, il est donc en réalité très éprouvé au combat.

3voto

Nick Johnson Points 79909

Si vous souhaitez quelque chose comme Bigtable, vous ne pouvez pas passer à côté de HBase ou Hypertable - ce sont tous deux des clones open-source de Bigtable. Une chose à considérer, cependant, est de savoir si vos besoins sont vraiment "assez grands" pour Bigtable. Il peut être mis à l'échelle jusqu'à des milliers de serveurs de tablettes, et en tant que tel, a assez d'infrastructures en dessous pour le permettre (par exemple, la gestion de l'attente de pannes régulières des nœuds).

Si vous n'anticipez pas un développement d'au moins quelques dizaines de serveurs de tablettes, vous voudrez peut-être envisager l'une des alternatives proposées : Nous ne pouvons pas battre BerkelyDb pour sa simplicité, ou MySQL pour son omniprésence. Si tout ce dont vous avez besoin est une base de données clé/valeur, vous pouvez mettre un simple enrobage 'dict' autour de votre interface de base de données, et changer votre backend si vous dépassez ses capacités.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X