KamoCRM

Mantenere commit logs.translation count a tempo di scrittura

PerformanceSecurityService
Shipped
23 settembre 2026 alle ore 14:40 UTC
Author
Kamo
Commit
1f715e4

DlDl: (colonna + indice parziale, applicato a La produzione e' gia' stata fatta. (un tempo di cattura, già correre) 19.373 file, tutti atterrati sul loro vero conteggio). ****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** pari a COUNT(*) DA commit log translations per tale riga, nella stessa transazione REQUIRES NEW come ogni scrittura locale: +1 per un locale genuinamente nuovo, immutato per una riscoperta di uno già lì (una riprovazione o un re-trigger di sanificazione-rule cancella-allora-reinserisce lo stesso locale — netto zero). Avvolto in @RetryOnDbConflict, corrispondente a questa convenzione di codebase per una scrittura che un raro concurrent-overlap (la traduzione iniziale post-commit ancora in volo quando il 5 minuti di retry spazzare anche raccoglie la stessa riga ancora incompleto) potrebbe 40001. Non e' vero. legge quel contatore con una pianura indicizzata DOVE # Al posto del GRUPPO # commit logs LEFT JOIN commit log translations ha eseguito ogni 5 minuti — misurato in produzione: ~14K chiama a ~750ms (una scansione completa della tabella delle traduzioni ~406K-row), verificata tramite EXPLAIN ANALIZZAZIONE prima del cablaggio in: 751ms -> 19.6ms (Index Only Scan, Heap Fetches: 0) per lo stesso Caso vuoto-risultato. Una riscrittura correlata della subquery per-row è stata prima provata e respinta: EXPLAIN ANALYZE sulla produzione lo ha mostrato a 13.9s, ~18x WORSE rispetto all'originale — il costo per-RPC di YugabyteDB per molte piccole ricerche correlate domina, motivo per cui questa è una colonna mantenuta, non una Unisciti più intelligente.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing