Sesgo de estado - Managed Service para Apache Flink

Amazon Managed Service para Apache Flink Amazon se denominaba anteriormente Amazon Kinesis Data Analytics para Apache Flink.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Sesgo de estado

En el caso de los operadores con estado, es decir, los operadores que mantienen el estado para su lógica empresarial, como ventanas, el sesgo de datos siempre conduce a un sesgo de estado. Algunas subtareas reciben más eventos que otras debido al sesgo de datos y, por lo tanto, también mantienen más datos en estado. Sin embargo, incluso en el caso de una aplicación que tenga particiones equilibradas de manera uniforme, puede haber un sesgo en la cantidad de datos que se conservan en el estado. Por ejemplo, en el caso de las ventanas de sesión, algunos usuarios y sesiones, respectivamente, pueden durar mucho más que otros. Si las sesiones más largas forman parte de la misma partición, se puede producir un desequilibrio en el tamaño del estado que mantienen las distintas subtareas del mismo operador.

El sesgo de estado no solo aumenta los recursos de memoria y disco que requieren las subtareas individuales, sino que también puede disminuir el rendimiento general de la aplicación. Cuando una aplicación toma un punto de control o un punto de guardado, el estado del operador se mantiene en Amazon S3, para proteger el estado contra errores de nodos o clústeres. Durante este proceso (especialmente con la semántica exactamente una vez, que está habilitada de forma predeterminada en Managed Service para Apache Flink), el procesamiento se detiene desde una perspectiva externa hasta que se complete el punto de control o el punto de guardado. Si hay un sesgo de datos, el tiempo necesario para completar la operación puede estar limitado por una sola subtarea que haya acumulado una cantidad de estado particularmente alta. En casos extremos, la captura de puntos de control o puntos de almacenamiento puede fallar debido a que una sola subtarea no puede mantener su estado.

De forma similar al sesgo de datos, el sesgo de estado puede ralentizar considerablemente una aplicación.

Para identificar el sesgo de estado, puede aprovechar el panel de control de Flink. Busque un punto de control o un punto de guardado reciente y compare en los detalles la cantidad de datos que se han almacenado para cada subtarea.