Cómo activar manualmente la compactación principal en una base de datos de Spanner

En este documento, se explica cómo activar manualmente una compactación principal en una base de datos de Spanner.

Varias funciones relacionadas con el almacenamiento en Spanner, como el almacenamiento por niveles o el motor columnar, dependen de una compactación principal en toda la base de datos antes de que se habiliten por completo. De forma predeterminada, las compactaciones principales se realizan automáticamente en todas las tablas durante períodos de siete días. Esto significa que es posible que debas esperar hasta siete días para que una función nueva esté disponible por completo. Para que las funciones nuevas estén disponibles de inmediato, puedes activar manualmente una compactación principal.

El proceso de compactación es una operación de larga duración (LRO).

Precios

La activación de una compactación principal aumenta temporalmente la capacidad de procesamiento en la instancia de Spanner. Esto puede generar un aumento de los costos.

Rendimiento

Las compactaciones principales se ejecutan como operaciones en segundo plano. Sin embargo, si tu instancia tiene un uso de CPU constantemente alto, la carga de trabajo de compactación podría interferir con otras operaciones críticas. En esos casos, puedes aumentar temporalmente la instancia para garantizar un rendimiento estable durante la compactación.

Activa una compactación principal de forma manual

Google Cloud Consola de

  1. Abre la Google Cloud consola de y selecciona tu instancia.

    Ir a la instancia de Spanner

  2. Selecciona una base de datos.

  3. En el menú de navegación, haz clic en Spanner Studio.

  4. Para abrir una pestaña nueva, haz clic en agregar Nueva pestaña del editor de SQL o Nueva pestaña.

  5. Invoca el siguiente comando para iniciar la compactación:

    CALL compact_all();
    

    Esta operación devuelve un ID de operación de larga duración (LRO) que puedes usar para encontrar la operación en la lista Operaciones.

  6. Para supervisar el progreso de la operación de compactación, en el menú de navegación, haz clic en Operaciones.

C++

Para activar compactaciones de forma programática con la biblioteca cliente de C++, haz lo siguiente:

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";
  }
}

Puedes verificar el progreso de una operación de base de datos de larga duración. También puedes cancelar la solicitud de compactación principal en curso con el ID de LRO. Para obtener más información, consulta Cancela una operación de base de datos de larga duración.