Cette page explique comment configurer le délai de validation (écriture) maximal pour optimiser le débit d'écriture dans Spanner.
Présentation
Pour garantir la cohérence des données, Spanner envoie des requêtes d'écriture à tous les réplicas de vote de la base de données. Ce processus de réplication peut entraîner des coûts de calcul. Pour en savoir plus, consultez la section Réplication.
Les écritures optimisées pour le débit permettent 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 à envoyer aux mêmes participants au vote. L'exécution d'écritures de cette manière peut apporter des améliorations substantielles du débit au prix d'une latence légèrement accrue.
Comportement par défaut
Si vous ne définissez pas de délai de validation, Spanner peut définir un petit délai pour vous 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 validation pour les applications très sensibles à la latence en définissant le délai de validation maximal sur 0 ms.
Si vous disposez d'une application tolérante à la latence et que vous souhaitez optimiser le débit, définir un délai de validation plus long améliore considérablement le débit, tout en augmentant la latence pour chaque écriture. Par exemple, si vous chargez de manière groupée 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 validation sur une valeur plus longue, par exemple 100 ms. Nous vous recommandons de commencer par une valeur de 100 ms, puis d'ajuster la valeur vers le haut et vers le bas jusqu'à ce que les compromis entre la latence et le débit répondent à vos besoins. Pour la plupart des applications, une valeur comprise entre 20 ms et 100 ms est optimale.
Si vous disposez d'une application sensible à la latence, Spanner l'est également par défaut. Si votre charge de travail est irrégulière, Spanner peut définir un léger délai. Vous pouvez essayer de définir une valeur de 0 ms pour déterminer si la réduction de la latence au détriment de l'augmentation du débit est raisonnable pour votre application.
Définir des délais de validation mixtes
Vous pouvez configurer différents délais de validation maximale sur des sous-ensembles de vos écritures. Dans ce cas, Spanner utilise le délai le plus court configuré pour l'ensemble d'écritures. Toutefois, nous vous recommandons de choisir une seule valeur pour la plupart des cas d'utilisation, car cela permet d'obtenir un comportement plus prévisible.
Limites
Vous pouvez définir un délai de validation compris entre 0 et 500 ms. Définir des délais de validation supérieurs à 500 ms génère une erreur.
Définir le délai de validation maximal sur les requêtes de validation
Le paramètre "max commit delay" fait partie de la méthode CommitRequest
. Vous pouvez accéder à cette méthode avec l'API RPC, l'API REST ou la bibliothèque cliente Cloud Spanner.
Go
Node.js
Python
Ruby
Surveiller la latence des requêtes d'écriture
Vous pouvez surveiller l'utilisation du processeur et la latence de Spanner à l'aide de la console Google Cloud. Lorsque vous définissez un temps de latence plus long pour vos requêtes d'écriture, vous pouvez constater une diminution potentielle de l'utilisation du processeur, tandis que la latence augmente. Pour en savoir plus sur la latence dans les requêtes Spanner, consultez la section Capturer et visualiser la latence des requêtes de l'API Spanner.