Sharding est juste un autre nom pour "partitionnement horizontal" d'une base de données. Vous pourriez vouloir chercher ce terme pour le rendre plus clair.
De Wikipedia:
partitionnement horizontal
est un principe de conception de sorte que les lignes d'une table de base de données sont maintenues séparément, plutôt que de diviser par des colonnes (comme pour la normalisation). Chaque partition fait partie d'un fragment, qui peut à son tour se trouver sur un serveur de base de données distinct ou un emplacement physique. L'avantage est que le nombre de lignes dans chaque table est réduit (cela réduit la taille de l'index, améliorant ainsi les performances de recherche). Si la fragmentation est basée sur un aspect réel des données (par exemple, les clients européens par rapport aux clients américains), il est alors possible de déduire facilement et automatiquement l'appartenance de partition appropriée et d'interroger uniquement la partition concernée.
Quelques informations sur sharding:
Tout d'abord, chaque serveur de base de données est identique, ayant la même structure de table. Deuxièmement, les enregistrements de données sont divisés logiquement dans une base de données partitionnée. Contrairement à la base de données partitionnée, chaque enregistrement de données complet existe dans un seul fragment (à moins qu'il n'y ait une mise en miroir pour la sauvegarde/redondance) avec toutes les opérations CRUD effectuées uniquement dans cette base de données. Vous pouvez ne pas aimer la terminologie utilisée, mais cela représente une manière différente d'organiser une base de données logique en parties plus petites.
Mise à jour: Vous ne casserez pas MVC. Le travail de déterminer la partition correcte où stocker les données serait effectué de manière transparente par votre couche d'accès aux données. Là, vous devez déterminer la partition correcte en fonction des critères que vous avez utilisés pour partitionner votre base de données. (Comme vous devez partitionner manuellement la base de données dans différents fragments en fonction de certains aspects concrets de votre application.) Vous devez ensuite faire attention en chargeant et en stockant les données de/dans la base de données pour utiliser le fragment correct.
Peut-être this example avec le code Java rend un peu plus clair (il s'agit du projet Hibernate Shards), comment cela fonctionnerait dans un scénario réel.
Pour faire face au « why sharding
»: Il est principalement que pour les applications à très grande échelle, avec beaucoup des données. Tout d'abord, il permet de réduire les temps de réponse pour les requêtes de base de données. Deuxièmement, vous pouvez utiliser des machines moins chères, "bas de gamme", pour héberger vos données, au lieu d'un seul gros serveur, ce qui ne suffira peut-être plus.
Aurait-on de ces webinaires être utile http://vimeo.com/26742356 http://www.slideshare.net/rightscale/rightscale-webinar-scaling? -votre-base-de-données-dans-le-nuage http://vimeo.com/32541189 –