Clusters élastiques Amazon DocumentDB : comment ça marche - Amazon DocumentDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Clusters élastiques Amazon DocumentDB : comment ça marche

Les rubriques de cette section fournissent des informations sur les mécanismes et les fonctions qui alimentent les clusters élastiques Amazon DocumentDB.

Sharding élastique de clusters Amazon DocumentDB

Les clusters élastiques Amazon DocumentDB utilisent le sharding basé sur le hachage pour partitionner les données sur un système de stockage distribué. Le sharding, également appelé partitionnement, divise les grands ensembles de données en petits ensembles de données répartis sur plusieurs nœuds, ce qui vous permet d'étendre votre base de données au-delà des limites de mise à l'échelle verticale. Les clusters élastiques utilisent la séparation, ou « découplage », du calcul et du stockage dans Amazon DocumentDB, ce qui vous permet d'évoluer indépendamment les uns des autres. Plutôt que de repartitionner les collections en déplaçant de petits morceaux de données entre les nœuds de calcul, les clusters élastiques copient les données de manière efficace dans le système de stockage distribué.

Schéma : modèle de distribution de clusters élastiques

Définitions de partitions

Définitions de la nomenclature des partitions :

  • Shard : un shard fournit le calcul nécessaire à un cluster élastique. Par défaut, une partition comporte deux nœuds. Vous pouvez configurer un maximum de 32 partitions et chaque partition peut en avoir un maximum de 64. vCPUs

  • Clé de partition : une clé de partition est un champ obligatoire dans vos JSON documents dans les collections fragmentées que les clusters élastiques utilisent pour distribuer le trafic de lecture et d'écriture vers le fragment correspondant.

  • Collection de partitions : une collection de partitions est une collection dont les données sont réparties sur un cluster élastique sous forme de partitions de données.

  • Partition : une partition est une portion logique de données fragmentées. Lorsque vous créez une collection fragmentée, les données sont automatiquement organisées en partitions au sein de chaque partition en fonction de la clé de partition. Chaque partition possède plusieurs partitions.

Répartition des données entre des partitions configurées

Créez une clé de partition dotée de nombreuses valeurs uniques. Une bonne clé de partition partitionnera uniformément vos données entre les partitions sous-jacentes, offrant ainsi à votre charge de travail le meilleur débit et les meilleures performances. L'exemple suivant montre des données de nom d'employé qui utilisent une clé de partition nommée « user_id » :

Schéma : date d'ajout du cluster élastique

DocumentDB utilise le hachage pour partitionner vos données entre les partitions sous-jacentes. Les données supplémentaires sont insérées et distribuées de la même manière :

Schéma : date d'ajout du cluster élastique

Lorsque vous agrandissez votre base de données en ajoutant des partitions supplémentaires, Amazon DocumentDB redistribue automatiquement les données :

Schéma : date d'ajout du cluster élastique

Migration élastique de clusters

Amazon DocumentDB prend en charge la migration des données partitionnées MongoDB vers des clusters élastiques. Les méthodes de migration hors ligne, en ligne et hybrides sont prises en charge. Pour de plus amples informations, veuillez consulter Migration vers Amazon DocumentDB.

Mise à l'échelle élastique des clusters

Amazon DocumentDB Elastic Clusters permet d'augmenter le nombre de partitions (mise à l'échelle) dans votre cluster élastique et le nombre de partitions vCPUs appliquées à chaque partition (mise à l'échelle supérieure). Vous pouvez également réduire le nombre de partitions et la capacité de calcul (vCPUs) selon vos besoins.

Pour connaître les meilleures pratiques en matière de dimensionnement, voirMise à l'échelle des clusters élastiques.

Note

La mise à l'échelle au niveau du cluster est également disponible. Pour de plus amples informations, veuillez consulter Dimensionnement des clusters Amazon DocumentDB.

Fiabilité du cluster élastique

Amazon DocumentDB est conçu pour être fiable, durable et tolérant aux pannes. Pour améliorer la disponibilité, Elastic Clusters déploie deux nœuds par partition placés dans différentes zones de disponibilité. Amazon DocumentDB inclut plusieurs fonctionnalités automatiques qui en font une solution de base de données fiable. Pour de plus amples informations, veuillez consulter Fiabilité d'Amazon DocumentDB.

Stockage et disponibilité élastiques en cluster

Les données Amazon DocumentDB sont stockées dans un volume de cluster, qui est un volume virtuel unique utilisant des disques SSD ()SSDs. Un volume de cluster se compose de six copies de vos données, qui sont répliquées automatiquement sur plusieurs zones de disponibilité au sein d'une même AWS région. Cette réplication garantit que vos données sont hautement durables, avec une possibilité moindre de perte des données. Elle permet également de vous assurer que votre cluster est plus disponible pendant un basculement, car les copies de vos données existent déjà dans d'autres zones de disponibilité. Pour plus de détails sur le stockage, la haute disponibilité et la réplication, consultezAmazon DocumentDB : comment ça marche.

Différences fonctionnelles entre Amazon DocumentDB 4.0 et les clusters élastiques

Les différences fonctionnelles suivantes existent entre Amazon DocumentDB 4.0 et les clusters élastiques.

  • Les résultats provenant de top et collStats sont partitionnés par fragments. Pour les collections fragmentées, les données sont réparties entre plusieurs partitions et les collStats rapports sont agrégés collScans à partir des partitions.

  • Les statistiques de collecte provenant de top et collStats pour les collections fragmentées sont réinitialisées lorsque le nombre de partitions du cluster est modifié.

  • Le rôle intégré de sauvegarde est désormais compatibleserverStatus. Action : les développeurs et les applications dotés d'un rôle de sauvegarde peuvent collecter des statistiques sur l'état du cluster Amazon DocumentDB.

  • Le SecondaryDelaySecs champ est remplacé slaveDelay dans la replSetGetConfig sortie.

  • La hello commande remplace isMaster - hello renvoie un document qui décrit le rôle du cluster élastique.

  • Dans les clusters élastiques, $elemMatch l'opérateur correspond uniquement aux documents du premier niveau d'imbrication d'un tableau. Dans Amazon DocumentDB 4.0, l'opérateur parcourt tous les niveaux avant de renvoyer les documents correspondants. Par exemple :

db.foo.insert( [ {a: {b: 5}}, {a: {b: [5]}}, {a: {b: [3, 7]}}, {a: [{b: 5}]}, {a: [{b: 3}, {b: 7}]}, {a: [{b: [5]}]}, {a: [{b: [3, 7]}]}, {a: [[{b: 5}]]}, {a: [[{b: 3}, {b: 7}]]}, {a: [[{b: [5]}]]}, {a: [[{b: [3, 7]}]]} ]); // Elastic Clusters > db.foo.find({a: {$elemMatch: {b: {$elemMatch: {$lt: 6, $gt: 4}}}}}, {_id: 0}) { "a" : [ { "b" : [ 5 ] } ] } // Docdb 4.0: traverse more than one level deep > db.foo.find({a: {$elemMatch: {b: {$elemMatch: {$lt: 6, $gt: 4}}}}}, {_id: 0}) { "a" : [ { "b" : [ 5 ] } ] } { "a" : [ [ { "b" : [ 5 ] } ] ] }
  • La projection « $ » dans Amazon DocumentDB 4.0 renvoie tous les documents avec tous les champs. Avec les clusters élastiques, la find commande avec une projection « $ » renvoie les documents qui correspondent au paramètre de requête contenant uniquement le champ correspondant à la projection « $ ».

  • Dans les clusters élastiques, find les commandes avec les paramètres de $options requête $regex et de requête renvoient une erreur : « Impossible de définir les options à la fois dans $regex et $options ».

  • Avec les clusters élastiques, renvoie $indexOfCP désormais « -1 » lorsque :

    • la sous-chaîne est introuvable dans lestring expression, ou

    • startest un nombre supérieur àend, ou

    • startest un nombre supérieur à la longueur en octets de la chaîne.

    Dans Amazon DocumentDB 4.0, $indexOfCP renvoie « 0 » lorsque la start position est supérieure à un nombre end ou à la longueur en octets de la chaîne.

  • Avec les clusters élastiques, les opérations de projection dans_id fields, par exemple :{"_id.nestedField" : 1}, renvoient des documents qui incluent uniquement le champ projeté. Alors que dans Amazon DocumentDB 4.0, les commandes de projection de champs imbriqués ne filtrent aucun document.