Шакирзянов Амир
73fad424ed
perf(sub): cache each inbound's settings without clients for subscription bodies ( #6758 )
...
Every subscription fetch read and scanned each inbound's whole settings
blob, about 25 MB at 100k clients, although subscription bodies resolve
their clients from the clients table and never use its clients array.
Each inbound's settings minus the clients array are now cached, keyed by
inbound and shared by all its subscribers; the inbound row, clients,
stats and hosts are still read per fetch, and WireGuard and AmneziaWG keep
full settings for their peers. Panel edits purge the cache through an
invalidator registry the subscription server releases on stop, with a
10 s TTL as the backstop. At 100k clients a hit takes 2.1 ms on SQLite
(72.5 ms before) and 20.7 ms on PostgreSQL (332 ms).
2026-10-24 22:45:46 +02:00
..
2026-09-27 03:04:50 +02:00
2026-09-14 12:10:25 +02:00
2026-09-14 12:10:25 +02:00
2026-06-24 15:25:41 +02:00
2026-10-24 07:10:30 +02:00
2026-10-24 07:10:30 +02:00
2026-10-24 04:21:04 +02:00
2026-09-26 20:31:50 +02:00
2026-10-24 04:21:04 +02:00
2026-10-24 04:21:04 +02:00
2026-10-24 07:10:30 +02:00
2026-10-24 12:33:02 +02:00
2026-07-27 14:37:57 +02:00
2026-07-27 14:37:57 +02:00
2026-10-24 06:08:02 +02:00
2026-10-24 22:45:46 +02:00
2026-09-26 21:13:39 +02:00
2026-09-26 21:13:39 +02:00
2026-07-21 15:52:33 +02:00
2026-09-13 12:53:57 +02:00
2026-10-02 15:44:41 +02:00
2026-09-12 11:12:13 +02:00
2026-10-24 04:21:04 +02:00
2026-09-26 22:00:09 +02:00
2026-09-27 03:04:50 +02:00
2026-10-24 04:21:04 +02:00
2026-09-26 22:00:09 +02:00
2026-09-27 03:04:50 +02:00
2026-09-26 23:36:33 +02:00
2026-09-26 21:13:46 +02:00
2026-07-29 21:01:59 +02:00
2026-09-26 22:03:20 +02:00
2026-09-26 22:03:20 +02:00
2026-10-24 05:13:44 +02:00
2026-10-24 05:13:44 +02:00
2026-10-24 20:07:55 +02:00
2026-10-24 21:05:42 +02:00
2026-10-24 21:05:42 +02:00
2026-10-24 21:05:42 +02:00
2026-09-27 03:04:50 +02:00
2026-10-14 14:42:00 +02:00
2026-10-05 19:05:13 +02:00
2026-09-03 22:32:05 +02:00
2026-09-27 01:06:17 +02:00
2026-09-27 01:06:17 +02:00
2026-09-16 01:55:56 +02:00
2026-09-13 11:51:56 +02:00
2026-09-13 11:51:56 +02:00
2026-09-13 11:51:56 +02:00
2026-10-24 04:21:04 +02:00
2026-09-10 17:05:54 +02:00
2026-09-10 17:05:54 +02:00
2026-09-10 17:05:54 +02:00
2026-09-10 17:05:54 +02:00
2026-10-22 17:10:11 +02:00
2026-10-24 12:33:02 +02:00
2026-10-24 06:36:49 +02:00
2026-09-12 11:12:13 +02:00
2026-10-24 12:33:02 +02:00
2026-10-11 18:02:12 +02:00
2026-09-27 03:04:50 +02:00
2026-07-23 23:57:29 +02:00
2026-09-15 21:13:29 +02:00
2026-09-15 21:13:29 +02:00
2026-09-15 21:13:29 +02:00
2026-08-14 20:13:15 +02:00
2026-09-08 17:14:01 +02:00
2026-10-24 04:21:04 +02:00
2026-10-24 04:21:04 +02:00
2026-09-03 16:35:07 +02:00
2026-10-24 06:36:49 +02:00
2026-09-27 03:04:50 +02:00
2026-10-24 04:21:04 +02:00
2026-10-22 17:10:11 +02:00
2026-09-27 03:04:50 +02:00
2026-09-08 15:36:57 +02:00
2026-09-27 03:04:50 +02:00
2026-06-15 19:31:57 +02:00
2026-10-03 00:31:52 +02:00
2026-09-27 03:04:50 +02:00
2026-10-24 06:44:24 +02:00
2026-10-03 02:56:02 +02:00
2026-09-30 15:03:16 +02:00
2026-09-27 03:04:50 +02:00
2026-10-24 06:36:49 +02:00
2026-10-24 22:45:46 +02:00
2026-10-24 22:45:46 +02:00
2026-10-24 22:45:46 +02:00
2026-09-13 19:58:27 +02:00
2026-09-10 17:05:54 +02:00
2026-09-10 17:05:54 +02:00
2026-08-15 15:22:11 +02:00
2026-09-10 17:05:54 +02:00
2026-10-24 04:21:04 +02:00
2026-09-27 03:04:50 +02:00
2026-10-24 22:45:46 +02:00
2026-10-24 04:21:04 +02:00
2026-06-29 14:32:23 +02:00
2026-06-29 14:32:23 +02:00
2026-09-13 19:58:10 +02:00
2026-10-11 08:21:08 +02:00