- Verschifft
- 23. September 2026 um 13:48 UTC
- Autor
- Kamo
- Ausschuss
- 41e4a00
pg_stat_statements: "SELECT COUNT(c) VON CommitLog c WO c.project IN (:-33 öffentliche Projekte) [AND c.commitTypeId = :t]" lief 140K mal pro Tag bei 100-200 ms pro Stück (gemessen auf Produktion vor dieser Änderung) - jede Listenseite (page(), Adressen()/sitemap) und jede /changelog/public/stats call, auf Endpoints, die keine Authentifizierung annehmen. commit_logs hat .19K Reihen über 38 Projekte; die Zählung selbst ist billig, aber sie lief auf jeden Wunsch. create_commit_log_ledger.sql fügt die gleiche Gesamt-+Journal-Form create_lead_intake_ledger.sql hinzu verwendet: commit_log_counts (insgesamt pro (Projekt, Commit-Typ)) plus ein weiteres anhängen betrügen_log_count_deltas Journal, dass eine Zeile auf commit_logs-Trigger in derselben schreibt Transaktion als Insert, als Projekt-/Typ-Wechsel-Update oder Lösch. Von Hand als die Besitzer und verfüllt; DaemonService faltet und erzählt es (separate verpflichten, perf(changelog): falten und das Commit-Log-Leedger des öffentlichen changelogs, zuerst eingesetzt werden, falten und neu auszählen. ************ und **************** jetzt lesen total + Journal in einer nativen Aussage anstelle eines JPQL COUNT(c) - neue Methoden auf PublicChangelogService (sein Header erklärt bereits, warum ein Filter/Abfrage die öffentliche Seite braucht lebt hier und nicht in Kamo-shared-Bibliothek) statt CommitLogRepository, so dass dies keine Shared-Bibliothek Release. today count() ist unberührt: es ist eine begrenzte Zeitfensterzahl, die von ix_commit_logs_date_uid, nicht das -140K-Call-Muster. Verifiziert gegen Produktion vor dem Wechsel: ledger Summen abgestimmt COUNT(*) genau quer alle 264 (Projekt, Commit-Typ) -Paare (0 Diskrepanzen) nach der Verfüllung und die drei commit_logs löst richtig Feuer (bewiesen in einer zurückgerollten Transaktion als kamo_app, die App-eigene Anmeldeinformationen).
