2011-12-15 5 views
0

Je suis l'architecte d'une solution Web qui prend les fichiers téléchargés et les place sur S3. Lors du téléchargement des fichiers, les utilisateurs peuvent ajouter des métadonnées à des fins d'indexation et d'archivage. J'avais prévu d'utiliser Lucene dans ce but car je l'avais utilisé plusieurs fois auparavant, mais j'ai aussi remarqué qu'Amazon SimpleDB offre un service de métadonnées d'objet pour S3. Je suis attiré par SimpleDB par le manque de maintenance et de surcharge sur la machine qui dessert l'application Web, et par la nature distribuée de SimpleDB par rapport au fichier d'index de localisation unique de Lucene. Les exigences sont que les utilisateurs doivent avoir une recherche ajax lorsque vous tapez une interface web que Lucene peut fournir mais que SimpleDB pourrait aussi faire. Que gagnerais-je/perdrais en utilisant l'indexation SimpleDB sur Lucene dans cette application à portée limitée?Utilisez-vous lucene pour stocker les métadonnées d'indexation ou Amazon SimpleDB?

Merci pour votre compréhension.

Répondre

1

J'ai utilisé SimpleDB pour quelque chose comme ça. L'avantage, mis à part la maintenance zéro, est que les balances SimpleDB, essentiellement indéfiniment. C'est vraiment seulement un avantage si vous voulez architecte pour la possibilité d'un trafic très élevé.

Les principaux inconvénients de SimpleDB pour ce que je vois sont:

  • temps d'attente supérieur. SimpleDB est conçu pour une grande évolutivité et une haute disponibilité. Le compromis est que les demandes ont une latence modérée - supérieure à celle que vous auriez avec un service local non distribué comme Lucene ou en utilisant des fonctionnalités de recherche de texte RDBMS.

  • Recherche de texte moins flexible. DB simple a fondamentalement une syntaxe de requête de type SQL, qui supporte les habituels =,! =,>, < etc. et aussi LIKE où le joker "%" peut apparaître soit au début de la chaîne, fin de la chaîne ou les deux (par exemple "% keyword%"). Il n'y a aucun moyen de rechercher des regex ou des patterns plus complexes (sauf ce que vous pouvez faire en combinant les opérateurs avec AND/OR). Remarque: la condition LIKE supportait auparavant seulement "%" à ​​la fin de la chaîne - une limitation que vous pouvez voir écrite sur le web mais qui n'existe plus.

SimpleDB utilise également le modèle « cohérence éventuelle » par défaut (les mises à jour peut prendre un peu de temps - 10s de secondes parfois - pour être visible constamment). C'est une conséquence de l'évolutivité qui ne peut être évitée. Cependant, je doute que ce soit un problème pour votre cas d'utilisation.

Questions connexes