Filtrar e páginar a grade na base de dados, lotear a pista de auditoria PHI

Performancekamo-shared-library
Navios
20 de agosto de 2026 às 23:34 UTC
Autor
Kamo
Enviar
8b4f5a2

Carregar /leaders levou 23,3 s em 1.427 leads. 23,3 s destes foram os HIPAA trilha de auditoria: recordLeadList escreve uma linha phi access log por lead retornou, e cada um cometeu sua própria transação. Medida em produção 16,36 ms/linha, 5.708 linhas em 93 s através de quatro cargas. O SELECT era 29,6 ms e ix leads org id estava sendo usado — o caminho lido nunca foi O problema. Duas causas independentes, ambas aqui. A trilha de auditoria escreveu uma transação por linha. phi access log carrega três índices secundários, então em Yugabyte uma única linha de inserção é quatro escreve através de tablets e, portanto, uma transação distribuída. PhiAccessLogWriter ganha writeAll e JpaPhiAccessLogWriter implementa-lo como um salvarTodos, que SimpleJpaRepository executa em uma única transação: medido 0,49 ms/linha, ~33x. AssyncPhiAccessLogWriter então pega os tipos de falhas abertas fora da linha de solicitação inteiramente. Tipos fechados por defeito (exportação, download, divulgar, configurar) ainda escrever síncrono com a exceção intacta, assim eles ainda podem recusar a leitura; a fila nunca deixa cair um registro — um a fila saturada escreve em linha. A granularidade é inalterada: cada chumbo mostrado ainda recebe sua própria linha. O endpoint devolveu toda a organização e deixou o filtro do navegador Por conseguinte, o volume de auditoria foi proporcional ao tamanho do locatário em vez de O que foi revelado. LeadGridQuery + LeadGridAs especificações movem cada filtrar na consulta e LeadService.getLeadGridPage retorna uma página de a linha magra DTO, projetada dentro da transação para que o endpoint mantenha Nenhuma entidade depois disso. Uma especificação em vez de guarda-nulas JPQL em finalidade: ':p IS NULL OR col =:p' pára o planejador usando o novo índices compostos. Subqueries em vez de treat()/type() para a hipoteca subclasse, porque a biblioteca constrói em Hibernate 6.5 e SecurityService roda 6.2.13. O chumbo ganha quatro índices compostos, cada um liderando com ORG ID assim Yugabyte ainda hash-partições sobre o inquilino: atribuição, mercado, status e Data criada. Sem eles, a filtragem do lado do servidor mudaria a verificação Em vez de removê-lo. Além disso: o telefone reverso do softphone não hidrata mais o todo organização para comparar números em Java. Também adiciona findBatchAfterUid: uma varredura de chaves para back-office passa que devem visitar todas as pistas. findAll(Pageable) não pode ser usado para isso em Yugabyte — Primavera Os dados emparelham seu conteúdo SELECT with a COunt in one transação, e um passe que escreve entre páginas, em seguida, viaja uma leitura reiniciar a camada de consulta não pode repetir.

Todas as alterações

Como o que vês no transporte?

Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.

Começar Livre Para SempreVer Preços