- Expédié
- 23 septembre 2026 à 14:40 UTC
- Auteur
- Kamo
- Commit
- 1f715e4
DDL: **************** (colonne + indice partiellement production déjà) et ************* (une fois de rattrapage, déjà courir — 19 373 lignes, toutes débarquées sur leur compte réel). ************* **** maintenant garde commit logs. égal à COUNT(*) DE commit log translations pour cette ligne, dans la même transaction REQUIRES NEW que chaque local écrire: +1 pour une locale vraiment nouvelle, inchangé pour une ré-save d'un déjà là (un réessayer ou un ré-trigger de la règle d'assainissement supprime-alors-réinsère la même localité — zéro net). Enveloppé dans @RetryOnDbConflict, correspondant à la convention de cette base de code pour un écrit qui est rare overlap simultanée (la traduction initiale post-engagement toujours en vol lorsque la 5 minutes réessayer balai prend également la même ligne encore incomplète) pourrait 40001. - Oui. lit ce compteur avec un simple indexé OÙ ************* **** au lieu du groupe par .. commit logs LEFT JOIN commit log traductions toutes les 5 minutes — mesurées en production: ~14K appelle à ~750ms (une analyse complète de la table de traductions ~406K-row), vérifiée via EXPLAIN ANALYZE avant le câblage ceci dans: 751ms -> 19,6ms (Index Only Scan, Heap Fetches: 0) pour la même cas de résultat vide. Une réécriture corrélée de la sous-requête par ligne a d'abord été essayée et rejetée : EXPLAIN ANALYZE sur la production l'a montré à 13.9s, ~18x WORSE que le coût original — YugabyteDB per-RPC pour beaucoup de petites recherches corrélées domine, c'est pourquoi c'est une colonne maintenue, pas un plus intelligent.
