centenaire.org

Qu’est-ce que le sharding ?

videoimg

Qu’est-ce que le sharding ?

352 lecteurs
Sommaire de l'article

Qu’est-ce que le sharding ?

Le sharding est une forme de partitionnement des bases de données qui divise les bases de données massives en composants plus petits, plus rapides et plus faciles à gérer. Ces petits morceaux sont appelés « shards de données ». Le mot « shard » signifie « une minuscule partie d’un ensemble plus grand ».

Sharding horizontal et vertical
Le sharding consiste à diviser et à disperser un ensemble de données logiques entre plusieurs bases de données qui n’ont rien en commun et auxquelles on peut accéder sur plusieurs serveurs. Pour réaliser le sharding, les colonnes ou les lignes d’une énorme table de base de données sont divisées en tables plus petites.

Une fois qu’un shard logique a été stocké sur un nœud différent, il est appelé shard physique. Un shard physique peut contenir plusieurs shards logiques. Les shards sont autonomes et ne partagent pas les mêmes ressources informatiques ou données. C’est la raison pour laquelle ils représentent une architecture non partagée. Cependant, les données de chaque shard sont un ensemble de données virtuelles.

Le sharding peut être horizontal ou vertical :

Sharding horizontal. Si chaque table partage le même schéma, mais des rangées distinctes, on parle de sharding horizontal. Dans ce type de sharding, l’ajout de machines supplémentaires à la pile déjà en place permet de répartir la charge, d’augmenter la vitesse de traitement et d’accueillir davantage de trafic. Cette technique est particulièrement efficace lorsque les requêtes retournent un petit nombre de rangées, qui sont généralement placées ensemble.
Le sharding vertical. Si chaque table possède un schéma qui est un véritable sous-ensemble du schéma de la première table, on parle de sharding vertical. Elle est utile lorsque les requêtes sont généralement limitées à une seule colonne de données.
L’illustration suivante montre comment les nouvelles tables apparaissent lorsque le sharding vertical et horizontal sont appliqués au même ensemble de données.

Avantages du sharding

Le sharding est une fonctionnalité courante dans les bases de données évolutives. Comme les shards sont plus petits, plus rapides et plus faciles à gérer, ils peuvent améliorer les performances des bases de données, leur évolutivité et leur administration. Le sharding permet également de réduire le coût des transactions dans la base de données.

Voir Aussi  Espace client CIC Filbanque : accéder à mon compte en ligne

La mise à l’échelle horizontale, communément appelée « scaling out », crée une conception de base de données plus flexible qui est particulièrement bénéfique pour le traitement parallèle. Elle offre une évolutivité quasi illimitée pour les travaux à fort volume et les demandes de Big Data. Grâce au sharding horizontal, les utilisateurs peuvent utiliser de manière optimale toutes les ressources de calcul du cluster pour chaque requête. Cette méthode de sharding peut également accélérer la résolution des requêtes puisque chaque machine doit analyser moins de lignes lorsqu’elle répond à une demande.

Le sharding vertical améliore la capacité de stockage ou la RAM et augmente la capacité de l’unité centrale de traitement (CPU). Les performances d’une machine ou d’un serveur s’en trouvent accrues.

Les bases de données sharded offrent également une meilleure disponibilité et réduisent les effets des pannes, car pendant une panne, seules les parties d’une application qui dépendent des données manquantes deviennent inaccessibles. Une base de données sharded peut également répliquer les shards de sauvegarde sur d’autres nœuds afin de minimiser les dommages causés par une panne. Cependant, les applications qui n’utilisent pas une base de données sharded peuvent être totalement indisponibles après une panne.

Un autre avantage du sharding est qu’il améliore la vitesse d’écriture et de lecture, même lorsque les opérations sont limitées à un seul shard.

La différence entre le partitionnement et le sharding
Bien que le partitionnement et le sharding divisent une énorme base de données en plusieurs petites bases, il existe une distinction entre ces deux approches.

Après le sharding d’une base de données, les données contenues dans les tables sont dispersées sur plusieurs systèmes, mais ce n’est pas le cas avec le partitionnement. Le partitionnement regroupe des données provenant de différentes sources dans une seule base de données.

Voir Aussi  Coflix : quelle est la nouvelle adresse du site de streaming

Différents types d’architectures de sharding
Voici les types d’architectures de sharding les plus courants.

Sharding basé sur les clés
Dans le sharding basé sur les clés, également connu sous le nom de hashing, les données sont introduites dans un algorithme afin de trouver le shard dans lequel chaque valeur de données doit être placée.

Un programme de hachage prend l’élément de données d’entrée et produit une sortie discrète connue sous le nom de valeur de hachage. Dans le cas d’un partage basé sur des clés, c’est la valeur de hachage qui est l’ID du partage et qui détermine le partage dans lequel les données sont conservées. Les valeurs entrées dans le processus de hachage proviennent toutes de la même colonne, appelée clé du shard. Cela permet de s’assurer que les entrées sont organisées de manière cohérente et que les données correctes sont stockées dans les bons shards.

La clé en question est statique, ce qui signifie que ses valeurs ne changent pas dans le temps. Si c’est le cas, elles peuvent causer des problèmes de performance.

Avantages du Sharding basé sur les clés

convient pour répartir les données de manière homogène, en évitant les points chauds
il n’est pas nécessaire de conserver une carte des informations, car les données sont distribuées par algorithme.
Avantages de la répartition par clé

difficile d’ajouter ou de supprimer dynamiquement des serveurs dans la base de données
pendant le rééquilibrage des données et les anciens algorithmes de hachage pourraient être invalides pendant le rééquilibrage des données ; et
Pendant le processus de migration, les serveurs ne sont pas en mesure d’écrire des données sur le nouveau serveur, ce qui peut entraîner une interruption de l’application.

Voir Aussi  Définition Cryptographie

Qu’est-ce que le partage basé sur la plage ?
Le nom implique que le partage basé sur la plage est le partage des données basé sur les plages d’une valeur spécifique. La plage est déterminée par le champ, qui est connu sous le nom de « clé de partage » « sharing key ».

Par exemple, dans le cas d’une base de données en ligne qui contient les notes des étudiants, les shards peuvent être utilisés pour classer les données en fonction des différentes notes.

Avantages du sharding basé sur la gamme

Mise en œuvre simple
Algorithme simple, car les différents shards partagent le même schéma et la même base de données que l’original.
Les inconvénients du sharding basé sur la plage

risque de créer des points chauds dans la base de données, car les données peuvent ne pas être réparties de manière homogène.
Des sélections incorrectes de clés de shard peuvent entraîner des shards déséquilibrés et affecter négativement les performances.
Qu’est-ce que le sharding basé sur les répertoires ?
Dans le sharding basé sur un répertoire, la table de consultation est construite et maintenue. Elle utilise un numéro de shard pour identifier le shard qui contient le type particulier de données.

Avantages du sharding basé sur les répertoires

Offre une plus grande souplesse dans l’affectation dynamique des tiroirs de données ;
Le partage basé sur des clés est supérieur car il ne nécessite pas l’utilisation d’une fonction de hachage.
Il est supérieur au sharding basé sur les plages car il relie chaque clé à son propre shard.
Les inconvénients du sharding basé sur des répertoires

pourrait avoir un impact négatif sur les performances de l’application car il nécessite la connexion à la table de consultation avant chaque requête ou écriture
. Une utilisation incorrecte ou non de la table de consultation pourrait entraîner des problèmes d’accessibilité ou de perte de données.

4.3/5 - (15 votes)
Marine
Marine

Passionnée par l'entreprenariat depuis plus de 10 ans, je suis à la tête d'une société française visant à favoriser la communication des entreprises. Également attiré par la finance, je partage mes conseils et expériences au travers mes articles de blog.

Retour en haut