- Navios
- 23 de setembro de 2026 às 13:37 UTC
- Autor
- Kamo
- Enviar
- cf061b2
os endpoints públicos de KB do kbservice e sua varredura de tradução-retry ambos perguntaram KbArtTranslationRepositório uma linha de cada vez. Produção pg stat statements mostrou dois custos muito diferentes: - findRealTranslationLocales (novo): faz a pesquisa do mapa do site/hreflang que conta uma tradução real das linhas Inglês-fallback do TranslateService (uma linha pode manter o inglês sob uma chave local quando não existe provedor para por essa direcção). Este cluster planeja com a heurística legado do YugabyteDB modelo (sem estatísticas otimizadoras) e escolheu um Nested Loop para o JPQL juntando kb article translations para kb articles: uma pesquisa de índice para o uid list, em seguida, uma pesquisa de índice de linha única separada em kb articles para cada uma dessas linhas — 6.468 RPC de armazenamento para uma orgagem de 308 artigos, 11,9 s, juntar duas tabelas que se encaixam na memória (~6.000 chamadas em ~11 s cada em produção). SQL nativo com uma dica de HashJoin pg hint plan pinos a junta em vez (mesma técnica como **************************** Verificado com EXPLAIN em produção: 11,9 s -> 0,2 s, estável abaixo plan cache mode = force generic plan (a forma do servidor JDBC prepara-se realmente para baixo). - contagemGroupedByArticleUid (novo): a varredura de tradução-reteste de dez minutos perguntada contagemPor Artigo Uid uma vez por artigo publicado para encontrar quais ainda precisam de locais — 1.7M chamadas em produção, cada sub-millisegundo Sozinho. Uma contagem agrupada sobre todo o lote é a mesma resposta; um uid ausente do resultado tem zero linhas. kbservice fios ambos em (commit separado, seu próprio repo).
