2012-04-25 3 views
0

Vaut-il mieux stocker des données dans des milliers de fichiers distincts ou dans quelques fichiers XML?Stockage de données XML dans des milliers de petits fichiers

Les données sont partagées entre plusieurs périphériques qui en mettent régulièrement à jour des parties individuelles. Pour minimiser les conflits, chaque objet serait stocké dans un fichier unique nommé après le GUID. Par exemple, il peut y avoir 1000 projets stockés dans 1000 fichiers XML et 500 catégories stockées dans 500 autres fichiers.

Des applications comme OmniFocus et 1Password utilisent actuellement une variante de cette approche. OmniFocus a compressé certains fichiers mais souffrait encore de problèmes de performance sur les lecteurs webDav.

Les utilisateurs ont généralement dans le domaine des milliers de fichiers, certains ayant des dizaines de milliers.

Dans mon cas particulier, les données sont stockées sur un service comme Dropbox, donc une solution de base de données centrale n'est pas disponible.

Les périphériques modifiant les données incluent iOS, Android, Mac et PC.

Les fichiers n'ont pas nécessairement besoin d'être XML. Juste semble être un moyen pratique de stocker des données.

Je suis inquiet au sujet des performances et d'autres problèmes avec ce nombre de fichiers. J'ai déjà une solution de travail en utilisant une douzaine de fichiers (cassés dans les fichiers de changements principaux et périodiques) mais il y a beaucoup de scénarios de cas dans cette autre solution et je me demande si un fichier par UID pourrait être plus propre.

Pensées?

Répondre

2

Désolé, mais la réponse est: ça dépend. Certaines choses seront plus faciles/plus rapides avec quelques gros fichiers, certaines choses seront plus faciles/plus rapides avec beaucoup de petits fichiers.

Les gros fichiers ont tendance à signifier que vous analyserez souvent les données dont vous n'avez pas besoin et alloueront de la mémoire pour contenir les données dont vous n'avez pas besoin.

De petits fichiers signifient que vous avez besoin d'un moyen de garder une trace de tous vos fichiers et de trouver les bons pour une opération donnée.

Je ne voudrais pas gérer plus de 1000 fichiers sans une base de données XML.

+0

Je partage vos réservations concernant plusieurs fichiers. Hélas, nous essayons de le faire sans serveur central. Tout sur un Dropbox ou un serveur de fichiers équivalent donc pas de base de données/intelligence centrale possible. – Stephen

0

Normalement, je vous recommande de charger vos données dans une sorte de base de données. Cela simplifie la recherche, la manipulation et l'extraction dans d'autres formats. Cela dit, j'ai dû concevoir une application qui dépendait de milliers de fichiers CSV, totalisant plusieurs millions de lignes de données. L'un des objectifs de conception était de garder les données maîtrisées dans leur format d'origine, de sorte que pour aider à la recherche de chaque fichier a été chargé dans un index Solr.

Si vous n'avez pas vu Solr en action, je le recommande fortement. Une fois vos données indexées, il fournit une API REST basée sur JSON pour la recherche dans votre contenu. Les index sont simples à garder à jour et très rapides.

+0

Oui, j'adorerais une base de données mais nous le faisons sans serveur central. Tout sur un Dropbox ou un serveur de fichiers équivalent donc pas de base de données/intelligence centrale possible.Solr a l'air cool, cependant. – Stephen

Questions connexes