Open patymori opened 4 years ago
A nova DAG fará a sincronização por bundle, mantendo a ordem de todos os pacotes relacionados, para garantir que não haja regressão nos dados sincronizados com o Kernel. Dessa forma, também se torna possível efetuar a sincronização dos bundles de forma paralela.
A navegação da DAG ficaria dessa forma:
sync_documents
Responsável por iniciar a sincronização para cada bundlesync_documents_to_kernel
sync_documents_to_kernel
, impossibilitando a reexecução da sincronização de pacotes que já ocorreram, propõe-se manté-la e criar uma nova que efetue a nova forma de sincronização dos pacotes.@patymori não estou identificando nenhum problema nesta proposta. Então, acho que pode seguir.
@patymori eu gostei da sua proposta de solução. Você avaliou outras formas de implementação que pudessem manter a compatibilidade entre execuções e também entre o nosso ecossistema de monitoramento?
Conversando com @joffilyfe e @jamilatta, uma outra abordagem foi apresentada: mais simples e sem quebra de compatibilidade com as integrações. As DAGs existentes seriam preservadas e a mudança para a sincronização seria na estrutura dos dados no XCom
, fazendo com que a DAG sync_documentos_to_kernel
passe a fazer a sincronização de n
pacotes para um mesmo bundle, e que cada uma das tarefas seria adaptada para lidar com esta estrutura, mantendo a ordem da sincronização dos pacotes como hoje.
As estruturas de dados pensadas ficariam desta forma:
sps_packages = [
{"rba-v1n1": ["rba-1-1-1.zip", "rba-1-1-2.zip", "rba-1-1-3.zip"]},
{"rba-v1n2": ["rba-1-2-1.zip", "rba-1-2-2.zip"]},
{"bjb-v1n1": ["bjb-1-1-1.zip", "bjb-1-1-2.zip", "bjb-1-1-3.zip", "bjb-1-1-4.zip"]}
{"bjb-v1n2": ["bjb-1-2-1.zip"]}
]
xmls_to_preserve = [
{"rba-1-1-1.zip": ["document-1.xml", "document-2.xml"]},
{"rba-1-1-2.zip": ["document-2.xml"]},
{"rba-1-1-3.zip": ["document-1.xml", "document-2.xml", "document-3.xml"]}
]
Vantagem:
Desvantagens:
Vantagens da primeira proposta:
Desvantagens:
Por favor, verifiquem se não esqueci de mais nada.
@patymori eu acho que você pode seguir com a proposta. Talvez nós só tenhamos que alterar a URL no grafana para que a abertura da DAG funcione.
@patymori eu acho que você pode seguir com a proposta. Talvez nós só tenhamos que alterar a URL no grafana para que a abertura da DAG funcione.
@joffilyfe e sobre a quebra de compatibilidade com as sincronizações anteriores? Acha que as vantagens da proposta são maiores do que a desvantagem de ter que manter as DAGs atuais?
@patymori eu acho que você pode seguir com a proposta. Talvez nós só tenhamos que alterar a URL no grafana para que a abertura da DAG funcione.
@joffilyfe e sobre a quebra de compatibilidade com as sincronizações anteriores? Acha que as vantagens da proposta são maiores do que a desvantagem de ter que manter as DAGs atuais?
Nós só precisaríamos manter a dag atual por algum tempo, nós temos pouco mais de um dois meses de processamento, nem é algo tão relevante assim. Portanto eu acho que as vantagens são maiores sim.
@patymori e @joffilyfe concordo com a solução e acho que ficou mais fácil a implementação
Mas em caso de falha no processamento de alguns dos XMLs toda a DAG falhará?
@patymori e @joffilyfe concordo com a solução e acho que ficou mais fácil a implementação
Mas em caso de falha no processamento de alguns dos XMLs toda a DAG falhará?
@jamilatta, não sei se entendi qual das soluções você concorda. Pode deixar explícito se é a primeira ou a segunda proposta?
O tratamento para a falha na sincronização dos documentos de um pacote continuaria da mesma forma que agora, isso não seria alterado.
@patymori
Irei ler novamente para te dá um parecer mais elaborado!
Criação de novas DAGs de sincronização:
Permanência das DAGs existentes para manter as sincronizações já realizadas
Alteração da DAG sync_isis_to_kernel
para envio do Gerapadrao ID via trigger para a DAG de coleta dos pacotes SPS
Similar à pre_sync_documents_to_kernel
, com a diferença de que organiza os pacotes por bundles e inicia DAGs para a extração das informações por bundles com os respectivos pacotes
Armazena as informações de todos os documentos necessárias para fazer a leitura nos pacotes, mantendo a ordenação dos pacotes, e a sincronização com o Kernel e Minio. Uma informação adicional é a operação a ser realizada: deleção ou registro/atualização.
Responsável por deletar ou carregar os documentos no Kernel e no MinIO através dos dados extraídos e por documento. Realizará a operação identificada no XML e a atualização no bundle.
Descrição da nova funcionalidade
Eu, como Operador da nova plataforma SPF, gostaria que a execução e reexecução de sincronização de um fascículo para o Kernel com todos os pacotes SPS daquele processamento, então será possível garantir a execução e reexecução da sincronização de todos os pacotes do fascículo, caso haja falhas.
Critérios de aceitação
Anexos
n/a
Referências
.