Question

Je travaille sur un système qui a besoin de stocker un grand nombre de documents (PDF, Word, etc.) J'utilise Solr / Lucene pour rechercher des informations revelant extraites de ces documents, mais je dois aussi un endroit pour stocker les fichiers d'origine afin qu'ils puissent être ouverts / téléchargés par les utilisateurs.

Je pensais à plusieurs possibilités:

  • système de fichiers - probablement pas une bonne idée de stocker des documents 1m
  • base de données sql - mais je ne aurai pas besoin la plupart de ses caractéristiques relationnelles que je dois stocker seul le document binaire et son identifiant si cela pourrait ne pas être la solution la plus rapide
  • base de données sans sql - ne pas de expierience avec eux donc je ne sais pas s'ils sont bons non plus, il y a aussi beaucoup d'entre eux, donc je ne sais pas laquelle choisir

Le stockage Je cherche devrait être:

  • rapide
  • scallable
  • open-source (pas cruciale, mais agréable d'avoir)

Pouvez-vous recommander ce qui est la meilleure façon de stocker ces fichiers seront à votre avis?

Était-ce utile?

La solution

Un système de fichiers - comme son nom l'indique -. Est conçu et optimisé pour stocker un grand nombre de fichiers de manière efficace et évolutive

Autres conseils

Vous pouvez suivre Facebook comme il stocke beaucoup de fichiers (15 milliards de photos):

  • Ils ont d'abord commencé avec partage NFS servi par les appareils de stockage commerciaux.
  • Ensuite, ils ont déménagé à leur serveur de fichiers http mise en œuvre onw appelé Haystack

Voici une note facebook si vous voulez en savoir plus http: //www.facebook .com / note.php? note_id = 76191543919

En ce qui concerne le partage NFS. Gardez à l'esprit que les partages NFS limite habituellement quantité de fichiers dans un dossier pour des raisons de performances. (Cela pourrait être un peu contre-intuitif si l'on suppose que tous les systèmes de fichiers récents utilisent b arbres pour stocker leur structure.) Donc, si vous utilisez des actions NFS comercial comme (NetApp), vous aurez probablement besoin de conserver les fichiers dans plusieurs dossiers.

Vous pouvez le faire si vous avez une sorte d'identité pour vos fichiers. Il suffit de diviser la représentation de ce Ascii aux groupes de caractères et dossier faire pour chaque groupe. Par exemple, nous utilisons des entiers pour ids si fichier avec id 1234567891 est stocké sous forme de stockage / 0012/3456/7891.

L'espoir qui aide.

À mon avis ...

Je stocker des fichiers compressés sur le disque (système de fichiers) et utiliser une base de données pour garder la trace d'eux.

et posibly utiliser SQLite si c'est le seul travail.

Système de fichiers: en pensant à la grande image, Le SGBD utilise à nouveau le système de fichiers. Et le système de fichiers est dédié pour garder les fichiers, afin que vous puissiez voir les optimisations (comme LukeH mentionné)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top