[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.

Captura de Tela 2024-05-15 às 15.24.32.png

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).

Captura de Tela 2024-05-15 às 16.02.10.png

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 (quando useDataflow=true), PROCESS_JOB_ID CLEAR_JOB_ID(quando clearBigQuery=true) e COPY_JOB_ID.
    • Obs: Validar essa ordem no código
  • Verificar Dataflow apenas 1 vez (e apenas se useDataflow=true).

Activity

Automation for Jira 27 September 2024, 19:29 Jira Internal Users

@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.