2010-05-13 31 views
0

Je dois stocker des messages électroniques à utiliser avec notre application. J'ai des "métadonnées" pour tous les messages dans une base de données relationnelle, mais je ne me sens pas à l'aise de garder le contenu des messages (gigaoctets et téraoctets de données de courriel) dans une base de données. J'utilise actuellement IMAP comme stockage, mais j'ai des doutes si je choisis correctement. Il y a tout d'abord un problème de validité de l'identifiant et comment conserver une référence permanente au message dans IMAP. Deuxièmement, je ne suis pas sûr que ce soit la solution la plus robuste en termes de stratégies de sauvegarde/restauration, corruption de magasin, réplication ... Côté positif, je peux interroger IMAP en utilisant les en-têtes car les données sont principalement indexées.Quel stockage de courrier dois-je choisir pour notre application Web? IMAP, key-valud store, rdbms,

Je ne sais pas si les magasins de valeurs-clés sont une meilleure approche (Casandra, Tokyo cabinet, redis). Comment ils gèrent stocker 1 Ko et 50 Mo de données. Comment ils empêchent la corruption et quand la corruption ou l'échec de dispositif se produit comment je peux réparer le magasin.

Répondre

0

Qu'en est-il de l'utilisation du système de fichiers? Vos métadonnées dans la base de données peuvent pointer vers le chemin d'accès du message réel (un message par fichier). Si le volume de votre message est suffisamment élevé pour vous inquiéter des performances en fonction du nombre de fichiers par répertoire, vous pouvez diviser les éléments en une hiérarchie de répertoires à 2 niveaux (ou plus) (par exemple, en hachant le message ID)).

L'utilisation d'un système de fichiers standard signifie que vous pouvez utiliser toute la technologie existante pour la journalisation, la réplication, les sauvegardes, etc.