Déclencher manuellement le compactage majeur dans une base de données Spanner

Ce document explique comment déclencher manuellement une compaction majeure dans une base de données Spanner.

Plusieurs fonctionnalités liées au stockage dans Spanner, telles que le stockage hiérarchisé ou le moteur de données en colonnes, nécessitent une compaction majeure à l'échelle de la base de données avant d'être entièrement activées. Par défaut, les compactions majeures se produisent automatiquement sur toutes les tables sur des périodes de sept jours. Cela signifie que vous devrez peut-être attendre jusqu'à sept jours pour qu'une nouvelle fonctionnalité soit entièrement disponible. Pour rendre les nouvelles fonctionnalités disponibles immédiatement, vous pouvez déclencher manuellement une compaction majeure.

Le processus de compaction est une opération de longue durée (LRO).

Tarifs

Le déclenchement manuel d'une compaction majeure augmente temporairement l'utilisation du processeur sur votre instance Spanner. Si une capacité de calcul supplémentaire est nécessaire pour compenser cette augmentation de l'utilisation du processeur, les coûts augmenteront.

Performances

Les compactions majeures s'exécutent en tant qu'opérations en arrière-plan. Toutefois, si votre instance présente une utilisation du processeur constamment élevée, la charge de travail de compaction peut interférer avec d'autres opérations critiques. Dans ce cas, vous pouvez augmenter temporairement la taille de l'instance pour garantir des performances stables pendant la compaction.

Déclencher manuellement une compaction majeure

Google Cloud Console

  1. Ouvrez la Google Cloud console et sélectionnez votre instance.

    Accéder à l'instance Spanner

  2. Sélectionnez une base de données.

  3. Dans le menu de navigation, cliquez sur Spanner Studio.

  4. Ouvrez un nouvel onglet en cliquant sur Nouvel onglet d'éditeur SQL ou Nouvel onglet.

  5. Exécutez l'une des commandes suivantes pour démarrer la compaction, en fonction du dialecte de votre base de données :

    GoogleSQL

    CALL compact_all();
    

    PostgreSQL

    CALL spanner.compact_all();
    

    Cette opération renvoie un ID d'opération de longue durée (LRO) que vous pouvez utiliser pour trouver l'opération dans la liste Opérations.

  6. Pour surveiller la progression de l'opération de compaction, cliquez sur Opérations dans le menu de navigation.

C++

Pour déclencher des compactions de manière automatisée à l'aide de la bibliothèque cliente C++ :

void Compact(google::cloud::spanner::Client client) {
  namespace spanner = ::google::cloud::spanner;

  spanner::SqlStatement select("CALL compact_all()");
  using RowType = std::tuple<std::string>;
  auto rows = client.ExecuteQuery(std::move(select));

  for (auto& row : spanner::StreamOf<RowType>(rows)) {
    if (!row) throw std::move(row).status();
    std::cout << "Long-running operation ID: " << std::get<0>(*row) << "\n";
  }
}

Vous pouvez vérifier la progression d'une opération de base de données de longue durée. Vous pouvez également annuler la requête de compaction majeure en cours à l'aide de l'ID LRO. Pour en savoir plus, consultez Annuler une opération de base de données de longue durée.