Avi Kivity
db4e4df762
alternator: yield while converting large responses to json text
...
We have two paths for generating the json text representation, one
for large items and one for small items, but the large item path is
lacking:
- it doesn't yield, so a response with many items will stall
- it doesn't wait for network sends to be accepted by the network
stack, so it will allocate a lot of memory
Fix by moving the generation to a thread. This allows us to wait for
the network stack, which incidentally also fixes stalls.
The cost of the thread is amortized by the fact we're emitting a large
response.
Fixes #18806
Closes scylladb/scylladb#18807
2024-06-02 13:07:13 +03:00
..
2023-09-11 14:38:46 +03:00
2024-04-11 14:33:43 +03:00
2023-12-07 10:50:55 +03:00
2023-12-02 22:37:22 +02:00
2024-01-18 12:50:06 +02:00
2023-04-27 10:24:46 +03:00
2023-12-02 22:37:22 +02:00
2023-12-02 22:37:22 +02:00
2023-09-04 16:14:38 +03:00
2023-04-17 11:14:45 +03:00
2023-04-17 11:16:45 +03:00
2024-01-18 12:50:06 +02:00
2023-05-07 19:01:29 +03:00
2024-04-19 07:44:07 +03:00
2023-12-12 21:09:51 +08:00
2023-03-24 15:41:45 +08:00
2023-03-24 15:41:45 +08:00
2024-01-18 12:50:06 +02:00
2024-01-18 12:50:06 +02:00
2024-01-18 12:50:06 +02:00
2023-05-07 17:17:34 +03:00
2023-09-01 22:34:41 +02:00
2024-01-18 12:50:06 +02:00
2024-05-15 22:32:45 +03:00
2024-01-31 16:45:09 +02:00
2023-12-05 15:18:11 +02:00
2024-05-06 10:00:31 +03:00
2024-01-26 08:44:44 +01:00
2023-11-30 08:52:57 +03:00
2023-11-30 08:52:57 +03:00
2024-01-18 12:50:06 +02:00
2024-01-18 12:50:06 +02:00
2023-12-20 10:25:03 +02:00
2024-05-18 00:24:00 +03:00
2024-05-18 00:24:00 +03:00
2024-04-19 22:56:16 +08:00
2024-02-01 12:20:23 +05:30
2024-01-18 12:50:06 +02:00
2024-05-26 16:45:42 +03:00
2023-04-27 10:24:46 +03:00
2024-01-23 10:03:51 +02:00
2024-05-26 16:45:42 +03:00
2024-03-13 02:06:30 -04:00
2024-04-19 07:44:07 +03:00
2024-01-18 12:50:06 +02:00
2024-02-01 14:50:17 +02:00
2024-05-26 16:45:42 +03:00
2024-02-02 15:20:40 +01:00
2024-02-02 15:20:40 +01:00
2024-05-26 16:45:42 +03:00
2024-04-19 07:44:07 +03:00
2023-11-21 08:42:33 +00:00
2023-04-24 14:06:43 +03:00
2023-04-24 14:06:40 +03:00
2024-05-27 17:34:38 +03:00
2024-01-23 13:12:34 +02:00
2023-02-14 19:22:19 +08:00
2023-11-07 04:39:33 -05:00
2024-03-12 14:53:55 +08:00
2024-04-19 07:44:07 +03:00
2024-01-18 12:50:06 +02:00
2024-01-18 12:50:06 +02:00
2023-12-02 22:37:22 +02:00
2024-02-21 19:43:17 +02:00
2023-12-05 15:18:11 +02:00
2023-12-05 15:18:11 +02:00
2023-04-21 14:28:18 +03:00
2024-01-18 12:50:06 +02:00
2023-09-05 20:50:42 +03:00
2024-02-02 22:12:57 +08:00
2024-05-09 16:29:49 +03:00
2023-04-27 10:24:46 +03:00
2024-05-02 18:42:41 +03:00
2024-05-02 18:42:41 +03:00
2023-09-01 22:34:23 +02:00
2024-02-23 11:32:41 +08:00
2024-04-19 22:56:13 +08:00
2023-11-20 23:02:41 +02:00
2023-03-20 07:55:20 +02:00
2023-12-02 22:37:22 +02:00
2023-04-27 10:24:46 +03:00
2023-07-10 19:36:06 +02:00
2023-07-10 19:36:06 +02:00
2024-02-09 17:00:33 +01:00
2024-01-31 16:45:09 +02:00
2024-01-31 16:45:09 +02:00
2024-02-07 18:31:28 +01:00
2024-01-11 14:33:47 +08:00
2024-01-31 09:16:10 +02:00
2023-12-02 22:37:22 +02:00
2023-02-03 19:04:32 +01:00
2024-02-02 22:12:57 +08:00
2023-02-28 21:56:55 +08:00
2024-01-18 12:50:06 +02:00
2024-06-02 13:07:13 +03:00
2024-05-26 11:54:36 +03:00
2023-06-26 11:10:38 +03:00
2023-05-21 11:33:38 +04:00
2024-01-18 12:50:06 +02:00
2023-05-11 16:31:23 +03:00
2023-04-24 14:06:43 +03:00
2024-04-19 22:57:36 +08:00
2024-05-16 13:30:03 +02:00
2023-05-24 12:08:19 +04:00
2024-01-18 12:50:06 +02:00
2023-06-21 00:58:24 +02:00
2024-03-12 14:53:55 +08:00
2024-04-23 12:09:05 +03:00
2024-05-27 17:34:38 +03:00
2023-06-15 15:52:50 +04:00
2023-12-02 22:37:22 +02:00
2023-12-02 22:37:22 +02:00
2024-04-30 09:07:22 +03:00
2024-03-13 10:21:25 +02:00
2024-02-01 10:27:55 +02:00
2024-04-19 07:44:07 +03:00
2024-05-18 00:24:00 +03:00