En esta lista de tareas de lanzamiento, se ofrece una lista de consideraciones que deben realizarse antes del lanzamiento de una aplicación de producción en Spanner. No tiene como objetivo ser exhaustivo, pero sirve para destacar áreas que pueden tener un gran impacto en el rendimiento de la producción.
Elige una configuración de instancias adecuada
Elige una configuración de instancia (regional o multirregional) que coincida con tus requisitos.
Si eliges tipos de instancias multirregionales, la aplicación que accede a Spanner debe estar cerca de la región líder. Puedes encontrar más detalles en la página de instances.
Diseña tu esquema para el rendimiento a gran escala
El esquema de datos relacionales de Spanner es similar a las bases de datos relacionales tradicionales, con algunas excepciones que se deben considerar:
- Usa Tablas intercaladas en lugar de clave externa relaciones cuando corresponda.
- Elige una clave primaria que evite los hotspots.
- Asegúrate de que los índices secundarios no creen hotspots (similares a los hotspots de claves primarias).
- Crea índices secundarios y almacena columnas relacionadas si es necesario.
- Limita el tamaño de la fila.
Comprende los factores de rendimiento
Cuanto más orientada sea una consulta, con la fragmentación automática y los datos posteriormente almacenados en divisiones, más eficaz será. Reducirse a un solo elemento superior intercalado y a todos sus elementos secundarios funcionarán mejor que las consultas o las operaciones que afectan a varias filas.
Te recomendamos realizar comparativas y pruebas a gran escala para garantizar que los problemas y cuellos de botella se descubran antes del lanzamiento. Spanner proporciona planes de ejecución de consultas que se pueden usar con tablas durante el diseño de esquemas para comprender el rendimiento de las consultas.
Otros factores de rendimiento para tener en cuenta son los siguientes:
- Prefiere las transacciones de solo lectura en lugar de las transacciones de lectura y escritura más costosas cuando no escribes datos.
- Diseña tu aplicación para minimizar la cantidad de participantes divididos en una transacción. Spanner puede realizar transacciones entre filas en servidores diferentes. Sin embargo, como regla general, las transacciones que afectan muchas filas en la misma ubicación son más rápidas y económicas que las que afectan muchas filas dispersas en la base de datos o en una tabla grande.
- Usa parámetros de búsqueda en lugar de literales de string para mejorar el rendimiento de las búsquedas y la supervisión de estadísticas.
Comprende los límites y las cuotas
Por razones de arquitectura y para mantener su alto rendimiento y redundancia, Spanner tiene determinadas cuotas y límites que se deben considerar en el diseño de la aplicación. Las cuotas se pueden aumentar con un plazo de entrega.
Por ejemplo, hay un límite de 80,000 mutaciones por confirmación y un máximo de 15 uniones por consulta.
Estos límites, junto con el diseño de esquemas y la prevención de hotspots, afectan la carga masiva, así que asegúrate de seguir las prácticas recomendadas de cargas masivas.
Asegúrate de que la supervisión esté implementada
Configura Cloud Monitoring para recibir alertas cuando alcances tus límites.
Aumenta la capacidad de procesamiento si alcanzas las métricas de rendimiento. para el escalamiento lineal de las instancias de Spanner. Te recomendamos que mantengas Uso de CPU inferior al 65% para regiones específicas y por debajo del 45% para aplicaciones multirregionales individuales.
Usa Plantillas de consulta en la página Consulta de una base de datos para supervisar las estadísticas en las tablas de estadísticas de consultas.
Ten una estrategia de migración de datos (si es necesaria)
En la carga masiva de datos en Spanner, se debe tener en cuenta la arquitectura distribuida para mantener el rendimiento:
- Partición de datos según la clave primaria
- Evita que haya rechazos y supervisa el uso de la CPU
- Por lo general, es más rápido crear índices secundarios después de cargar los datos
Esta entrada de blog es un buen ejemplo de cómo implementar escrituras de alta capacidad de procesamiento.
Asegúrate de que la configuración de seguridad esté implementada
Configura funciones de IAM relevantes para administrar la seguridad a nivel de base de datos y de instancia. La seguridad a nivel de tabla debe administrarse dentro de la aplicación.
Comprende las opciones de asistencia
Asegúrate de contar con una estrategia para obtener asistencia.