Avant de lancer une application, nous vous recommandons de préchauffer votre base de données à l'aide de charges de données de test pour profiter des fonctionnalités de parallélisation de Spanner.
Spanner est une base de données distribuée. Cela signifie qu'à mesure que votre base de données s'agrandit, Spanner divise l'espace clé de vos données en fragments appelés divisions. Chaque division est une plage de lignes contenant un sous-ensemble de votre table. En tant que Spanner répartit les données en fonction de leur charge et de leur taille. Il les déplace de manière dynamique les divisions indépendamment les unes des autres et attribue les divisions les différentes ressources du serveur ; pour équilibrer la charge globale de la base de données.
Lorsque vous insérez initialement des données dans une base de données vide, Spanner écrit les données dans une seule division. La base de données est toujours à "froid" de l'état. En tant que lorsque vous insérez davantage de données, Spanner commence à les diviser rééquilibrer la charge sur les autres ressources serveur disponibles. Maintenant Spanner est dans un environnement "tiède" avec répartition sur le serveur disponible pour optimiser le parallélisme et améliorer les performances.
Nous vous recommandons de lancer votre application lorsque Spanner est à l'état chaud, avec des divisions déjà créées et réparties sur les ressources du serveur. Afin de préparer votre base de données et de préparer vos données de test, procédez comme suit:
- Assurez-vous que les clés primaires que vous générez pour vos chargements de données de test se trouvent dans le même espace de clés et qu'elles ont les mêmes propriétés de distribution que les clés que vous utilisez pour le trafic de production.
- Effectuez un test de charge au plus tard deux jours avant le lancement. Exécutez le test de charge pendant au moins une heure en spécifiant le pic de charge attendu. Le test de charge amène Spanner à créer davantage de divisions en raison de la répartition basée sur la charge.
- Une fois le test de charge terminé, vous pouvez supprimer les lignes générées dans les tables par votre test de charge, en veillant à ne pas supprimer les tables elles-mêmes. Ainsi, les divisions seront disponibles pour votre période de lancement.