Cette page explique comment configurer le délai maximal de commit (écriture) afin d'optimiser le débit en écriture dans Spanner.
Présentation
Pour assurer la cohérence des données, Spanner envoie des requêtes d'écriture à toutes les instances répliquées qui votent dans la base de données. Ce processus de réplication peut entraîner une surcharge de calcul. Pour en savoir plus, consultez la section Réplication.
Les écritures optimisées pour le débit offrent la possibilité d'amortir ces coûts de calcul en exécutant un groupe d'écritures ensemble. Pour ce faire, Spanner introduit un léger délai et collecte un groupe d'écritures qui doivent être envoyées aux mêmes participants votants. Une telle exécution d'écritures peut améliorer considérablement le débit, mais entraîne une légère augmentation de la latence.
Comportement par défaut
Si vous ne définissez pas de délai de commit, Spanner peut définir un léger délai s'il pense que cela amortira le coût de vos écritures.
Cas d'utilisation courants
Vous pouvez définir manuellement le délai de vos requêtes d'écriture en fonction des besoins de votre application. Vous pouvez également désactiver les délais de commit pour les applications hautement sensibles à la latence en définissant le délai de commit maximal sur 0 ms.
Si votre application est tolérante à la latence et que vous souhaitez optimiser le débit, définir un délai de commit plus long améliore considérablement le débit tout en entraînant une latence plus élevée pour chaque écriture. Par exemple, si vous effectuez le chargement groupé d'une grande quantité de données et que l'application ne se soucie pas de la rapidité avec laquelle Spanner écrit des données individuelles, vous pouvez définir le délai de commit sur une valeur plus longue, par exemple 100 ms. Nous vous recommandons de commencer par une valeur de 100 ms, puis de l'ajuster à la hausse ou à la baisse jusqu'à ce que les compromis en termes de latence et de débit répondent à vos besoins. Pour la plupart des applications, il est préférable d'utiliser une valeur comprise entre 20 ms et 100 ms.
Si vous avez une application sensible à la latence, Spanner l'est également par défaut. En cas de pics de charge de travail, Spanner peut définir un léger retard. Vous pouvez tester la définition d'une valeur de 0 ms pour déterminer si la réduction de la latence au prix d'une augmentation du débit est raisonnable pour votre application.
Définir des délais de commit mixtes
Vous pouvez configurer différents délais de commit maximaux sur des sous-ensembles de vos écritures. Dans ce cas, Spanner utilise le délai le plus court configuré pour l'ensemble des écritures. Toutefois, nous vous recommandons de choisir une valeur unique dans la plupart des cas d'utilisation, car cela entraîne un comportement plus prévisible.
Limites
Vous pouvez définir un délai de commit entre 0 et 500 ms. Si vous définissez un délai de commit supérieur à 500 ms, une erreur se produira.
Définir le délai de commit maximal pour les requêtes de commit
Le paramètre de délai de commit maximal fait partie de la méthode CommitRequest
. Vous pouvez accéder à cette méthode avec l'API RPC, l'API REST ou à l'aide de la bibliothèque cliente Cloud Spanner.
Go
Node.js
Python
Ruby
Surveiller la latence des requêtes d'écriture
Vous pouvez surveiller l'utilisation et la latence du processeur Spanner à l'aide de la console Google Cloud. Lorsque vous définissez un délai plus long pour vos requêtes d'écriture, attendez-vous à ce que l'utilisation du processeur diminue, tandis que la latence augmente. Pour en savoir plus sur la latence dans les requêtes Spanner, consultez la page Capturer et visualiser la latence des requêtes de l'API Spanner.