[SQL Processing] Otimização na validação de jobs em execução da task de processamento SQL
Description
Texto padrão para issuetype Story conforme DoR (Definition of Ready)
01 - STAKEHOLDER (Pessoa que pode validar e responder questões):
@Cindy de Araujo Soares Moore
02 - PROBLEMA (Qual o cenário ou dor a ser resolvida):
A task de SQL processing cria 4 jobs durante sua execução de forma sequencial. O shouldDeallocateStale
() verifica 4 jobs na GCP (PROCESS_JOB_ID
, COPY_JOB_ID
, CLEAR_JOB_ID
e DATAFLOW_JOB_ID
), 3 deles jobs do BigQuery e o quarto é um job do Dataflow.
Os 3 jobs são verificados sempre, equanto que um OR poderia ser aplicado de trás pra frente na ordem de execução dos jobs. Ou seja, se o último job. a executar não existir, aí se verifica o anti penúltimo, senão verificar o anterior e assim por diante. Além disso só se leva em consideração o status RUNNING desses jobs, e deveríamos olhar pra PENDING também.
O job do Dataflow é verificado após verificar todos os outros 3 jobs do BigQuery. Seria mais rápido verificar se já chegou no estágio do Dataflow (já que é a última etapa).
O valor da flag useDataflow
não é consultado para se fazer a busca do job no Dataflow. Não tem porque consultar a GCP caso useDataflow=false.
A flag clearBigQuery
também não é consultada. Só teremos um CLEAR_JOB_ID
caso a flag tenha valor true.
03 - OBJETIVO (Descreva a solução proposta):
Evitar verificação de status de jobs a mais e otimizar o tempo de execução do método BigQueryProcessTaskProcessor
,shouldDeallocateStale()
04 - QUEM PODE USAR (Quais perfis de usuários):
05 - ASSETS (Links do Figma, documentos relevantes, Json, etc):
06 - CRITÉRIOS DE ACEITE:
- Verificar
useDataflow
antes de buscar job na GCP. - Verificar os jobs na seguinte ordem e só verificar o próximo caso a resposta de job running é false:
DATAFLOW_JOB_ID
(quandouseDataflow=true
),PROCESS_JOB_ID
CLEAR_JOB_ID
(quandoclearBigQuery=true
) eCOPY_JOB_ID
.- Obs: Validar essa ordem no código
- Verificar Dataflow apenas 1 vez (e apenas se
useDataflow=true
).
@Cindy de Araujo Soares Moore ,
@Rodrigo Bechtold , @Cindy de Araujo Soares Moore
Este issue foi planejada para ser entregue até 2024-10-18. Você pode confirmar consultando o campo Due Date desta issue.
Data já planejadas para esta issue: 2024-10-18
Se o campo External Issue Link estiver preenchido com o link de uma issue válida no Jira Produção o cliente também será notificado no Jira Produção.