Introducción
Se busca desarrollar un programa
que ejecute una gran carga de registros de manera paralela de una manera
eficiente y eficaz.
Problema
Realizando las pruebas y mejoras
de performance a los programas que usan procesos paralelos se pudo determinar:
1. Se
ejecutaba un hilo por cada registro.
2. Si
había gran cantidad de registros se colapsa la memoria RAM.
3. Al
momento de colapsar la memoria, empezaban a fallar las llamadas a la función
paralelo ocasionando perdida de registros a procesar, sin que se pudieran
recuperar y mucho menos saber cuáles registros fallaron.
Desarrollo de la Solución
Teniendo en cuenta los problemas expuestos anteriormente se fue
implementando una solución al mismo:
Usado conocimientos:
1.
Procesos paralelos que usan Modulo de Funciones
con la funcionalidad :
- “STARTING NEW TASK gv_taskname ”.
PPF (Parallel Procesing Framework).
Antes de explicar cada uno a profundad se van a explicar
algunos conceptos básicos.
Rangos: porción de registros
tomados de un universo de registros mayor.
Jobs/tarea: procesos que se
ejecutan un rango especifico de manera paralela, es decir se puede procesar más
2 al mismo tiempo.
Implementando la primera
Se pudo verificar que el proceso paralelo al momento de
colapsar la memoria la llamada a la función paralela fallaba perdiendo registros
hasta que se liberará otro proceso y dar oportunidad se ejecutar a los
siguientes.
Implementando la segunda
1.
Cantidad de procesos paralelos finita
(Jobs/tareas).
2.
La carga de registros (Rangos) se divide en entre
los procesos paralelos asignados o calculados .
Mezclando ambas
Implementando la información de cada uno de estas vertientes
se pudo implementar:
1.
En caso de falla en la llamada al proceso
paralelo se puede saber cual rango de registros (Tarea) fallo.
2.
Se pueden re-procesar las tareas que fallaron.
E En esta entrada se explico de manera general los problemas a los que nos hemos enfrentado al iniciar en el mundo de los procesos paralelos abap que estoy seguro que ya les han sucedido, en mi próxima entrada iré explicando mas a fondo cada uno de estos aspectos...
Mayor información
Mayor información
No hay comentarios.:
Publicar un comentario