Chris Kirby
3f786596e0
Don't overrun the block budget in server_log_merge_free_work().
...
This fixes a potential fence post failure like the following:
error: 1 holders exceeded alloc budget av: bef 7407 now 7392, fr: bef 8185 now 7672
The code is only accounting for the freed btree blocks, not the dirtying of
other items. So it's possible to be at exactly (COMMIT_HOLD_ALLOC_BUDGET / 2),
dirty some log btree blocks, loop again, then consume another
(COMMIT_HOLD_ALLOC_BUDGET / 2) and blow past the total budget.
In this example, we went over by 13 blocks.
By only consuming up to 1/8 of the budget on each loop, and committing when we
have consumed 3/4 of the budget, we can avoid the fence post condition.
Signed-off-by: Chris Kirby <ckirby@versity.com >
2025-10-06 12:27:25 -05:00
..
2024-06-28 15:09:05 -07:00
2024-10-03 12:41:05 -07:00
2024-10-03 12:41:05 -07:00
2024-10-03 12:41:05 -07:00
2022-10-14 14:03:35 -07:00
2024-06-28 15:09:05 -07:00
2024-06-28 14:53:49 -07:00
2024-10-03 12:41:05 -07:00
2022-12-12 14:59:22 -08:00
2024-01-25 11:30:17 -08:00
2024-01-25 11:30:17 -08:00
2024-10-03 12:41:05 -07:00
2021-11-05 15:21:04 -05:00
2024-09-18 13:40:54 -04:00
2025-01-27 14:49:04 -05:00
2024-06-25 15:11:20 -07:00
2025-02-25 15:23:16 -08:00
2023-10-09 15:35:40 -04:00
2023-06-14 14:12:10 -07:00
2021-08-24 09:11:40 -07:00
2021-08-24 09:11:40 -07:00
2024-10-03 12:41:05 -07:00
2021-05-31 13:10:45 -07:00
2024-10-03 12:41:05 -07:00
2024-10-03 12:41:05 -07:00
2024-06-28 15:09:05 -07:00
2024-06-28 15:09:05 -07:00
2024-06-28 15:09:05 -07:00
2024-10-03 12:41:05 -07:00
2024-10-03 12:41:05 -07:00
2025-01-27 14:49:04 -05:00
2024-06-28 15:09:05 -07:00
2025-10-03 09:34:23 -07:00
2024-06-28 14:53:49 -07:00
2024-10-03 12:41:05 -07:00
2025-01-23 14:28:40 -05:00
2024-10-03 12:41:05 -07:00
2024-10-31 15:34:59 -07:00
2021-10-28 12:30:47 -07:00
2025-10-03 09:35:36 -07:00
2024-06-28 15:09:05 -07:00
2024-06-28 15:09:05 -07:00
2025-01-23 14:28:40 -05:00
2021-08-24 09:12:20 -07:00
2024-10-30 13:38:12 -07:00
2022-01-24 09:40:08 -08:00
2022-07-06 15:16:19 -07:00
2022-03-11 15:28:58 -08:00
2024-01-30 12:01:35 -08:00
2024-01-25 11:25:56 -08:00
2024-10-03 12:41:05 -07:00
2022-12-12 14:59:22 -08:00
2024-10-03 12:41:05 -07:00
2024-06-28 15:09:05 -07:00
2024-10-03 12:41:05 -07:00
2021-05-26 14:18:28 -07:00
2025-01-23 14:28:40 -05:00
2025-10-06 12:27:25 -05:00
2023-01-06 11:15:45 -08:00
2025-10-03 09:35:36 -07:00
2020-11-30 13:35:44 -08:00
2024-10-03 12:41:05 -07:00
2021-06-17 09:37:45 -07:00
2024-11-27 18:52:39 -08:00
2024-11-27 18:52:39 -08:00
2024-10-03 12:41:05 -07:00
2022-10-26 16:42:27 -07:00
2024-06-28 15:09:05 -07:00
2024-06-28 15:09:05 -07:00
2025-04-29 11:46:38 -07:00
2021-07-07 14:13:14 -07:00
2024-10-03 12:41:05 -07:00
2023-11-07 12:34:00 -08:00
2024-10-03 12:41:05 -07:00
2023-10-09 15:35:40 -04:00
2021-05-21 15:31:02 -07:00
2021-05-19 14:15:06 -07:00
2024-10-03 12:41:05 -07:00
2024-06-28 15:09:05 -07:00
2024-10-03 12:41:05 -07:00
2024-06-28 15:09:05 -07:00