2010-12-16 4 views
4

Je déteste demander aux autres de faire mes recherches pour moi, mais peut-être il y a une âme gentille qui connaît la réponse du haut de sa tête:me aider à choisir un magasin clé/valeur

je besoin d'un magasin de clé/valeur avec les caractéristiques suivantes:

  1. Distribué
  2. peut itérer sur les touches dans l'ordre croissant.
  3. Peut trouver la clé basée sur la correspondance partielle (préfixe).
  4. Les valeurs peuvent être blobs jusqu'à un mb ou deux.
  5. Accessible à partir de Java.
  6. Une façon de définir les règles afin que je puisse contrôler comment les clés sont réparties sur les machines, c'est-à-dire, je voudrais avoir une règle selon laquelle les clés avec un préfixe commun restent sur une machine.
  7. Façon d'interroger le système pour savoir quelle machine possède une clé.
  8. Prise en charge de la réplication et de la redondance.
+0

Une table de hachage distribuée. Cela semble intéressant ... – Enrique

+0

En fait, l'exigence de l'itérateur trié rend les tables de hachage distribuées inéléglables. Ils ne trient pas. –

Répondre

1

J'ai deux réponses pour vous:

  1. Amazon S3 prend en charge tout cela, mais évidemment, il fonctionne sur leurs serveurs et pas le vôtre. En particulier, il supporte très bien les recherches de préfixes.
  2. MongoDB prend en charge tout cela. Vous pouvez utiliser regexes ou $ where pour faire correspondre les préfixes. Soyez prudent avec les index pour de meilleures performances.
0

Je ne suis pas sûr que cela corresponde à toutes vos exigences, mais avez-vous regardé Hazelcast's distributed maps? Cela fait un moment que j'ai regardé Hazelcast donc je ne sais pas s'il existe un moyen de savoir quelles instances sont responsables d'une clé donnée, ou un moyen d'assigner des clés aux instances, mais cela fournit un support pour des opérations simultanées sûres sur toute la carte distribuée et d'autres bonnes choses.

Questions connexes