Nous sommes encore dans les premières étapes de déterminer si nous allons avec RDBMS ou NoSQL. L'un des domaines d'intérêt est si nous allons avec NoSQL (probablement CouchDB bien que pourrait être MongoDB), séparer la base de données NoSQL sur différents serveurs serait mieux qu'une instance d'un serveur NoSQL?Dois-je séparer la base de données NoSQL sur des serveurs distincts?
Nous allons construire un système de gestion de fichiers où certains fichiers/vidéos seront regroupés sur différents serveurs. Les fichiers/vidéos liés aux comptes seront stockés sur le serveur de comptes, etc. Pour rechercher un fichier lié à un compte, nous rechercherons probablement la base de données sur le serveur de comptes.
Je peux voir à l'avenir que quelqu'un dira "pourquoi je ne peux pas rechercher sur tous les serveurs pour un type de fichier ou de vidéo"? Clairement ayant une base de données serait mieux ici.
Cependant, mis à part la latence dans les requêtes http pour interroger les serveurs, y a-t-il de meilleures façons de le faire ou les avantages et les inconvénients d'avoir une grande base de données?
JD
Merci @mnemosyn. J'essaie toujours de comprendre l'architecture de NoSQL. Ma compréhension initiale était que je venais de mettre une base de données sur chacun des serveurs et juste les interroger pour obtenir un résultat global de la recherche. Donc, à partir de votre réponse, autosharding plus tard peut résoudre ce problème. Avec auto-sharding, puis-je dire "Tous les documents de comptes" devrait être sur le serveur 2? –
Vous avez mentionné "les opérations de mappage/réduction peuvent s'exécuter en parallèle si la requête le permet, etc.", pouvez-vous me donner plus d'informations sur ce que vous voulez dire? –
"Puis-je dire" Tous les documents de comptes "devrait être sur le serveur 2?" -- Eh bien pas vraiment. La question est: pourquoi voudriez-vous faire cela, plutôt que de laisser le db décider où les données devraient se trouver? Parallélisation: Certaines requêtes (non seulement map/reduce) peuvent être parallélisées, par ex. count ({color: blue}) interroge tous les serveurs en même temps et ajoute les résultats, plutôt que de le faire séquentiellement. Voir le lien dans ma réponse pour plus de détails. – mnemosyn