Cómo resolver problemas de latencia

En esta página, se muestra cómo resolver problemas de latencia con Firestore.

Latencia

En la siguiente tabla, se describen las posibles causas del aumento de latencia:

Causa de la latencia Tipos de operaciones afectadas Solución
Tráfico continuo que excede la regla de 500-50-5. lectura y escritura

Para aumentos de tráfico rápidos, Firestore intenta escalar de forma automática para satisfacer la demanda creciente. Cuando Firestore escala, la latencia comienza a disminuir.

Los hotspots (tasas altas de lectura, escritura y eliminación en un rango pequeño de documentos) limitan la capacidad de Firestore para escalar. Revisa el diseño de la escala y, también, identifica los hotspots en tu aplicación.

Contención, ya sea desde la actualización de un solo documento con demasiada frecuencia o desde transacciones. lectura y escritura

Reduce la tasa de escritura de documentos individuales.

Revisa la contención de datos en las transacciones y cómo usas las transacciones.

Consultas de combinación lentas. read Por ejemplo, las consultas con varios filtros de igualdad (==), pero sin el respaldo de índices compuestos, pueden dar como resultado consultas de unión lentas. Si deseas mejorar el rendimiento, agrega índices compuestos para estas consultas. Consulta el motivo 3 en ¿Por qué mi consulta de Firestore es lenta?
Operaciones de lectura grandes que muestran muchos documentos. read Usa la paginación para dividir las lecturas grandes.
Demasiadas eliminaciones recientes. read
Esto afecta en gran medida las operaciones que enumeran colecciones en una base de datos.
Si la latencia se debe a demasiadas eliminaciones recientes, el problema debería resolverse de forma automática después de un tiempo. Si el problema no se resuelve, comunícate con el equipo de asistencia.
Agregar y quitar objetos de escucha con demasiada rapidez. consultas de objetos de escucha en tiempo real Consulta las recomendaciones para las actualizaciones en tiempo real.
Escucha documentos grandes o una consulta con muchos resultados. consultas de objetos de escucha en tiempo real Consulta las prácticas recomendadas para las actualizaciones en tiempo real.
Distribución de índices, especialmente para campos de arreglo y campos de mapa. write Revisa el uso de campos de arreglo y de mapa. Para los campos de mapa, puedes inhabilitar los subcampos de la indexación. También puedes usar las exenciones de nivel de colección.
Escrituras grandes y escrituras en lotes. write

Intenta reducir la cantidad de operaciones de escritura en cada escritura en lotes. Las escrituras en lotes son atómicas, y muchas escrituras en un solo lote pueden aumentar la latencia y la contención. Por ejemplo, un lote de 10 escrituras funciona mejor que un lote de 500 escrituras.

Para la entrada masiva de datos en la que no necesitas atomicidad, usa una biblioteca cliente del servidor con escrituras individuales en paralelo. Las escrituras en lotes funcionan mejor que las escrituras en serie, pero no mejor que las escrituras paralelas.