Pulse/pkg
rcourtman c3fcddf94c sqlite: bound every store's page cache to SQLite's default
Five stores set private page caches of 16 to 64 MB per connection.
The modernc driver allocates that cache with anonymous mmap outside
the Go heap, so GC and GOMEMLIMIT never see it, and each page costs
about twice its size. Measured: reading a 107 MB database through a
64 MB cache_size added 117 MB of resident memory, against 6 MB at
SQLite's 2 MB default. On a long-running dogfood install about 165 MB
of 360 MB resident sat outside the Go heap, with a 126 MB audit
database behind a 64 MB cache (#1803).

Audit, RBAC, notification queue, unified resources and the alert
event log (writer and both readers) now take pdb.PageCachePragma.
Pages that miss it come from the kernel file cache, which the kernel
can reclaim. The audit suite, including its large legacy migration,
takes the same time as before (309 s on both trees).

pkg/db tests reject any other cache_size in production code and bound
the resident growth of a 30 MB scan. Each store's test pins its
effective value. Negative controls: restoring the audit cache fails
the source scan, and a 64 MB reader cache grows a scan by 55 MB
against a 16 MB budget. modernc sorts _pragma values before applying
them, so a second cache_size in one DSN cannot reliably override.

Related to #1803
2026-10-21 14:16:08 +01:00
..
agents Preserve partial PVE filesystem readings without widening helper access 2026-10-05 18:22:01 +01:00
aicontracts Restore Patrol's Safe auto-fix and Autopilot modes 2026-10-12 14:13:47 +01:00
audit sqlite: bound every store's page cache to SQLite's default 2026-10-21 14:16:08 +01:00
auth sqlite: bound every store's page cache to SQLite's default 2026-10-21 14:16:08 +01:00
cloudauth fix(hosted): preserve direct handoff membership continuity 2026-03-26 23:40:02 +00:00
db sqlite: bound every store's page cache to SQLite's default 2026-10-21 14:16:08 +01:00
discovery Bound discovery probe response bodies 2026-09-01 10:37:26 +01:00
diskinventory Stop a stale agent SMART row lending a replaced disk its identity (#2658) 2026-10-07 14:01:19 +01:00
edition Block in-app self-update on the Pro binary to prevent silent downgrade 2026-07-08 10:02:04 +01:00
extensions Add scheduled client backup health reports 2026-10-17 17:36:24 +01:00
fsfilters Avoid per-directory allocations while filtering disk mounts 2026-10-09 17:50:19 +01:00
licensing licensing: send in-app Buy to the licence server purchase page 2026-10-21 09:17:45 +01:00
metrics Reduce repeated resource decoding in retained metrics reads 2026-10-19 09:37:00 +01:00
netutil Keep guest primary addresses associated with their interfaces 2026-10-09 13:07:08 +01:00
pbs Preserve PBS authentication cancellation while reading responses 2026-10-18 18:11:01 +01:00
pmg Accept PMG 9 cluster ids and stop guessing backup nodes 2026-10-16 14:15:58 +01:00
proxmox Keep guest HTTP tests on namespaced fixture identities 2026-10-18 23:28:44 +01:00
pulsecli Enforce server-owned action approval authority 2026-07-11 19:49:17 +01:00
reporting Add scheduled client backup health reports 2026-10-17 17:36:24 +01:00
securityutil Fix pinned notification connectivity and cancelled DNS lookups 2026-10-18 08:49:56 +01:00
server Measure aggregate reporting outcomes and repeat use 2026-10-17 21:10:17 +01:00
tlsutil Try reachable alternatives in the cached infrastructure DNS answer 2026-10-13 12:03:15 +01:00