Alex Chi Z.
4f7b2cdd4f
feat(pageserver): gc-compaction result verification ( #11515 )
...
## Problem
Part of #9114
There was a debug-mode verification mode that verifies at every
retain_lsn. However, the code was tangled within the actual history
generation itself and it's hard to reason about correctness. This patch
adds a separate post-verification of the gc-compaction result that redos
logs at every retain_lsn and every record above the GC horizon. This
ensures that all key history we produce with gc-compaction is readable,
and if there're read errors after gc-compaction, it can only be
read-path errors instead of gc-compaction bugs.
## Summary of changes
* Add gc_compaction_verification flag, default to true.
* Implement a post-verification process.
---------
Signed-off-by: Alex Chi Z <chi@neon.tech >
2025-04-11 15:50:29 +00:00
..
2025-03-09 17:29:44 +00:00
2025-03-30 18:58:33 +00:00
2025-04-11 15:50:29 +00:00
2025-03-30 18:58:33 +00:00
2024-10-08 14:32:26 -05:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2024-11-25 09:01:05 +00:00
2025-04-11 15:20:51 +00:00
2025-04-09 06:52:49 +00:00
2025-04-11 15:06:29 +00:00
2024-11-08 12:19:18 -06:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-04-11 15:06:29 +00:00
2025-03-30 18:58:33 +00:00
2024-11-27 12:12:21 +00:00
2024-10-08 14:32:26 -05:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2024-10-18 15:07:36 +03:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-04-04 18:04:39 +00:00
2024-10-08 14:32:26 -05:00
2024-12-02 10:26:15 +00:00
2025-04-02 10:43:05 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-02-03 12:44:47 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-31 19:49:32 +00:00
2025-04-08 03:52:50 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-02-03 12:44:47 +00:00
2025-04-09 13:16:15 +00:00
2024-10-08 14:32:26 -05:00
2025-03-30 18:58:33 +00:00
2025-04-08 14:54:53 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-04-08 14:54:53 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-04-04 18:04:39 +00:00
2024-11-21 16:25:31 +00:00
2024-11-19 22:29:57 +02:00
2025-01-16 20:34:02 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-04-04 17:30:58 +00:00
2025-03-30 18:58:33 +00:00
2025-02-07 13:03:01 +00:00
2025-04-11 09:38:05 +00:00
2025-03-30 18:58:33 +00:00
2025-04-04 18:04:39 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-04-10 10:07:16 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-02-25 12:23:04 +00:00
2025-02-03 12:44:47 +00:00
2025-04-02 10:43:05 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2024-12-02 10:26:15 +00:00
2024-10-18 11:25:45 +01:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-02-28 21:07:21 +00:00
2025-03-30 18:58:33 +00:00
2025-04-11 06:11:35 +00:00
2025-04-10 16:55:37 +00:00
2025-04-08 10:03:38 +00:00
2025-04-11 15:06:29 +00:00
2025-03-30 18:58:33 +00:00
2024-11-27 12:12:21 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-04-03 17:49:45 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-04-07 19:10:36 +00:00
2025-03-30 18:58:33 +00:00
2025-04-03 15:55:22 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2024-10-08 14:32:26 -05:00
2024-10-28 17:47:15 -05:00
2025-03-30 18:58:33 +00:00
2024-11-14 17:19:13 +02:00
2025-04-10 09:55:37 +00:00
2025-04-10 09:55:37 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00
2025-03-30 18:58:33 +00:00