Ethan
227f20df6a
perf(coderd): cheaper chatd org membership checks ( #24361 )
...
This change reuses the authenticated subject's existing organization
membership information during chat creation instead of issuing an
`OrganizationMembers` query.
The current query is still correct, so this is not required for
correctness. However, `workspaceapps` already answers the same question
more cheaply from the request's RBAC subject. This extracts that logic
into `rbac.Subject.HasOrganizationMembership` and reuses it in both
places, removing an extra database lookup from chat creation without
changing the authorization behavior.
I'm currently debugging a Coder agents scaletest regression where a run
on April 2, 2026 with 4800 concurrent chat creations passed, while the
same run on April 15, 2026 does not. We could stagger chat creation to
reduce the burst, but I'd rather understand why this bottleneck appeared
in the first place so we can keep making small hot-path improvements
like this one instead of only smoothing over the symptom.
2026-04-16 00:12:54 +10:00
..
2026-04-10 10:11:22 -04:00
2025-06-20 13:16:55 -06:00
2026-03-31 12:54:38 -04:00
2026-03-16 12:36:26 -05:00
2026-04-15 07:59:37 +00:00
2026-03-02 16:02:01 +01:00
2024-09-18 21:47:53 +10:00
2026-03-16 15:30:25 -05:00
2026-02-24 16:45:56 +00:00
2025-12-15 13:44:44 -09:00
2026-02-06 09:52:17 -07:00
2026-03-13 00:22:55 +11:00
2026-04-09 16:33:00 +02:00
2026-04-03 15:47:26 -05:00
2026-01-08 15:24:11 +04:00
2026-04-15 11:39:05 +01:00
2026-02-19 09:02:19 +00:00
2026-03-23 23:19:23 +02:00
2026-01-29 13:50:15 +01:00
2026-03-14 17:24:19 +00:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2026-03-27 15:08:30 +00:00
2026-03-29 20:11:30 -04:00
2026-04-13 12:31:25 +01:00
2026-03-05 20:29:49 +00:00
2026-03-19 21:51:26 +00:00
2025-06-20 13:16:55 -06:00
2026-03-18 10:21:45 +00:00
2026-01-08 15:24:11 +04:00
2026-03-23 23:19:23 +02:00
2026-04-10 12:49:22 +03:00
2025-10-15 17:37:37 +00:00
2024-05-13 14:37:51 -04:00
2026-03-18 09:30:22 -05:00
2026-04-02 23:51:02 +02:00
2026-04-15 12:48:38 +00:00
2026-01-30 13:30:06 +01:00
2026-04-02 23:51:02 +02:00
2025-10-23 15:38:49 -05:00
2025-06-17 09:00:32 -08:00
2026-04-10 10:47:30 +01:00
2026-04-16 00:12:54 +10:00
2025-06-20 13:16:55 -06:00
2025-07-08 14:31:05 +00:00
2026-02-19 09:02:19 +00:00
2026-04-07 07:24:53 -07:00
2026-03-13 17:35:26 +00:00
2026-04-13 12:31:25 +01:00
2025-12-14 03:00:03 +00:00
2026-03-20 20:00:55 +00:00
2026-01-08 15:24:11 +04:00
2026-03-18 09:30:22 -05:00
2025-06-20 13:16:55 -06:00
2026-03-25 22:15:27 +00:00
2026-04-15 11:31:43 +02:00
2026-04-16 00:12:54 +10:00
2026-03-20 15:42:05 -05:00
2026-02-27 14:26:48 +00:00
2026-03-13 20:37:41 -07:00
2026-04-15 15:14:51 +02:00
2026-03-12 18:07:52 +02:00
2025-11-17 13:24:12 +00:00
2026-03-23 09:52:34 +00:00
2026-03-23 09:52:34 +00:00
2025-09-26 11:56:34 +02:00
2026-04-01 09:54:59 -04:00
2026-04-01 09:54:59 -04:00
2024-08-01 12:07:19 -05:00
2026-01-08 15:24:11 +04:00
2026-04-07 07:24:53 -07:00
2025-10-27 17:14:16 -06:00
2026-03-31 17:26:58 +01:00
2025-06-20 13:16:55 -06:00
2026-03-25 09:57:28 -04:00
2026-04-14 09:07:06 +01:00
2026-01-08 15:24:11 +04:00
2026-03-13 14:09:39 +00:00
2026-03-13 14:09:39 +00:00
2025-06-25 13:03:32 +00:00
2024-06-11 12:22:59 +10:00
2026-04-15 07:59:37 +00:00
2026-04-16 00:12:54 +10:00
2025-04-22 16:21:15 +00:00
2025-06-24 09:14:41 +01:00
2026-04-09 16:33:00 +02:00
2026-01-12 18:19:19 -08:00
2025-12-15 17:41:47 +00:00
2026-03-23 19:54:43 +00:00
2026-01-08 15:24:11 +04:00
2025-12-15 11:26:41 -06:00
2025-05-15 15:32:52 +01:00
2025-06-20 13:16:55 -06:00
2025-06-20 13:16:55 -06:00
2026-01-26 09:24:45 +00:00
2026-03-23 19:54:43 +00:00
2025-08-19 10:41:33 +02:00
2025-06-20 13:16:55 -06:00
2026-03-04 18:01:56 -08:00
2026-03-04 12:54:39 +02:00
2026-01-08 15:24:11 +04:00
2026-04-13 12:31:25 +01:00
2026-03-27 14:23:25 +00:00
2026-04-07 12:25:32 -06:00
2026-03-26 10:36:40 +00:00
2026-02-13 08:19:07 -06:00
2026-01-08 15:24:11 +04:00
2026-03-25 09:53:06 +00:00
2026-01-15 12:41:28 +03:00
2026-03-23 21:03:34 +00:00
2026-03-25 09:53:06 +00:00
2026-03-06 09:14:11 +00:00
2025-10-22 15:18:42 -05:00
2024-07-25 16:07:53 -05:00
2026-02-03 17:52:07 +00:00
2025-07-15 14:55:34 +10:00
2025-07-15 14:55:34 +10:00
2026-02-02 09:03:18 -06:00
2026-02-03 17:52:07 +00:00
2026-02-19 09:02:19 +00:00
2025-07-28 15:02:26 +01:00
2025-08-21 16:03:34 -04:00
2026-02-03 17:52:07 +00:00
2025-06-20 13:16:55 -06:00
2026-04-10 09:50:11 -05:00
2026-04-10 09:50:11 -05:00
2024-07-25 16:07:53 -05:00
2026-03-31 10:07:21 +01:00
2025-09-26 11:43:32 +02:00
2025-09-26 11:43:32 +02:00
2025-06-20 13:16:55 -06:00
2026-01-08 15:24:11 +04:00
2026-03-25 09:43:06 +02:00
2026-03-25 09:43:06 +02:00
2026-03-23 19:54:43 +00:00
2026-03-03 16:50:18 +00:00
2025-06-20 13:16:55 -06:00
2026-03-25 09:53:06 +00:00
2026-03-23 23:19:23 +02:00
2026-04-08 20:56:17 +01:00
2026-04-08 20:56:17 +01:00
2026-04-13 07:24:34 -06:00
2026-04-14 12:44:55 -06:00
2026-04-15 11:31:43 +02:00
2026-04-15 11:31:43 +02:00
2026-04-15 11:31:43 +02:00
2026-01-12 18:19:19 -08:00
2025-06-18 14:07:53 +00:00
2026-04-13 12:31:25 +01:00
2026-04-09 16:33:00 +02:00
2026-04-13 12:31:25 +01:00
2026-03-18 18:04:42 +00:00
2026-04-09 13:21:28 +05:00
2026-04-09 16:33:00 +02:00
2025-12-22 10:21:39 +04:00
2026-03-12 18:07:52 +02:00
2026-03-20 15:42:05 -05:00
2025-06-20 13:16:55 -06:00
2025-09-26 11:56:34 +02:00
2026-02-03 09:45:23 +00:00
2026-03-13 20:37:41 -07:00
2026-03-19 14:07:36 +00:00
2025-12-15 11:26:41 -06:00
2026-01-08 15:24:11 +04:00
2026-03-25 13:46:58 -05:00
2026-04-09 13:21:28 +05:00
2026-03-20 15:42:05 -05:00
2025-04-16 10:37:09 -06:00
2026-01-08 15:24:11 +04:00