𝗦𝗵𝗮𝗿𝗱𝗶𝗻𝗴 𝗘𝗻 𝗕𝗿𝗲𝗳

Le sharding consiste à diviser une base de données volumineuse en morceaux plus petits appelés shards. Au lieu d'une seule base de données massive, vous répartissez les données sur plusieurs serveurs.

Cette méthode vous aide à :

  • Gérer plus de données
  • Traiter plus de requêtes
  • Réduire la charge sur les machines individuelles
  • Passer à l'échelle horizontalement

Vous devez décider comment acheminer les données vers le bon shard. Voici les principales stratégies :

  1. Sharding basé sur des plages Vous divisez les données en fonction d'une plage de valeurs. Exemple :
  • Shard 1 : Utilisateurs 1 à 3000
  • Shard 2 : Utilisateurs 3001 à 6000
  • Shard 3 : Utilisateurs 6001 à 10000
  1. Sharding basé sur le hachage Vous utilisez une fonction mathématique pour choisir un shard. Exemple : Vous utilisez l'opérateur modulo sur un ID utilisateur. Si le résultat est 0, les données vont au Shard 1. Si le résultat est 1, elles vont au Shard 2. Cela répartit les données de manière uniforme.

  2. Sharding basé sur un répertoire Vous utilisez une table de correspondance pour trouver le bon shard. Exemple : Un système de notification recherche le nom d'une application comme « YouTube » dans un répertoire. Le répertoire indique au système d'utiliser le « Shard 1 ». Cela fonctionne comme un dossier dans un système de fichiers.

  3. Sharding géographique Vous stockez les données en fonction de l'emplacement. Exemple :

  • Les utilisateurs en Inde vont vers le shard Inde.
  • Les utilisateurs aux USA vont vers le shard USA.
  • Les utilisateurs européens vont vers le shard UE.
  1. Sharding dynamique Vous ne codez pas en dur les plages ou les hachages. Votre application consulte une table de configuration lors de l'exécution. Vous pouvez ajouter de nouveaux shards sans modifier votre code.

  2. Sharding hybride Vous combinez plusieurs méthodes pour obtenir de meilleurs résultats. Un modèle courant est le mélange de Directory Based + Hash Based. D'abord, vous utilisez un répertoire pour trouver un groupe. Ensuite, vous utilisez un hachage pour trouver le shard spécifique au sein de ce groupe. Cela vous offre à la fois de la flexibilité et de l'équilibre.

Source : https://dev.to/code_with_aravind/sharding-in-a-nutshell-5f6b