- Expediere
- 23 septembrie 2026 la 01:28 UTC
- Autor
- Kamo
- Comite
- 84746ae
Registrele de plumb (securityservice create lead leadrs.sql, aplicat 2026-09-22) înlocuiesc COUNT (*) peste o 796k-lider pool și peste lead credite cu totaluri menținute plus un jurnal numai anexă care rândul Declanşatorul scrie. Acest serviciu îi ţine împăturiţi şi cinstiţi: - LeadLedgerFoldJob (la fiecare 30 s): o declarație pe lot șterge rândurile jurnal și le adaugă totaluri, astfel încât un cititor vede figura înainte sau după, niciodată jumătate. Cititorii adaugă deja jurnalul la În total, o căpuşă ratată costă timpul de citire, niciodată corectitudine. Cel mult 40 de loturi de 5000 pe căpuşă. - LeadLedgerReconcileJob (03:40 nightly): renumără piscina fiecărui org și creditele disponibile ale fiecărui membru din rânduri și le compară cu total + jurnal într-o singură declarație (un instantaneu). Diferenţele sunt APENDAT ca 'RECONCILE' deltas, niciodată scris peste un total, astfel încât renumărarea nu poate cursa declanşatoare sau un pliu. De asemenea, se numește orice declanșator jurnal care lipsește sau dezactivat. Într-un sistem sănătos se găsește Nimic, deci fiecare corecţie e înregistrată la WARN. Ambele sunt @DisallowConcurrentExecution și retry a statement YugabyteDB abandons with 40001 (fiecare este atomic, astfel încât o rejudecare nu poate dubla numărul). SQL a fost redat împotriva YugabyteDB înainte de această expediere (temp tabele: declanșatoare, citiri, pliere și renumărare, 60 de verificări). JobTriggerController: Post /api/daemon/trigger/{job} și GET /status a răspuns la oricine. SecurityConfig permite tuturor, și daemon-rute IngressRoute pune acest serviciu pe punctul de intrare securizat web public (Host daemon.internal.kamocrm.com; Sondat 200 anonim), astfel încât orice loc de muncă acum, inclusiv renumărarea ar putea fi pornit de pe internet, la fel de multe copii suprapuse ca piscina Quartz deține. Ambele acum Necesită X-Normal-Auth = mlos.intern-auth-secret (constant-time) și refuză toată lumea atunci când acest secret este nesetat. Nimic din platforma nu numește acest obiectiv; un operator încă poate, din interiorul grupului. Teste: LeadLedgerMaintenanceTest (joar și capac, raportare renumărare, declanșare lipsă, retry regulă, și SQL forme care fac în condiții de siguranță lângă traficul live), JobTriggerControllerAuthTest.
