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 par niveau ou le moteur de données en colonnes, reposent sur une compaction majeure à l'échelle de la base de données avant d'être entièrement activées. Par défaut, les compactages majeurs ont lieu automatiquement dans 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 un compactage majeur.

Le processus de compactage est une opération de longue durée.

Tarifs

Le déclenchement d'une compaction majeure augmente temporairement la capacité de calcul sur l'instance Spanner. Cela peut entraîner une augmentation des coûts.

Performances

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

Déclencher manuellement un compactage majeur

Console Google Cloud

  1. Ouvrez la console Google Cloud , puis 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 de l'éditeur SQL ou Nouvel onglet.

  5. Appelez la commande suivante pour lancer la compaction :

    CALL 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 compactage, cliquez sur Opérations dans le menu de navigation.

C++

Pour déclencher des compactages de manière programmatique à 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()");
  auto rows = client.ExecuteQuery(statement);
  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 demande 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.