KamoCRM

Leads verfügbar und Guthaben lesen ein Ledger statt Zählreihen

Performancekamo-shared-library
Verschifft
23. September 2026 um 01:27 UTC
Autor
Kamo
Ausschuss
ae437eb

"Leads available" war COUNT(*) über den zuweisenden Pool, und der Pool einer org hält 796k Leads: 7,8 s pro (Markt, Produkt) und 11 s für die gruppierte (geerstanden 2026-09-17). Manage-Credits lief die einzelne Zählung einmal pro Zuteilungsreihe, Leads-Verfügbarkeit einmal pro Produkt, und jeder Accept lief eine andere nur, um die neue Figur zu senden. Kreditguthaben waren die gleiche Form auf Lead_ Credits, die hält jeden ausgegebenen Kredit für immer. Beide Zahlen stammen nun aus gewarteten Summen: lead_pool_counts / lead_credit_balances plus an append-only journal von deltas, die Zeile löst auf Lead / lead_credits schreiben in der gleichen Transaktion als Änderung (securityservice create_lead_ledgers.sql, angewendet 2026-09-22). Eine Lekulation Summen + Journal in einer Erklärung, so ist es genau, und Hibernate Flushes anhängig schreibt vor einer nativen Abfrage, so eine Transaktion sieht seine eigenen Minzen und Ausgaben. Die Repository-Methoden behalten ihre Namen, so dass jeder Anrufer in jedem Dienst wechselt mit dieser Bibliothek. DaemonService faltet die Zeitschrift alle 30 s und Nachzählt nächtlichen, eine Korrektur für jede Drift. Auch: - Der Accept Pick (findAssignablePool) lesen und sortierten den gesamten Produktpool: 9,5 s pro Accept. Es ist jetzt findAssignablePoolUids, angeheftet mit einem pg_hint_plan Hinweis auf den neuen Teilindex ix_leads_assignable_pool, weil der Legacy-Planer dieses Clusters ix_leads_org_market bevorzugt und sortiert. 9.470 ms - 4 ms auf dem Live-Pool; die Existenzsonde (SampleAssignablePoolUids) ebenfalls, und ein leeres Produkt kostet keinen Scan seines gesamten Marktes mehr. - Batch liest für die Gitter: ************ (die Bilanz jeder Zeile in einer Lektüre), findSpentCreditsInRange (jedes Mitglied gibt seit der frühesten lokalen Mitternacht aus), countAcceptedSeConvedConnce, and ************ der In-Gedächtnis-Zwilling von findApplicableAllotments für die Auflösung vieler (Markt-, Produkt-) Paare aus einer Liste. Tests: LeadLedgerQueryShapeTest pins das Ledger liest, die nicht-negative Klemme, die bigint Guss und der Index-Hinweis; LeadAllotmentMostSpecificOfTest pins setzt den Resolver auf die Regeln der Abfrage. Der Auslöser DDL, jede Lesart, die Falte und die Nachzählung wurden gegen YugabyteDB (Temp-Tabellen, 60 Schecks) wiedergegeben. Volle Suite: 3012 Tests, 5 Ausfall genau wie auf a6374937 (StorageDomainCoverage, StorageDomainAssociationLookup, ReportVisibility, PhiServiceTypeMapping, SystemBugCountContract).

Alle Änderungen

Wie, was Sie sehen Versand?

Alles kommt in Ihrem Arbeitsbereich für sich. Starten Sie mit dem kostenlosen Plan und lesen Sie diese Seite in einem Monat wieder.

Free Forever startenPreisgestaltung anzeigen