En esta página, se describe cómo configurar el tiempo máximo de retraso de confirmación (escritura) para y optimizar la capacidad de procesamiento de escritura en Spanner.
Descripción general
Para garantizar la coherencia de los datos, Spanner envía solicitudes de escritura a y todas las réplicas de votación en la base de datos. Este proceso de replicación puede tener sobrecarga de procesamiento. Para obtener más información, consulta Replicación:
Las escrituras optimizadas para la capacidad de procesamiento ofrecen la opción de amortizar estos cálculos. de costos ejecutando un grupo de operaciones de escritura en conjunto. Para ello, Spanner introduce un pequeño retraso y recopila un grupo de operaciones de escritura que deben enviarse a los mismos participantes votantes. La ejecución de escrituras en este puede proporcionar mejoras sustanciales en la capacidad de procesamiento a costa de de aumento en la latencia.
Comportamiento predeterminado
Si no estableces un tiempo de demora de confirmación, Spanner podría establecer una demora pequeña por ti si considera que eso amortizará el costo de tus operaciones de escritura.
Casos de uso habituales
Puedes configurar manualmente el tiempo de retraso de las solicitudes de escritura según tu las necesidades de la aplicación. También puedes inhabilitar los retrasos en las confirmaciones altamente sensible a la latencia configurando el tiempo máximo de retraso de confirmación en 0 ms
Si tienes una aplicación tolerante a la latencia y deseas optimizar la capacidad de procesamiento configurar un tiempo de retraso de confirmación mayor mejora la capacidad de procesamiento lo que aumenta la latencia en cada escritura. Por ejemplo, si cargas un una gran cantidad de datos y a la aplicación no le importa qué tan rápido Spanner escribe cualquier dato individual y, luego, puedes configurar la confirmación de retraso a un valor más largo, como 100 ms. Te recomendamos que comiences con de 100 ms y ajustarlo hacia arriba y hacia abajo hasta que las compensaciones de latencia y capacidad de procesamiento satisfagan sus necesidades. Para la mayoría de las aplicaciones, un valor entre 20 ms y 100 ms funciona mejor.
Si tienes una aplicación sensible a la latencia, la de Spanner también son sensibles a la latencia de forma predeterminada. Si tienes una carga de trabajo creciente, Spanner puede establecer una pequeña demora. Puedes experimentar con la configuración de un valor de 0 ms para determinar si la reducción de la latencia a costa de un aumento de la capacidad de procesamiento es razonable para tu aplicación.
Configura tiempos de retraso de confirmación combinados
Puedes configurar diferentes tiempos de retraso de confirmación máximo en subconjuntos de tus escrituras. Si lo haces, Spanner usará el tiempo de retraso más corto configurado para el conjunto de escrituras. Sin embargo, recomendamos elegir un solo valor para la mayoría de los usos. ya que esto genera un comportamiento más predecible.
Limitaciones
Puedes configurar un tiempo de retraso de confirmación entre 0 ms y 500 ms. Configura retrasos en la confirmación mayor que 500 ms generará un error.
Establece el retraso máximo de confirmación en las solicitudes de confirmación
El parámetro de retraso de confirmación máximo forma parte del método CommitRequest
. Puedes acceder
este método con la API de RPC
API de REST,
o usar la biblioteca cliente de Cloud Spanner.
Go
Node.js
Python
Ruby
Supervisa la latencia de las solicitudes de escritura
Puedes supervisar el uso de CPU y la latencia de Spanner Consola de Google Cloud Cuando estableces un tiempo de retraso mayor para las solicitudes de escritura, Es posible que observes el uso de CPU disminuyen, mientras que la latencia aumenta. Para aprender sobre la latencia en Solicitudes de Spanner, consulta Captura y visualiza la latencia de solicitud a la API de Spanner.