KamoCRM

Deux recherches de traduction par lots que le planificateur faisait mal par ligne

Performancekamo-shared-library
Expédié
23 septembre 2026 à 13:37 UTC
Auteur
Kamo
Commit
cf061b2

les critères d'évaluations publiques de kbservice KB et son balayage de traduction-réaction à la fois KbArticleTranslationRepository une ligne à la fois. Production Les états de pg-stat ont montré deux coûts très différents de ceux-ci: - findRealTranslationLocales (nouveau): retourne la recherche sitemap/hreflang que indique une traduction réelle des lignes de rétrocession en anglais de TranslateService (une ligne peut maintenir l'anglais sous une clé locale lorsqu'il n'y a pas de fournisseur pour cette direction). Ce groupement planifie avec l'héritage heuristique de YugabyteDB modèle (pas de statistiques d'optimisation) et choisi une boucle cachée pour le JPQL joindre de kb-élément-traductions en kb-articles: un balayage index pour le uid list, puis un indice de ligne unique séparé en kb-articles pour chacune de ces lignes - 6 468 RPC de stockage pour un org de 308 articles, 11.9 s, pour joindre deux tables qui s'inscrivent ensemble en mémoire (6 000 dollars d'appels à 11 s chacun de la production). SQL natif avec un indice de HashJoin fourmille la jonction à la place (même technique que :: Vérifié avec EXPLAIN sur production: 11,9 s - 0,2 s, stable sous plan-cache-mode-force-generic-plan (forme du serveur de la forme JDBC côté serveur se prépare effectivement. - countGroupedByArticleUid (nouveau): le balayage de la traduction en dix minutes demandant à compterPar article - Utilisé une fois par article publié pour trouver ceux-ci Il a encore besoin d'appels locaux et 1,7 million d'appels en production, chaque sous-milliseconde seul. Un groupement groupé sur l'ensemble du lot est la même réponse; un uid l'absence du résultat comporte des lignes nulles. kbservice les deux dans (engagement séparé, son propre repo).

Tous les changements

Comme ce que vous voyez l'expédition?

Commencez avec le plan gratuit et lisez à nouveau cette page dans un mois, puis passez à l’abonnement payant pour bénéficier de toutes les fonctionnalités.

Commencez gratuitement pour toujoursVoir la tarification