Instances

Cette page présente différents concepts Cloud Spanner : instances, configuration d'instances et nœuds. Elle décrit également les différences et les compromis entre instances régionales et multirégionales. Si vous ne maîtrisez pas le fonctionnement de la réplication dans Cloud Spanner, veuillez commencer par consulter la section sur la réplication.

Présentation des instances

Pour utiliser Cloud Spanner, vous devez d'abord créer une instance Cloud Spanner dans votre projet Google Cloud. Cette instance va allouer les ressources utilisées par les bases de données Cloud Spanner dans cette instance.

La création d'une instance implique deux décisions importantes concernant la configuration de l'instance et le nombre de nœuds. Les choix que vous ferez détermineront l'emplacement et la quantité des ressources de stockage et de diffusion de l'instance. Il n'est pas possible de revenir par la suite sur la configuration choisie, mais vous pouvez modifier le nombre de nœuds plus tard si nécessaire.

Configuration de l'instance

La configuration d'une instance permet de définir l'emplacement géographique et la réplication des bases de données au sein de cette instance. Lorsque vous créez une instance, vous devez décider si elle sera régionale (toutes les ressources seront comprises dans une seule région Google Cloud) ou multirégionale (les ressources s'étaleront sur plusieurs régions). Pour ce faire, sélectionnez une configuration d'instance, qui déterminera l'emplacement de stockage des données de votre instance. Les configurations régionales et multirégionales sont décrites plus en détail ci-dessous.

Nombre de nœuds

Lors de la création d'une instance, en plus de définir l'emplacement de stockage des données, vous devez également choisir le nombre de nœuds à allouer à cette instance. Ce choix déterminera la quantité des ressources de diffusion et de stockage disponibles pour les bases de données au sein de cette instance.

Pour illustrer la relation entre les nœuds, les instances dupliquées et les instances, considérons le schéma suivant dans une configuration d'instance régionale.

Instance à 4 nœuds créée dans une configuration d'instance régionale

Le schéma représente une instance à quatre nœuds créée dans une configuration d'instance régionale. Chaque zone du diagramme contient une instance dupliquée complète de la base de données. Dans chaque zone, la base de données dupliquée est diffusée par quatre tâches de diffusion.

Une instance à N nœud comporte N tâches de diffusion dans chaque zone de configuration de l'instance, où chaque zone diffuse une instance dupliquée complète de la base de données.

Chaque nœud fournit jusqu'à 2 To d'espace de stockage. Les valeurs maximales de débit en lecture et en écriture que les nœuds peuvent fournir dépendent de la configuration de l'instance, ainsi que de la conception du schéma et des caractéristiques de l'ensemble de données. Reportez-vous aux sections Configurations régionales et Configurations multirégionales pour en savoir plus.

Après avoir créé une instance, vous pouvez ajouter des nœuds à l'instance ultérieurement. Dans la plupart des cas, vous pouvez également supprimer des nœuds. Dans certains cas, vous ne pouvez pas supprimer de nœuds :

  • Pour supprimer les nœuds, votre instance doit stocker plus de 2 To de données par nœud.
  • En se basant sur l'historique de votre schéma d'utilisation, Cloud Spanner a créé un grand nombre de divisions pour les données de votre instance. Le service ne serait plus en mesure de gérer ces divisions en cas de suppression de certains nœuds.

Lorsque vous supprimez des nœuds, surveillez l'utilisation du processeur et les latences des requêtes dans Cloud Monitoring pour vous assurer que l'utilisation du processeur reste inférieure à 65 % pour les instances régionales et à 45 % pour chaque région des instances multirégionales. Il est possible que les latences des requêtes augmentent temporairement lors de la suppression des nœuds.

Vous pouvez modifier le nombre de nœuds à l'aide de Cloud Console, de l'outil de ligne de commande gcloud ou des bibliothèques clientes.

Cloud Spanner ne propose pas de mode "Suspendre". Ses nœuds sont des ressources dédiées. Même lorsque vous n'exécutez pas de charge de travail, les nœuds Cloud Spanner effectuent des tâches en arrière-plan de manière fréquente afin d'optimiser et de protéger vos données.

Nœuds ou instances dupliquées

Si vous devez faire évoluer les ressources de diffusion et de stockage de votre instance, ajoutez-y des nœuds. Notez que l'ajout d'un nœud n'augmente pas le nombre d'instances dupliquées (fixe pour une configuration donnée), mais accroît les ressources de chaque instance dupliquée au sein de l'instance. L'ajout de nœuds permet de fournir à chaque instance dupliquée plus de processeur et de mémoire RAM, ce qui augmente le débit de l'instance dupliquée En d'autres termes, cela permet plus d'opérations de lecture et d'écriture par seconde. En réalité, le nombre de serveurs Cloud Spanner dans chacune des instances dupliquées de l'instance est identique au nombre de nœuds. Ainsi, le nombre total de serveurs d'une instance Cloud Spanner correspond au nombre de nœuds multipliés par le nombre d'instances dupliquées de l'instance.

Configurations régionales

Les services Google Cloud sont disponibles à différents emplacements en Amérique du Nord, en Amérique du Sud, en Europe, en Asie et en Australie. Si vos utilisateurs et services se trouvent dans la même région, choisissez une configuration d'instance régionale pour assurer une latence faible lors des opérations de lecture et d'écriture.

Configurations disponibles

Cloud Spanner permet les configurations d'instances régionales suivantes :

Nom de la région Description de la région
Amériques
northamerica-northeast1 Montréal
southamerica-east1 São Paulo
us-central1 Iowa
us-east1 Caroline du Sud
us-east4 Virginie du Nord
us-west1 Oregon
us-west2 Los Angeles
us-west3 Salt Lake City
us-west4 Las Vegas
Europe
europe-north1 Finlande
europe-west1 Belgique
europe-west2 Londres
europe-west3 Francfort
europe-west4 Pays-Bas
europe-west6 Zurich
Asie-Pacifique
asia-south1 Mumbai
asia-east1 Taïwan
asia-east2 Hong Kong
asia-northeast1 Tokyo
asia-northeast2 Osaka
asia-northeast3 Séoul
asia-southeast1 Singapour
asia-southeast2 Jakarta
australia-southeast1 Sydney

Pour toute configuration régionale, Cloud Spanner gère trois instances dupliquées en lecture/écriture, chacune étant dans une zone Google Cloud différente dans cette région. Chaque instance dupliquée en lecture/écriture contient une copie complète de votre base de données opérationnelle, capable de diffuser les requêtes en lecture/écriture et en lecture seule. Cloud Spanner utilise des instances dupliquées dans différentes zones, de sorte que votre base de données reste disponible en cas de défaillance d'une zone unique.

Réplication

Les configurations régionales contiennent exactement trois instances dupliquées en lecture/écriture. Comme décrit dans la section sur l'instance dupliquée Cloud Spanner, chaque mutation de Cloud Spanner nécessite un quorum d'écriture composé d'une majorité d'instances dupliquées participant au vote. Les quorums d'écriture se composent de deux des trois instances dupliquées dans la configuration régionale.

Bonnes pratiques

Pour optimiser les performances, suivez les bonnes pratiques suivantes :

  • Concevez un schéma qui évite les hotspots et autres problèmes de performances.
  • Placez les ressources de calcul critiques dans la même région que votre instance Cloud Spanner.
  • Provisionnez suffisamment de nœuds Cloud Spanner afin de maintenir une utilisation globale à priorité élevée du processeur inférieure à 65 %.

Performances

Lorsque vous suivez les bonnes pratiques décrites ci-dessus, chaque nœud Cloud Spanner peut fournir jusqu'à 10 000 requêtes par seconde (RPS) en lecture ou 2 000 RPS en écriture (écriture de lignes individuelles à 1 Ko de données par ligne).

Configurations multirégionales

Comme décrit ci-dessus, les configurations régionales Cloud Spanner répliquent les données entre plusieurs zones d'une même région. Toutefois, si votre application doit souvent lire des données à partir de plusieurs emplacements géographiques (par exemple, pour diffuser des données à des utilisateurs d'Amérique du Nord et d'Asie) ou si vos opérations d'écriture proviennent d'un emplacement différent de vos opérations de lecture (par exemple, si vous avez des charges de travail d'écriture importantes en Amérique du Nord et des charges de lecture importantes en Europe), il est possible qu'une configuration régionale ne soit pas optimale.

Les configurations multirégionales vous permettent de répliquer les données de la base de données dans plusieurs zones, mais également dans plusieurs zones de plusieurs régions, comme défini par la configuration de l'instance. Avec ces instances dupliquées supplémentaires, vous pouvez lire des données avec une faible latence à partir de plusieurs emplacements proches ou dans les régions de la configuration. Toutefois, il existe des compromis. Dans une configuration multirégionale, les instances dupliquées du quorum (lecture/écriture) sont réparties sur plusieurs régions. Par conséquent, elles peuvent générer une latence du réseau supplémentaire lorsque ces instances dupliquées communiquent entre elles afin de voter pour des écritures. En d'autres termes, les configurations multirégionales permettent à votre application d'effectuer des opérations de lecture plus rapidement et dans plus d'emplacements, au prix d'une légère augmentation de la latence en écriture.

Configurations disponibles

Un continent

Nom Zone Régions de lecture/écriture Régions de lecture seule Région témoin
asia1 Asie Tokyo : asia-northeast1 L,2R
Osaka : asia-northeast2 2R
None Séoul : asia-northeast3
eur3 Europe Belgique : europe-west1 L,2R
Pays-Bas : europe-west4 2R
None Finlande : europe-north1
eur5 Europe Londres : europe-west2 L,2R
Belgique : europe-west1 2R
None Pays-Bas : europe-west4
nam3 Amérique du Nord Virginie du Nord : us-east4 L,2R
Caroline du Sud : us-east1 2R
None Iowa : us-central1
nam6 Amérique du Nord Iowa : us-central1 L,2R
Caroline du Sud : us-east1 2R
Oregon : us-west1 1R
Los Angeles : us-west2 1R
Oklahoma : us-central2
nam10 Amérique du Nord Iowa: us-central1 L,2R
Salt Lake City: us-west3 2R
None Oklahoma : us-central2
nam11 Amérique du Nord Iowa : us-central1 L,2R
Caroline du Sud : us-east1 2R
None Oklahoma : us-central2
  • L : région principale par défaut

  • 1R : une instance dupliquée dans la région

  • 2R : deux instances dupliquées dans la région

Trois continents

Nom Zones Régions de lecture/écriture Régions de lecture seule Région témoin
nam-eur-asia1 Amérique du Nord
Europe
Asie
Iowa : us-central1 L,2R
Oklahoma : us-central2 2R
Belgique : europe-west1 2R
Taïwan : asia-east1 2R
Caroline du Sud : us-east1

Avantages

Les instances multirégionales offrent les principaux avantages suivants :

  • Disponibilité de 99,999 % : supérieure à la disponibilité de 99,99 % fournie par les configurations régionales de Cloud Spanner.

  • Distribution des données : Cloud Spanner réplique automatiquement vos données sur plusieurs régions avec des garanties élevées en matière de cohérence. Ainsi, vous pouvez stocker vos données à l'emplacement où elles sont utilisées, ce qui peut réduire la latence et améliorer l'expérience utilisateur.

  • Cohérence externe : même si Cloud Spanner est répliqué sur des emplacements géographiquement éloignés, vous pouvez toujours l'utiliser comme s'il s'agissait d'une base de données s'exécutant sur un seul ordinateur. Les transactions sont assurées d'être sérialisables et l'ordre des transactions dans la base de données est le même que celui dans lequel les clients consultent les transactions qui ont été validées. La cohérence externe est une garantie plus forte que la "cohérence forte" fournie par d'autres produits. Consultez la section TrueTime et cohérence externe pour en savoir plus sur cette propriété.

Réplication

Chaque configuration multirégionale contient deux régions désignées comme régions de lecture/écriture, chacune contenant deux instances dupliquées en lecture/écriture. L'une de ces régions de lecture/écriture est désignée comme région principale par défaut, ce qui signifie qu'elle contient les instances dupliquées principales de votre base de données. Cloud Spanner place également une instance dupliquée témoin dans une troisième région nommée région témoin.

Lorsqu'un client émet une mutation dans votre base de données, un formulaire de quorum d'écriture est créé. Il se compose de l'une des instances dupliquées issues de la région principale par défaut et de deux des quatre instances dupliquées supplémentaires participant au vote. (Le quorum peut être constitué d'instances dupliquées provenant de deux ou trois des régions composant votre configuration, en fonction des autres instances dupliquées participant au vote.) En plus de ces cinq instances dupliquées participant au vote, la configuration peut également contenir des instances dupliquées en lecture seule permettant de diffuser des opérations de lecture à faible latence. Les régions contenant des instances dupliquées en lecture seule sont nommées régions de lecture seule.

En général, les régions participant au vote dans une configuration multirégionale sont placées dans une zone géographiquement proche (à une distance de moins de 1 600 kilomètres) pour créer un quorum à faible latence qui permet des opérations d'écriture rapides. En savoir plus Toutefois, les régions sont encore suffisamment éloignées les unes des autres (en général, d'au moins quelques centaines de kilomètres) pour éviter les défaillances coordonnées.

Les sections suivantes décrivent plus en détail chacun de ces types de région et expliquent comment placer vos charges de travail d'écriture et de lecture en conséquence.

Types de région

Régions de lecture/écriture

Comme décrit ci-dessus, chaque configuration multirégionale contient deux régions d'opérations de lecture/écriture, chacune comportant deux instances dupliquées en lecture/écriture. L'une de ces régions de lecture/écriture est désignée comme étant la région principale par défaut. Une instance principale est choisie pour chaque division parmi les instances dupliquées de la région principale par défaut. En cas de défaillance de l'instance dupliquée principale, l'autre instance dupliquée de la région principale par défaut prend sa place. En réalité, les instances principales procèdent elles-mêmes à des vérifications d'état et peuvent renoncer de façon préemptive au leadership si elles se rendent compte qu'elles ne sont pas opérationnelles. Dans des conditions normales, lorsque toutes les instances dupliquées de la région principale par défaut sont disponibles, cette région contient les instances dupliquées principales. C'est donc ici que les opérations d'écriture sont traitées en premier.

La deuxième région de lecture/écriture contient les instances dupliquées supplémentaires pouvant être désignées comme principales. Dans l'éventualité peu probable où toutes les instances dupliquées dans la région principale par défaut sont perdues, de nouvelles instances dupliquées principales sont choisies depuis la seconde région de lecture/écriture.

Régions de lecture seule

Les régions de lecture seule contiennent des instances dupliquées en lecture seule qui peuvent diffuser des opérations de lecture à faible latence aux clients situés en dehors des régions de lecture/écriture.

Régions témoins

Une région témoin contient une instance dupliquée témoin, qui permet de voter sur des opérations d'écriture. Les témoins sont importants dans l'éventualité peu probable où les régions de lecture/écriture deviennent indisponibles.

Bonnes pratiques

Pour optimiser les performances, suivez les bonnes pratiques suivantes :

  • Concevez un schéma qui évite les hotspots et autres problèmes de performances.
  • Pour une latence optimale en écriture, placez les ressources de calcul allouées aux charges de travail lourdes en écriture dans ou à proximité de la région principale par défaut.
  • Pour des performances en lecture optimales en dehors de la région principale par défaut, utilisez une obsolescence d'au moins 15 secondes.
  • Pour éviter de dépendre d'une seule région pour vos charges de travail, placez les ressources de calcul critiques dans au moins deux régions. Une bonne solution consiste à les placer à côté des deux régions en lecture/écriture différentes afin qu'aucune panne de région n'affecte l'ensemble de votre application.
  • Provisionnez suffisamment de nœuds Cloud Spanner afin de maintenir une utilisation globale à priorité élevée du processeur inférieure à 45 % dans chaque région.

Performances

Chaque configuration Cloud Spanner présente des caractéristiques de performance légèrement différentes en fonction de la topologie de réplication.

Lorsque vous suivez les bonnes pratiques décrites ci-dessus, chaque nœud Cloud Spanner peut fournir les performances approximatives suivantes :

Configuration multirégionale Pic de lectures approximatif (RPS par région) Pic d'écritures approximatif (RPS total)
asia1 7 000 1 800
eur3 7 000 1 800
eur5 7 000 1 800
nam3 7 000 1 800
nam6 7 000 en us-central1 et us-east1
3 500 dans us-west1 et us-west2
1 800
nam10 7 000 1 800
nam11 7 000 1 800
nam-eur-asia1 7 000 1 000

Notez que les instructions de lecture sont fournies par région (car les opérations de lecture peuvent être diffusées de n'importe où), tandis que les instructions d'écriture s'appliquent à l'ensemble de la configuration. Les instructions d'écriture supposent que vous écriviez des lignes uniques à raison de 1 Ko de données par ligne.

Compromis : configurations régionales ou multirégionales

Configuration Disponibilité Latence Coût Localité des données
Régionale 99,99 % Réduit les latences d'écriture dans la région. Coûts réduits ; consultez les tarifs. Active la gouvernance des données géographiques.
Multirégionale 99,999 % Réduit les latences de lecture de plusieurs régions géographiques. Coûts plus élevés ; consultez les tarifs. Distribue les données sur plusieurs régions de la configuration.

Étape suivante