KamoCRM

Piombo disponibili e bilancia di credito leggere un libro principale invece di contare righe

Performancekamo-shared-library
Spegnimento
23 settembre 2026 alle ore 01:27 UTC
Autore
Kamo
Impegno
ae437eb

"Leads available" era COUNT(*) sopra la piscina assegnabile, e una piscina di org tiene ~796k conduce: ~7.8 s per (mercato, prodotto) e ~11 s per il gruppo (misurato 2026-09-17). Gestione dei costi ha eseguito il singolo conteggio una volta per riga di allotment, Piombo-Available una volta per prodotto, e ogni Accetta eseguito un altro solo per trasmettere la nuova figura. Le bilance di credito erano la stessa forma su lead credits, che mantiene ogni credito speso per sempre. Entrambe le cifre provengono da totali mantenuti: lead pool counts / lead credit balances plus an append-only journal of deltas that righe triggers on lead / lead credits scrivere nella stessa transazione come il cambiamento (securityservice create lead ledgers.sql, applicato 2026-09-22). Una somma di lettura totale + diario in una dichiarazione, quindi è esatto, e Hibernate vampate in sospeso scrive prima di una query nativa, così una transazione vede le proprie menti e spende. I metodi del repository tengono i loro nomi, così ogni chiamante in ogni servizio si muove con questa libreria. DaemonService piega la rivista ogni 30 s e racconta di notte, applicando una correzione per qualsiasi deriva. Anche: - The Accept pick (findAssignablePool) leggere e ordinare l'intera piscina del prodotto: 9.5 s per Accept. Ora si trovaAssignablePoolUids, pinned con un suggerimento pg hint plan al nuovo indice parziale ix leads assignable pool, perché il pianificatore legacy di questo cluster preferisce ix leads org market e Piu' o meno. 9,470 ms -> 4 ms sulla piscina live; la sonda di esistenza (sampleAssignablePoolUids) allo stesso modo, e un prodotto vuoto non costa più una scansione del suo intero mercato. - Batch legge per le griglie: E' il momento giusto. (ogni fila di equilibrio in una sola lettura), trovareSpentCreditsInRange (ogni membro spende fin dalla prima mezzanotte locale), ContoAcceptedSinceByProduct, e... findApplicableAllotments per risolvere molti (mercato, prodotto) coppie da un elenco. Test: LeadLedgerQueryShapeTest pins the ledger reads, the non-negative clamp, the bigint casts and l'indicatore dell'indice; LeadAllotmentMostSpecificOfTest indica il risolutore alle regole della query. Il grilletto DDL, ogni lettura, la piega e il racconto sono stati riprodotti contro YugabyteDB (temp table, 60 assegni). Suite completa: 3012 test, 5 guasti esattamente come su a6374937 (StorageDomainCoverage, StorageDomainAssociationLookup, ReportVisibility, PhiServiceTypeMapping, SystemBugCountContract).

Tutte le modifiche

Come quello che vedi la spedizione?

Tutto questo arriva nel vostro spazio di lavoro da solo. Iniziare sul piano gratuito e leggere di nuovo questa pagina in un mese.

Inizia gratis per sempreVisualizza il prezzo