Joonas Koivunen
ed9a114bde
fix: find gc cutoff points without holding Tenant::gc_cs ( #7585 )
...
The current implementation of finding timeline gc cutoff Lsn(s) is done
while holding `Tenant::gc_cs`. In recent incidents long create branch
times were caused by holding the `Tenant::gc_cs` over extremely long
`Timeline::find_lsn_by_timestamp`. The fix is to find the GC cutoff
values before taking the `Tenant::gc_cs` lock. This change is safe to do
because the GC cutoff values and the branch points have no dependencies
on each other. In the case of `Timeline::find_gc_cutoff` taking a long
time with this change, we should no longer see `Tenant::gc_cs`
interfering with branch creation.
Additionally, the `Tenant::refresh_gc_info` is now tolerant of timeline
deletions (or any other failures to find the pitr_cutoff). This helps
with the synthetic size calculation being constantly completed instead
of having a break for a timely timeline deletion.
Fixes : #7560
Fixes : #7587
2024-05-03 14:57:26 +03:00
..
2023-09-12 15:11:32 +02:00
2024-02-11 01:34:31 +02:00
2024-04-26 11:48:47 -04:00
2024-03-25 11:43:02 -04:00
2024-03-26 15:24:18 +01:00
2024-05-01 21:36:50 -07:00
2023-04-13 14:34:29 +03:00
2024-03-19 10:30:33 +00:00
2024-03-19 10:30:33 +00:00
2024-05-03 14:57:26 +03:00
2024-04-25 13:29:17 +01:00
2023-10-27 10:47:11 +01:00
2024-03-12 11:36:27 +00:00
2024-02-11 01:34:31 +02:00
2023-09-08 16:19:57 +01:00
2024-04-29 17:46:46 +00:00
2024-04-29 17:26:35 +01:00
2024-02-11 01:34:31 +02:00
2024-01-05 15:35:07 +00:00
2024-02-11 01:34:31 +02:00
2024-02-11 01:34:31 +02:00
2024-02-11 01:34:31 +02:00
2024-03-01 10:45:39 +01:00
2023-11-27 18:57:58 +00:00
2024-03-01 10:45:39 +01:00
2024-03-01 14:33:08 +00:00
2023-04-13 14:34:29 +03:00
2024-02-11 01:34:31 +02:00
2024-02-11 01:34:31 +02:00
2024-04-25 20:45:37 +03:00
2024-03-15 17:23:05 +02:00
2024-04-02 14:32:14 +01:00
2024-04-02 14:32:14 +01:00
2024-03-28 17:44:55 +00:00
2023-09-15 11:17:18 +01:00
2024-03-28 17:44:55 +00:00
2024-02-11 01:34:31 +02:00
2024-03-01 13:29:08 +01:00
2024-04-25 13:29:17 +01:00
2024-03-01 10:45:39 +01:00
2024-03-28 15:24:36 +00:00
2024-05-02 09:19:45 -04:00
2024-03-08 22:24:30 +00:00
2024-02-11 01:34:31 +02:00
2024-03-12 11:36:27 +00:00
2024-03-28 17:22:35 +00:00
2024-01-26 18:23:53 +00:00
2024-03-06 15:52:24 +00:00
2024-01-29 07:39:16 +02:00
2023-04-13 14:34:29 +03:00
2024-02-11 01:34:31 +02:00
2024-05-03 12:40:09 +01:00
2024-04-25 20:45:37 +03:00
2024-03-15 17:46:04 +00:00
2023-04-13 14:34:29 +03:00
2024-04-15 22:14:42 +02:00
2024-04-07 21:21:18 +00:00
2024-03-05 13:44:00 +00:00
2024-04-10 06:31:28 +01:00
2024-03-22 14:52:14 +00:00
2024-01-23 07:55:05 +02:00
2024-01-26 14:40:47 +00:00
2023-11-07 16:57:26 +00:00
2024-04-18 13:16:03 +01:00
2024-02-11 01:34:31 +02:00
2024-04-25 13:29:17 +01:00
2024-05-02 11:52:30 +00:00
2023-12-05 18:49:24 +02:00
2024-02-11 01:34:31 +02:00
2024-02-21 18:24:59 +01:00
2023-09-16 18:05:35 +03:00
2024-03-15 10:21:48 +01:00
2024-04-03 11:23:26 +01:00
2023-09-08 16:19:57 +01:00
2024-04-25 20:45:37 +03:00
2024-02-11 01:34:31 +02:00
2024-03-25 09:38:12 +00:00
2024-03-28 17:44:55 +00:00
2024-03-23 01:01:51 +00:00
2024-03-12 11:36:27 +00:00
2024-04-29 12:16:00 +00:00
2023-07-18 12:56:40 +03:00
2024-04-30 18:00:24 +01:00
2023-08-03 17:20:24 +03:00
2024-05-03 12:52:43 +01:00
2024-02-11 01:34:31 +02:00
2024-03-01 16:49:37 +00:00
2024-04-16 09:39:18 +01:00
2024-04-29 08:52:18 +01:00
2024-04-23 11:36:56 +01:00
2024-05-03 14:57:26 +03:00
2023-06-15 17:30:12 +03:00
2024-03-01 10:45:39 +01:00
2024-03-26 15:20:05 +00:00
2024-03-01 10:45:39 +01:00
2024-03-15 18:03:49 +00:00
2024-03-26 15:24:18 +01:00
2023-07-18 12:56:40 +03:00
2024-02-11 01:34:31 +02:00
2023-04-13 14:34:29 +03:00
2024-04-25 20:45:37 +03:00
2024-04-03 15:20:51 +00:00
2024-04-30 18:50:03 +00:00
2023-06-19 15:59:38 +04:00
2024-02-19 17:27:02 +01:00
2023-09-15 11:17:18 +01:00