Quotas et limites

Vous trouverez sur cette page la description des quotas et limites de production pour Spanner. Les termes "quota" et "limite" peuvent être utilisés de manière interchangeable dans la console Google Cloud .

Les valeurs des quotas et des limites sont susceptibles de changer.

Autorisations permettant de vérifier et de modifier les quotas

Pour consulter vos quotas, vous devez disposer de l'autorisation IAM (Identity and Access Management) serviceusage.quotas.get.

Pour modifier vos quotas, vous devez disposer de l'autorisation IAM serviceusage.quotas.update. Elle est incluse par défaut pour les rôles prédéfinis suivants : propriétaire, éditeur et administrateur de quotas.

Ces autorisations sont incluses par défaut dans les rôles IAM de base Propriétaire et Éditeur, ainsi que dans le rôle Administrateur de quotas prédéfini.

Vérifier les quotas

Pour vérifier les quotas actuels associés aux ressources de votre projet, utilisez la consoleGoogle Cloud  :

Accéder à la section "Quotas"

Augmenter les quotas

À mesure que votre utilisation de Spanner s'accroît, les quotas peuvent augmenter en conséquence. Si vous prévoyez une forte hausse de votre utilisation, envoyez une demande quelques jours avant pour être sûr de disposer de quotas suffisants.

Vous devrez peut-être également augmenter votre remplacement du quota de consommateur. Pour en savoir plus, consultez Créer un remplacement de quota client.

Vous pouvez augmenter la limite actuelle de nœuds de configuration de votre instance Spanner à l'aide de la console Google Cloud .

  1. Accédez à la page Quotas.

    Accéder à la page Quotas

  2. Sélectionnez API Spanner dans la liste déroulante Service.

    Si la mention API Spanner ne figure pas dans la liste, cela signifie que l'API Spanner n'a pas été activée. Pour en savoir plus, consultez Activer des API.

  3. Sélectionnez les quotas que vous souhaitez modifier.

  4. Cliquez sur Modifier les quotas.

  5. Dans le panneau Modifications des quotas qui s'affiche, saisissez votre nouvelle limite de quota.

    Capture d'écran de la fenêtre de création d'instance

  6. Cliquez sur OK, puis sur Envoyer la demande.

    Si vous ne parvenez pas à augmenter manuellement la limite de nœuds à la valeur souhaitée, cliquez sur Demander un quota supérieur. Remplissez le formulaire pour envoyer une demande à l'équipe Spanner. Vous recevrez une réponse dans les 48 heures suivant votre demande.

Augmenter votre quota pour une configuration d'instance personnalisée

Vous pouvez augmenter le quota de nœuds pour votre configuration d'instance personnalisée.

  1. Vérifiez la limite de nœuds d'une configuration d'instance personnalisée en vérifiant la limite de nœuds de la configuration d'instance de base.

    Utilisez la commande show instance configurations detail si vous ne connaissez pas ou ne vous souvenez pas de la configuration de base de votre configuration d'instance personnalisée.

  2. Si la limite de nœuds requise pour votre configuration d'instance personnalisée est inférieure à 85, suivez les instructions de la section précédente Augmenter vos quotas. Utilisez la console Google Cloud pour augmenter la limite de nœuds de la configuration d'instance de base associée à votre configuration d'instance personnalisée.

    Si la limite de nœuds requise pour votre configuration d'instance personnalisée est supérieure à 85, remplissez le formulaire Demander une augmentation de quota pour vos nœuds Spanner. Spécifiez l'ID de votre configuration d'instance personnalisée dans le formulaire.

Limites concernant les nœuds

Valeur Limite
Nœuds par configuration d'instance

Les limites par défaut varient en fonction de la configuration du projet et de l'instance. Pour modifier les limites de quota d'un projet ou demander une augmentation de limite, consultez Augmenter vos quotas.

Limites des instances

Valeur Limite
Longueur de l'ID de l'instance 2 à 64 caractères

Limites des instances en essai sans frais

Une instance Spanner en essai sans frais est soumise aux limites supplémentaires suivantes. Pour augmenter ou supprimer ces limites, passez de votre instance en essai sans frais à une instance payante.

Valeur Limite
Capacité de stockage 10 Gio
Limite de la base de données Créer jusqu'à cinq bases de données
Fonctionnalités non compatibles Sauvegarder et restaurer
Contrat de niveau de service Aucun SLA
Durée de l'essai Période d'essai gratuite de 90 jours

Limites du partitionnement géographique

Valeur Limite
Nombre maximal de partitions par instance 10
Nombre maximal de lignes d'emplacement par nœud dans votre partition 100 millions

Limites des requêtes enregistrées

Valeur Limite
Nombre maximal de requêtes enregistrées par projet (y compris les requêtes enregistrées pour d'autres produits Google Cloud ) 10 000
Taille maximale de chaque requête 1 Mio

Limites de configuration des instances

Valeur Limite
Nombre maximal de configurations d'instances personnalisées par projet 100
Longueur de l'ID de configuration d'instance personnalisée

8 à 64 caractères

Un ID de configuration d'instance personnalisée doit commencer par custom-.

Limites des bases de données

Valeur Limite
Bases de données par instance
  • Pour les instances de 1 nœud (1 000 unités de traitement) et supérieures : 100 bases de données
  • Pour les instances de moins d'un nœud : 10 bases de données pour 100 unités de traitement
Rôles par base de données 100
Longueur de l'ID de base de données 2 à 30 caractères
Taille de l'espace de stockage1
  • Pour les instances de 1 nœud (1 000 unités de traitement) et supérieures : 10 Tio par nœud
  • Pour les instances de moins d'un nœud : 1 024 Gio pour 100 unités de traitement

Une capacité de stockage accrue de 10 Tio par nœud est disponible dans la plupart des configurations d'instances Spanner régionales, birégionales et multirégionales. Pour en savoir plus, consultez Améliorations des performances et du stockage.

Si vous utilisez le stockage hiérarchisé, vous pouvez utiliser un stockage combiné (SSD et HDD) jusqu'à 10 Tio par nœud.

Les sauvegardes sont conservées séparément et ne sont pas comptabilisées dans ce quota. Pour en savoir plus, consultez la section Métriques d'utilisation du stockage.

Notez que Spanner facture le stockage réellement utilisé dans une instance, et non son stockage total disponible.

Limites des sauvegardes et des restaurations

Valeur Limite
Nombre d'opérations de création de sauvegarde en cours par base de données 1
Nombre d'opérations de restauration de base de données en cours par instance (dans l'instance contenant la base de données restaurée, et non dans la sauvegarde) 10
Durée maximale de conservation de la sauvegarde 1 an (y compris le jour supplémentaire des années bissextiles)

Limites des schémas

Objets de schéma

Valeur Limite
Nombre total d'objets de schéma dans toutes les bases de données de la même instance Les limites par défaut varient en fonction de la configuration de l'instance9

Instructions LDD

Valeur Limite
Taille de l'instruction LDD pour une seule modification de schéma 10 Mio
Taille de l'instruction LDD pour le schéma complet d'une base de données, telle que renvoyée par GetDatabaseDdl 10 Mio

Graphiques

Valeur Limite
Graphiques de propriétés par base de données 16
Longueur du nom du graphique de propriété 1 à 128 caractères

Tables

Valeur Limite
Tables par base de données 5 000
Longueur du nom de table 1 à 128 caractères
Colonnes par table 1 024
Longueur du nom de colonne 1 à 128 caractères
Taille des données par cellule 10 Mio
Taille d'une cellule STRING 2 621 440 caractères Unicode
Nombre de colonnes dans une clé de table

16

Inclut les colonnes de clé partagées avec n'importe quelle table parente

Profondeur d'entrelacement des tables

7

Une table racine avec une ou plusieurs tables enfants a une profondeur de 1.

Une table racine possédant une ou plusieurs tables petits-enfants a une profondeur de 2, etc.

Taille totale d'une clé de table ou d'index

8 ko

Inclut la taille de toutes les colonnes qui composent la clé

Taille totale des colonnes non clés

1 600 Mio

Inclut la taille de toutes les colonnes non clés d'une table

Index

Valeur Limite
Index par base de données 10 000
Index par table 128
Longueur du nom d'index 1 à 128 caractères
Nombre de colonnes dans une clé d'index

16

Nombre de colonnes indexées (hormis les colonnes STORING) plus le nombre de colonnes de clé primaire dans la table de base

Vues

Valeur Limite
Vues par base de données 5 000
Longueur du nom de vue 1 à 128 caractères
Profondeur d'imbrication

10

Une vue qui fait référence à une autre vue a une profondeur d'imbrication 1. Une vue qui fait référence à une autre vue faisant référence à une autre vue a une profondeur d'imbrication 2, etc.

Groupes de localités

Valeur Limite
Nombre maximal de groupes de localités par base de données 16 (1 groupe de localités par défaut et 15 groupes de localités supplémentaires facultatifs)
Durée minimale requise dans l'option ssd_to_hdd_spill_timespan 1 heure
Durée maximale autorisée dans l'option ssd_to_hdd_spill_timespan 365 jours

Limites des requêtes

Valeur Limite
Colonnes dans une clause GROUP BY 1 000
Valeurs dans un opérateur IN 10 000
Appels de fonctions 1 000
Jointures 20
Appels de fonctions imbriqués 75
Clauses GROUP BY imbriquées 35
Expressions de sous-requêtes imbriquées 25
Instructions "subselect" imbriquées 60
Jointures produites par une requête de graphe 100
Paramètres 950
Longueur des instructions de requête 1 million de caractères
STRUCT champs 1 000
Enfants des expressions de sous-requêtes 50
Liaisons des requêtes 200
Parcours quantifié en fonction de la profondeur du graphique 100

Limites de création, lecture, modification et suppression des données

Valeur Limite
Taille du commit (y compris les index et les flux de modifications) 100 Mio
Lectures simultanées par session 100
Mutations par commit (index compris)2 80 000
Instructions en mode LMD partitionné simultanées par base de données 20 000

Limites des tâches d'administration

Valeur Limite
Taille des requêtes des tâches d'administration3 1 Mio
Nombre maximal de tâches d'administration4

5 par seconde, par projet et par utilisateur

(moyenne sur 100 secondes)

Limites des requêtes

Valeur Limite
Taille des requêtes hors commits5 10 Mio

Limites des flux de modifications

Valeur Limite
Flux de modifications par base de données 10
Flux de modifications surveillant une colonne non clé donnée6 3
Lecteurs simultanés par partition de données de flux de modifications7 5

Limites de Data Boost

Valeur Limite
Requêtes Data Boost simultanées par projet dans us-central1 1000 8
Requêtes Data Boost simultanées par projet et par région dans d'autres régions 400 8

Limites de l'API de pré-fractionnement

Valeur Limite
Points de division ajoutés par requête API 100
Taille des requêtes API pour les points de fractionnement 1 Mio
Points de fractionnement ajoutés par nœud pour toutes les bases de données de l'instance 50
Points de fractionnement ajoutés ou modifiés par minute et par nœud 10
Points fractionnés ajoutés ou modifiés par jour et par nœud 200

Remarques

1. Afin de fournir une haute disponibilité et une faible latence pour l'accès aux bases de données, Spanner définit les limites de stockage en fonction de la capacité de calcul de l'instance :

  • Pour les instances inférieures à un nœud (1 000 unités de traitement), Spanner attribue 1 024 Gio de données pour 100 unités de traitement de la base de données.
  • Pour les instances de 1 nœud et plus, Spanner alloue 10 Tio de données pour chaque nœud.

Par exemple, pour créer une instance d'une base de données de 1 500 Gio, vous devez définir sa capacité de calcul sur 200 unités de traitement. Cette capacité de calcul maintient l'instance en deçà de la limite jusqu'à ce que la base de données atteigne plus de 2 048 Gio. Au-delà de cette taille, il faut ajouter 100 unités de traitement supplémentaires afin de permettre à la base de données de croître. Sinon, les écritures dans la base de données risquent d'être rejetées. Pour en savoir plus, consultez la section Recommandations pour l'utilisation du stockage de bases de données.

Pour assurer un développement optimal, ajoutez de la capacité de calcul avant que la base de données n'atteigne la limite.

2. Les opérations d'insertion et de modification sont comptabilisées en fonction du nombre de colonnes qu'elles concernent. Les colonnes de clé primaire sont toujours concernées. Par exemple, l'insertion d'un nouvel enregistrement peut correspondre à cinq mutations si des valeurs sont insérées dans cinq colonnes. La mise à jour de trois colonnes dans un enregistrement peut également compter comme cinq mutations si l'enregistrement possède deux colonnes de clé primaire. Les opérations de suppression et de suppression de plages représentent une seule mutation, quel que soit le nombre de colonnes concernées. La suppression d'une ligne contenant l'annotation ON DELETE CASCADE d'une table parente ne représente également qu'une seule mutation, quel que soit le nombre de lignes enfants entrelacées. En revanche, si des index secondaires sont définis sur des lignes supprimées, les modifications apportées aux index secondaires sont alors comptabilisées de manière individuelle. Par exemple, si une table comporte deux index secondaires, la suppression d'une plage de lignes dans la table sera comptabilisée comme une mutation pour la table, plus deux mutations pour chaque ligne supprimée, car les lignes de l'index secondaire peuvent être dispersées dans l'espace de clés, ce qui empêche Spanner d'appeler une seule opération de suppression de plage sur les index secondaires. Les index secondaires incluent les index de sauvegarde de clés étrangères.

Pour connaître le nombre de mutations d'une transaction, consultez la section Récupérer les statistiques de commit d'une transaction.

Les flux de modifications n'ajoutent aucune mutation qui est comptabilisée dans cette limite.

3. La limite d'une requête de tâche d'administration exclut les commits, les requêtes répertoriées dans la note 5 et les modifications de schémas.

4. Cette limite de fréquence inclut tous les appels à l'API Admin, y compris les appels pour interroger les opérations de longue durée d'une instance, d'une base de données ou d'une sauvegarde.

5. Cette limite inclut les demandes de création et de modification de base de données, de lecture, de lecture en streaming, d'exécution de requêtes SQL et d'exécution de requêtes SQL en streaming.

6. Un flux de modifications qui surveille une table ou une base de données entières surveille implicitement chaque colonne de cette table ou base de données, et est donc comptabilisé dans cette limite.

7. Cette limite s'applique aux lecteurs simultanés de la même partition de flux de modifications, qu'il s'agisse de pipelines Dataflow ou de requêtes d'API directes.

8. Les limites par défaut varient selon les projets et les régions. Pour en savoir plus, consultez Surveiller et gérer l'utilisation du quota Data Boost.

9. Les objets de schéma comptabilisés incluent tous les types d'objets décrits dans DDL, tels que les tables, les colonnes, les index, les séquences, etc. La limite d'objets de schéma est appliquée au niveau de l'instance et dépend des unités de traitement disponibles pour votre instance.

  • Pour les instances d'un nœud ou plus, la limite par défaut est d'un million d'objets.
  • Pour les instances de moins d'un nœud (1 000 unités de traitement), la limite diminue proportionnellement à la taille de l'instance. Par exemple, la limite est de 100 000 objets de schéma pour les instances avec 100 unités de traitement.

Pour vérifier le nombre d'objets de schéma de vos bases de données et la limite d'objets de votre instance, recherchez les métriques spanner.googleapis.com/instance/schema_objects et spanner.googleapis.com/instance/schema_object_count dans l'explorateur de métriques. Pour en savoir plus sur la surveillance, consultez Surveiller les instances avec Cloud Monitoring.

Si vous atteignez la limite, Spanner vous empêche d'effectuer des opérations qui vous amènent à dépasser cette limite, par exemple :

  • Modifier le schéma de la base de données (par exemple, ajouter un index).
  • Création d'une base de données dans l'instance.
  • Restaurer une base de données à partir d'une sauvegarde dans la même instance. Dans ce cas, vous pouvez restaurer la sauvegarde dans une autre instance ayant la même configuration ou créer une instance avec la même configuration et y restaurer la sauvegarde.