- Se descapó
- 23 de septiembre de 2026 a las 13:37 UTC
- Autor
- Kamo
- Compromit
- cf061b2
Los endpoints de KB públicos de kbservice y su barrido de retorno de traducción ambos preguntados KbArticleTranslationRepository una fila a la vez. Producción's Los desarticulaciones mostraron dos costos muy diferentes de eso: - findRealTranslationLocales (nuevo): respalda el mapa del sitio/hreflang lookup que le dice una traducción real de las filas de travesuras inglesas de TranslateService (una fila puede tener el inglés bajo una clave local cuando no existe ningún proveedor para en esa dirección). Este clúster planea con el legado heurístico de YugabyteDB modelo (sin estadísticas optimizativas) y eligió un bucle de Nested para el JPQL unión de kb-article-translations a kb-articles: un escaneo índice para la uid list, entonces una búsqueda separada del índice de una sola fila en kb-articles para cada una de esas filas 6.468 RPC de almacenamiento para un org 308 artículos, 11.9 s, para unir dos mesas que encajen en la memoria (6.000 llamadas en 11 s cada uno en producción). SQL nativo con una pista de HashJoin de pg.hint-plan pins la unión en su lugar (la misma técnica que ******************* Verificado con EXPLAIN on producción: 11.9 s - 0,2 s, estable bajo plan.cache.mode = force.generic-plan (la forma del lado servidor de JDBC se prepara realmente corrido bajo). - countGroupedByArticleUid (nuevo): el barrido de diez minutos de traducción-retry preguntados condeByArticle-Uid una vez por artículo publicado para encontrar cuáles todavía necesita locales de 1.7M llamadas en la producción, cada submililosseo de 2 miligrosas solo. Un COUNT agrupado en todo el lote es la misma respuesta; un uid ausente del resultado tiene cero filas. Alambres de kbservice ambos en (separate commit, su propio repo).
