John Spray
3860bc9c6c
pageserver: post-shard-split layer rewrites (2/2) ( #7531 )
...
## Problem
- After a shard split of a large existing tenant, child tenants can end
up with oversized historic layers indefinitely, if those layers are
prevented from being GC'd by branchpoints.
This PR follows https://github.com/neondatabase/neon/pull/7531 , and adds
rewriting of layers that contain a mixture of needed & un-needed
contents, in addition to dropping un-needed layers.
Closes: https://github.com/neondatabase/neon/issues/7504
## Summary of changes
- Add methods to ImageLayer for reading back existing layers
- Extend `compact_shard_ancestors` to rewrite layer files that contain a
mixture of keys that we want and keys we do not, if unwanted keys are
the majority of those in the file.
- Amend initialization code to handle multiple layers with the same
LayerName properly
- Get rid of of renaming bad layer files to `.old` since that's now
expected on restarts during rewrites.
2024-05-24 08:33:19 +00:00
..
2023-09-12 15:11:32 +02:00
2024-05-13 15:16:23 +03:00
2024-05-23 11:25:38 +03:00
2024-05-13 15:16:23 +03:00
2024-05-22 17:06:00 +00: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-05-13 15:16:23 +03:00
2024-05-17 12:24:02 +02:00
2024-05-13 15:16:23 +03:00
2024-05-15 12:05:24 +00: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-05-22 21:28:47 +00:00
2024-05-14 10:36:48 -04:00
2024-05-16 12:04:16 +02:00
2024-02-11 01:34:31 +02:00
2024-05-06 06:45:27 +03: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-05-13 15:16:23 +03:00
2023-11-27 18:57:58 +00:00
2024-05-13 15:16:23 +03:00
2024-03-01 14:33:08 +00:00
2023-04-13 14:34:29 +03:00
2024-05-22 15:43:21 +03:00
2024-05-17 12:24:02 +02:00
2024-05-22 18:24:21 +03:00
2024-05-23 14:44:08 +03:00
2024-04-02 14:32:14 +01:00
2024-04-02 14:32:14 +01:00
2024-05-21 20:08:43 +03:00
2023-09-15 11:17:18 +01:00
2024-05-13 15:16:23 +03: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-05-13 15:16:23 +03:00
2024-05-13 15:16:23 +03:00
2024-03-08 22:24:30 +00:00
2024-02-11 01:34:31 +02:00
2024-05-13 15:16:23 +03: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-05-22 15:43:21 +03:00
2023-04-13 14:34:29 +03:00
2024-05-17 12:24:02 +02:00
2024-05-21 20:08:43 +03:00
2024-05-13 15:16:23 +03:00
2024-05-17 12:24:02 +02:00
2023-04-13 14:34:29 +03:00
2024-05-17 13:24:03 +01:00
2024-05-13 15:16:23 +03:00
2024-05-21 20:08:43 +03:00
2024-05-13 15:16:23 +03:00
2024-01-23 07:55:05 +02:00
2024-05-06 14:07:15 +01:00
2023-11-07 16:57:26 +00:00
2024-05-22 19:17:47 +01:00
2024-02-11 01:34:31 +02:00
2024-05-23 23:26:42 +02:00
2024-05-21 09:18:11 -05:00
2024-05-06 07:18:38 +03:00
2023-12-05 18:49:24 +02:00
2024-05-17 12:24:02 +02:00
2024-05-07 15:18:17 +00:00
2024-02-21 18:24:59 +01:00
2023-09-16 18:05:35 +03:00
2024-05-16 13:05:50 +02:00
2024-04-03 11:23:26 +01:00
2024-05-13 15:16:23 +03:00
2024-04-25 20:45:37 +03:00
2024-05-13 15:16:23 +03:00
2024-05-17 12:24:02 +02:00
2024-05-13 15:16:23 +03:00
2024-03-23 01:01:51 +00:00
2024-05-13 15:16:23 +03:00
2024-05-13 15:16:23 +03:00
2023-07-18 12:56:40 +03:00
2024-05-24 08:33:19 +00:00
2023-08-03 17:20:24 +03:00
2024-05-13 13:18:14 +01:00
2024-02-11 01:34:31 +02:00
2024-05-17 12:24:02 +02:00
2024-05-13 15:16:23 +03:00
2024-05-13 15:16:23 +03:00
2024-05-13 15:16:23 +03:00
2024-05-17 12:24:02 +02:00
2024-05-13 15:16:23 +03:00
2024-05-13 15:16:23 +03:00
2024-05-13 15:16:23 +03:00
2024-03-01 10:45:39 +01:00
2024-05-13 15:16:23 +03:00
2024-05-22 13:55:34 +00:00
2024-05-21 20:08:43 +03:00
2023-07-18 12:56:40 +03:00
2024-02-11 01:34:31 +02:00
2024-05-21 09:18:11 -05:00
2024-05-08 20:58:35 +03:00
2024-05-13 15:16:23 +03:00
2024-05-13 15:16:23 +03:00
2024-05-17 12:24:02 +02:00
2024-05-13 15:16:23 +03:00
2024-05-13 15:16:23 +03:00