Árvore de páginas

01. DADOS GERAIS

Produto:

TOTVS CRM Gestão de Clientes

Linha de Produto:

TOTVS CRM

Segmento:

Cross Segmentos

Módulo:Contas
Função:
País:Brasil
Ticket:
Requisito/Story/Issue (informe o requisito relacionado) :

DTCRMSD-828 - Obtendo detalhes do item... STATUS


02. SITUAÇÃO/REQUISITO

Quando ocorrem atualizações de compartilhamento e reprocessamento de regras de visibilidade, dependendo da quantidade de registros modificados, nota-se um consumo excessivo de recursos de banco de dados e aumento no tempo de resposta de requisições. Isso se dá decorrente do processo de atualização do updatedAt dos registros na base do cliente. Esse processo ocorre de maneira sincrona a fim de disponibilizar para o mobile os registros que sofreram alterações de acesso, e para tanto, como é um processo ostensivo, além de impactar a performance da operação, leva a também fragmentar as tabelas desnecessariamente no banco de dados.

03. SOLUÇÃO

A solução para resolver o problema mecionado acima foi retardar a execução dos updatedAts, realizando os mesmos de maneira isolada, num fluxo a parte, não sincrono com a requisição, eliminando operações repetidas.

  • Foi disponibilizado um esquema compartilhado que registra todas as inteções de atualização de updatedAt em todos os tenants ao invés de aplicá-las diretamente na base.
  • A cada 10 minutos um scheduler lê essa tabela, processa todos as intenções de atualização realizadas no intervalo, e confirma todas as atualizações de updatedAts.
  • Ações repetidas são processadas apenas uma vez e compartilhamentos mais permissivos desativam atualizações mais restritivas, garantindo assim o menor número de atualizações seja realizada.
  • Qualquer fluxo que altere / edite regras de compartilhamento passam a realizar a atualização do updatedAt tardia com a disponibilização desse fluxo.

04. DEMAIS INFORMAÇÕES

  • O mecanismo é configurável por variável de ambiente, podendo ser ativado / desativado dinâmicamente.
  • A partir desse fluxo os registros disponibilizados para o mobile ao passo que uma regra é alterada levam um ciclo de atualização para serem efetivamente disponibilizados para sincronização.
  • Foi disponibilizado essa alteração na biblioteca do forseti-client podendo ela ser disponibilizada em outro serviço conforme interesse.
  • A configuração parametrizável do tempo entre cada ciclo de checagem / efetivação da alteração do updatedAt já foi realizada e estará sendo entregue nas próximas releases.

05. ASSUNTOS RELACIONADOS

Não há.


  • Sem rótulos