85 votes

Max des fichiers par répertoire

Si j'avais un million d'images, serait-il préférable de les stocker dans une hiérarchie de dossiers / sous-dossiers ou de simplement les vider directement dans un compartiment (sans dossier)?

Le vidage de toutes les images dans un compartiment sans hiérarchie ralentirait-il les opérations LIST?

La création de dossiers et de sous-dossiers à la volée et la configuration de leurs listes de contrôle d'accès (programmation) sont-elles très lourdes?

118voto

James Brady Points 11646

S3 n'a pas de respect hiérarchique des espaces de noms. Chaque seau contient un certain nombre de correspondances à partir de la clé de l'objet (avec les métadonnées associées, Acl et ainsi de suite).

Même si votre objet est la clé peut contenir un '/', S3 traite le chemin comme une chaîne simple et met tous les objets dans un espace de noms plat.

Dans mon expérience, la LISTE des activités de la prendre (linéaire) de plus, comme nombre d'objets augmente, mais c'est probablement un symptôme de l'augmentation de I/O obligatoire sur les serveurs Amazon, et le long du fil à votre client.

Cependant, la recherche de temps ne semble pas augmenter avec le nombre d'objets - c'est le plus probablement une sorte de O(1) table de hachage de la mise en œuvre sur leur fin, de sorte qu'ayant de nombreux objets dans le même seau devrait être tout aussi performant que les petits seaux pour une utilisation normale (pas de Listes).

Comme pour l'ACL, des subventions peuvent être mis sur le seau et sur chaque objet. Comme il n'y a pas de hiérarchie, ils sont votre seulement deux options. Évidemment, créer autant de seau à l'échelle de subventions permettront de réduire massivement votre admin maux de tête si vous avez des millions de fichiers, mais n'oubliez pas que vous ne pouvez accorder des autorisations, de ne pas révoquer, de sorte que le seau à l'échelle de la subvention devrait être le sous-ensemble maximal de l'ACL pour l'ensemble de son contenu.

J'aimerais vous conseillons de le diviser en différents seaux pour:

  • totalement différente - la séparation des seaux pour les images, les sons et les autres données se fait plus sain d'esprit de l'architecture
  • significativement différentes Acl - si vous pouvez avoir un seau avec de chaque objet de la réception d'un spécifique ACL, ou deux seaux avec différents Acl et non à l'objet, Acl, prenez les deux seaux.

58voto

Vacilando Points 522

La réponse à la question initiale "Nombre maximal de fichiers par répertoire dans S3" est la suivante: ILLIMITÉ. Voir aussi S3 limite aux objets dans un compartiment .

-2voto

duffymo Points 188155

Je n'ai pas de données, mais je suppose que les compartiments aideront.

La recherche séquentielle dans une liste est O (n). Si les compartiments peuvent aider à réduire le nombre de fichiers que vous devez rechercher, je ne vois pas en quoi ils pourraient faire mal. Les frais généraux semblent être un petit prix à payer.

-3voto

Jim Blizard Points 3785

J'utilise une structure de répertoire avec une racine, puis au moins un sous-répertoire. J'utilise souvent "date d'importation du document" comme répertoire sous la racine. Cela peut faciliter la gestion des sauvegardes. Quel que soit le système de fichiers que vous utilisez, vous êtes amené à respecter éventuellement une limite de nombre de fichiers (pratique, sinon physique). Vous pourriez aussi penser à prendre en charge plusieurs racines.

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