google app engine - pricing - La copia de seguridad de App Engine nunca finaliza solo la pista es la falla en el mapa reduce worker_callback
google app engine flex vs standard (2)
Bueno, con la ayuda del equipo del motor de la aplicación pensamos cuál era el problema y resolvimos el problema. Quiero dar detalles en caso de que alguien más se encuentre con este problema.
Desde el número 8363, el equipo del motor de la aplicación indicó que, a partir de sus registros, podían ver que la reducción del mapa había fallado debido a la gran cantidad de propiedades que tenía nuestro tipo de entidad. El tipo de entidad específica que causaba el error tenía una gran cantidad de propiedades de variables que generaban errores cuando map reduce intentó escribir un esquema. Indicaron que la solución en su extremo era ignorar las entidades que eran así en la copia de seguridad para que la copia de seguridad funcionara correctamente.
Lo que hicimos para solucionar el problema y hacer que la copia de seguridad funcionara fue cambiar cómo le dijimos a objectify que almacenara los datos. Se creó la gran cantidad de propiedades debido a nuestro uso de la palabra clave @embedded en un campo de miembro de la clase HashMap (). Como la palabra clave incrustada divide las clases en componentes individuales, generó una gran cantidad de propiedades. Cambiamos el campo de miembro para ser @serialized y luego ejecutamos un proceso de conversión para que use la nueva propiedad serializada. Esto hizo que la copia de seguridad / restauración funcione nuevamente.
Puede leer más sobre las diferencias entre incrustado y serializado en el sitio web de Objectify
Durante las últimas semanas, hemos fallado repetidamente al hacer una copia de seguridad completa del almacén de datos utilizando la herramienta de administración del almacén de datos. Pensamos que los problemas tenían que ver con los errores de cuota con los que nos topamos, así que cambiamos nuestra aplicación de una aplicación gratuita a una de pago y todavía tenemos problemas.
Cada vez que intentamos realizar una copia de seguridad en la tienda blobstore, lo que ocurre es que el proceso nunca termina. Vemos la copia de seguridad en nuestra lista de Copias de seguridad pendientes, pero en realidad nunca termina. Solo tenemos un total de 43 MB de datos en este momento, por lo que no lo vemos como un problema de transferencia de datos. Mirando nuestras colas de tareas predeterminadas, muestra que tenemos dos tareas pendientes, una es una llamada a / _ah / mapreduce / controller_callback y otra es una llamada a / _ah / mapreduce / worker_callback
El worker_callback acumula su recuento de reintentos y la única pista de error que tenemos está en la pestaña Ejecución previa que muestra que el último código de respuesta http es 500. No hay ningún mensaje de error, no aparece nada en nuestros registros de errores, solo sigue intentándolo y otra vez
Hemos podido reducir los problemas de copia de seguridad a un tipo de entidad específica para un espacio de nombre particular, pero no podemos entender por qué ese tipo de entidad está fallando mientras que los otros no. La principal diferencia es que el tipo de entidad tiene una gran cantidad de entidades incorporadas, pero si el motor de la aplicación puede leer / poner esas entidades, no podemos entender por qué parece tener problemas para realizar una copia de seguridad. El espacio de nombre particular en el que se produce el error tiene los datos más grandes almacenados para ese tipo de entidad en comparación con los otros espacios de nombres que hemos configurado.
Creemos que si podemos ver qué error ocurre en worker_callback, podemos descubrir por qué la copia de seguridad está fallando o qué está mal con nuestros datos que está impidiendo la copia de seguridad. ¿Hay algo que necesitemos configurar / habilitar a través de configuraciones / archivos de configuración para darnos información más detallada sobre la copia de seguridad? ¿O hay algún otro camino que deberíamos explorar para descubrir cómo investigar / solucionar este problema?
Debo mencionar que estamos utilizando el SDK de Java y Objectify V3 para trabajar con el almacén de datos. También estamos respaldando datos en Blobstore.
Gracias.
snielson, ¿te importaría abrir un problema en nuestro rastreador de problemas públicos aquí ? Recuerde agregar su ID de aplicación para que podamos seguir depurando este escenario específico.
¡Gracias!