Callum Styan
5be7bbd25f
perf(coderd/x/chatd): acquire chats on the replica that makes them runnable
...
A transition that left a chat runnable and unowned published a
chat:ownership hint, and every replica's worker then queued on the chat
row lock while one acquired it.
ChatMachine and CreateChatWithID now take an optional LocalAcquirer.
When a top-level transition leaves the chat runnable and unowned, the
acquirer may acquire it in the same transaction; the update then
publishes the owned row, skips the hint, and spawns the runner once
after commit. Updates nested inside another Update never acquire,
because the outer transaction owns the commit. The chat worker
implements it for chatd API transitions and chat creation, and declines
when it is not running, when capacity is capped, or when admission
refuses, which keeps the hint path.
Callers that return a row they reloaded inside their Update callback,
such as SendMessage, return it as it was before the acquire.
Generated by Coder Agents on behalf of @cstyan.
2026-10-15 21:06:06 +00:00
..
2026-10-14 17:26:31 +00:00
2026-10-15 12:01:26 +01:00
2026-10-07 16:51:19 +00:00
2026-10-13 07:57:56 +00:00
2026-09-29 11:48:52 +02:00
2026-09-11 01:48:56 +00:00
2026-10-15 13:32:40 -05:00
2026-10-07 11:43:19 +03:00
2026-09-02 11:29:35 +02:00
2026-10-13 16:24:45 +00:00
2026-08-21 23:46:27 -06:00
2026-09-11 01:48:56 +00:00
2026-10-13 07:57:56 +00:00
2026-10-05 16:52:36 -07:00
2026-10-12 15:56:40 +03:00
2026-10-05 16:52:36 -07:00
2026-10-15 13:32:40 -05:00
2026-10-13 07:57:56 +00:00
2026-10-09 16:42:41 -06:00
2026-10-13 07:57:56 +00:00
2026-09-16 14:52:21 -07:00
2026-09-23 20:08:31 +02:00
2026-10-13 16:24:45 +00:00
2026-09-27 23:34:26 +02:00
2026-08-21 23:46:27 -06:00
2026-10-14 16:34:56 +05:00
2026-09-24 15:12:28 +03:00
2026-10-05 16:52:36 -07:00
2026-10-13 07:57:56 +00:00
2026-10-09 00:58:39 +05:00
2026-07-30 08:37:45 +01:00
2026-10-13 07:57:56 +00:00
2026-08-10 14:43:16 -05:00
2026-10-13 07:57:56 +00:00
2026-08-11 11:04:51 -05:00
2026-10-15 13:32:40 -05:00
2026-08-25 08:12:00 -07:00
2026-09-17 18:14:08 +02:00
2026-10-11 19:57:49 +02:00
2026-10-12 15:56:40 +03:00
2026-09-29 12:23:00 +00:00
2026-10-14 12:35:48 -04:00
2026-10-02 16:40:24 -08:00
2026-08-25 16:40:41 +07:00
2026-10-05 12:15:42 +00:00
2026-10-14 14:55:29 -07:00
2026-08-03 15:56:56 -05:00
2026-09-26 21:41:25 +02:00
2026-10-07 13:17:12 -07:00
2026-10-15 21:06:06 +00:00
2026-09-23 20:08:31 +02:00
2026-09-09 10:16:24 +02:00
2026-09-11 16:03:44 +00:00
2026-09-11 16:03:44 +00:00
2026-09-29 09:20:31 +01:00
2026-09-29 09:20:31 +01:00
2026-09-29 09:20:31 +01:00
2026-09-14 13:47:48 -07:00
2026-10-07 11:43:19 +03:00
2026-10-07 11:43:19 +03:00
2026-08-19 19:46:23 +00:00
2026-09-11 01:48:56 +00:00
2026-08-06 09:18:46 -04:00
2026-08-06 09:18:46 -04:00
2026-08-06 09:18:46 -04:00
2026-10-13 19:15:16 +07:00
2026-10-13 19:15:16 +07:00
2026-10-05 12:52:10 -04:00
2026-10-05 12:52:10 -04:00
2026-10-01 11:49:21 -04:00
2026-10-01 11:49:21 -04:00
2026-10-01 11:49:21 -04:00
2026-10-13 19:15:16 +07:00
2026-09-14 08:31:26 -07:00
2026-10-14 14:55:29 -07:00
2026-07-14 12:29:38 -07:00
2026-08-18 12:54:45 -07:00
2026-08-24 12:06:56 -07:00
2026-08-21 23:46:27 -06:00
2026-09-24 15:12:28 +03:00
2026-08-26 11:57:56 -06:00
2026-08-26 16:17:06 +02:00
2026-10-01 16:42:51 +02:00
2026-09-21 17:42:31 +02:00
2026-09-28 09:25:01 +00:00
2026-09-21 17:42:31 +02:00
2026-08-27 10:49:13 +01:00
2026-08-24 11:20:26 +01:00
2026-08-26 13:33:13 +02:00
2026-09-21 15:58:18 +02:00
2026-10-07 15:55:04 +02:00
2026-10-12 09:53:44 +11:00
2026-09-27 16:38:30 +02:00
2026-10-11 19:57:49 +02:00
2026-10-11 19:57:49 +02:00
2026-09-29 12:23:00 +00:00
2026-09-29 12:23:00 +00:00
2026-10-07 15:55:04 +02:00
2026-07-15 12:16:25 -08:00
2026-08-19 13:00:31 -08:00
2026-08-18 12:54:45 -07:00
2026-10-06 13:01:11 +03:00
2026-10-06 13:01:11 +03:00
2026-09-25 18:51:55 +10:00
2026-09-25 18:51:55 +10:00
2026-09-25 18:51:55 +10:00
2026-10-12 23:58:35 +03:00
2026-10-12 23:58:35 +03:00
2026-08-26 19:49:43 +02:00
2026-10-13 16:43:15 +00:00
2026-10-14 14:55:29 -07:00
2026-10-13 23:03:08 +02:00
2026-10-13 23:03:08 +02:00
2026-10-09 00:58:39 +05:00
2026-10-09 00:58:39 +05:00
2026-10-09 00:58:39 +05:00
2026-10-13 23:03:08 +02:00
2026-08-26 15:29:26 +02:00
2026-08-26 15:29:26 +02:00
2026-09-16 11:36:45 -07:00
2026-09-28 18:46:14 +00:00
2026-08-26 11:57:56 -06:00
2026-09-14 18:31:48 -07:00
2026-09-14 18:31:48 -07:00
2026-09-28 18:46:14 +00:00
2026-09-22 23:20:24 +00:00
2026-09-22 23:20:24 +00:00
2026-10-13 16:43:15 +00:00
2026-10-13 16:43:15 +00:00
2026-10-13 16:24:45 +00:00
2026-10-13 16:24:45 +00:00
2026-09-08 17:20:53 +00:00
2026-09-17 14:33:37 -05:00
2026-08-21 10:31:01 -04:00
2026-08-21 10:31:01 -04:00
2026-08-31 11:36:43 -04:00
2026-10-13 03:43:55 +00:00
2026-09-27 23:34:26 +02:00
2026-10-14 14:55:29 -07:00
2026-10-14 14:55:29 -07:00
2026-10-14 14:55:29 -07:00
2026-09-02 12:51:33 -04:00
2026-09-10 08:21:29 -04:00
2026-09-10 08:21:29 -04:00
2026-09-11 18:13:16 -05:00
2026-09-11 18:13:16 -05:00
2026-09-17 11:11:38 +10:00
2026-09-11 18:13:16 -05:00
2026-08-19 16:16:51 -06:00
2026-10-13 07:57:56 +00:00
2026-08-26 11:57:56 -06:00
2026-10-07 19:03:46 +02:00
2026-10-09 16:42:41 -06:00
2026-10-09 16:42:41 -06:00
2026-07-28 09:58:33 -06:00
2026-09-02 09:21:36 -07:00
2026-09-02 09:21:36 -07:00
2026-09-02 09:21:36 -07:00
2026-08-21 23:46:27 -06:00
2026-09-02 09:21:36 -07:00
2026-08-18 12:54:45 -07:00
2026-10-13 16:24:45 +00:00
2026-10-13 16:24:45 +00:00
2026-10-13 03:43:55 +00:00
2026-10-13 03:43:55 +00:00
2026-08-26 11:57:56 -06:00
2026-10-14 13:54:17 +03:00
2026-09-02 14:06:46 -07:00
2026-10-07 11:43:19 +03:00
2026-10-07 11:43:19 +03:00
2026-09-25 13:59:53 -05:00
2026-09-21 11:04:12 +00:00
2026-08-21 23:46:27 -06:00
2026-08-19 16:16:51 -06:00
2026-10-13 03:43:55 +00:00
2026-09-24 11:41:32 -07:00
2026-09-24 11:41:32 -07:00
2026-09-19 00:32:51 +02:00
2026-08-26 11:57:56 -06:00
2026-10-15 17:27:13 +05:00
2026-10-15 17:27:13 +05:00
2026-09-21 21:06:06 +02:00