From a8e652d47e3dec7e588b3bb3dddecc20302a0f98 Mon Sep 17 00:00:00 2001 From: "Alex Chi Z." <4198311+skyzh@users.noreply.github.com> Date: Wed, 14 May 2025 17:25:57 +0800 Subject: [PATCH] rfc: add bottommost garbage-collection compaction (#8425) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add the RFC for bottommost garbage-collection compaction --------- Signed-off-by: Alex Chi Z Co-authored-by: Arpad Müller --- docs/rfcs/043-bottom-most-gc-compaction.md | 194 ++++++++++++++++++ .../01-basic-idea.svg | 135 ++++++++++++ .../03-retain-lsn.svg | 141 +++++++++++++ .../05-btmgc-parent.svg | 187 +++++++++++++++++ .../06-btmgc-child.svg | 184 +++++++++++++++++ .../07-btmgc-analysis-1.svg | 180 ++++++++++++++++ .../08-optimization.svg | 158 ++++++++++++++ .../09-btmgc-analysis-2.svg | 184 +++++++++++++++++ .../10-btmgc-analysis-3.svg | 81 ++++++++ .../11-btmgc-analysis-4.svg | 81 ++++++++ .../12-staircase-test-gc-feedback.png | Bin 0 -> 145516 bytes .../13-job-split.svg | 176 ++++++++++++++++ 12 files changed, 1701 insertions(+) create mode 100644 docs/rfcs/043-bottom-most-gc-compaction.md create mode 100644 docs/rfcs/images/036-bottom-most-gc-compaction/01-basic-idea.svg create mode 100644 docs/rfcs/images/036-bottom-most-gc-compaction/03-retain-lsn.svg create mode 100644 docs/rfcs/images/036-bottom-most-gc-compaction/05-btmgc-parent.svg create mode 100644 docs/rfcs/images/036-bottom-most-gc-compaction/06-btmgc-child.svg create mode 100644 docs/rfcs/images/036-bottom-most-gc-compaction/07-btmgc-analysis-1.svg create mode 100644 docs/rfcs/images/036-bottom-most-gc-compaction/08-optimization.svg create mode 100644 docs/rfcs/images/036-bottom-most-gc-compaction/09-btmgc-analysis-2.svg create mode 100644 docs/rfcs/images/036-bottom-most-gc-compaction/10-btmgc-analysis-3.svg create mode 100644 docs/rfcs/images/036-bottom-most-gc-compaction/11-btmgc-analysis-4.svg create mode 100644 docs/rfcs/images/036-bottom-most-gc-compaction/12-staircase-test-gc-feedback.png create mode 100644 docs/rfcs/images/036-bottom-most-gc-compaction/13-job-split.svg diff --git a/docs/rfcs/043-bottom-most-gc-compaction.md b/docs/rfcs/043-bottom-most-gc-compaction.md new file mode 100644 index 0000000000..4bba758b31 --- /dev/null +++ b/docs/rfcs/043-bottom-most-gc-compaction.md @@ -0,0 +1,194 @@ +# Bottommost Garbage-Collection Compaction + +## Summary + +The goal of this doc is to propose a way to reliably collect garbages below the GC horizon. This process is called bottom-most garbage-collect-compaction, and is part of the broader legacy-enhanced compaction that we plan to implement in the future. + +## Motivation + +The current GC algorithm will wait until the covering via image layers before collecting the garbages of a key region. Relying on image layer generation to generate covering images is not reliable. There are prior arts to generate feedbacks from the GC algorithm to the image generation process to accelerate garbage collection, but it slows down the system and creates write amplification. + +# Basic Idea + +![](images/036-bottom-most-gc-compaction/01-basic-idea.svg) + +The idea of bottom-most compaction is simple: we rewrite all layers that are below or intersect with the GC horizon to produce a flat level of image layers at the GC horizon and deltas above the GC horizon. In this process, + +- All images and deltas ≤ GC horizon LSN will be dropped. This process collects garbages. +- We produce images for all keys involved in the compaction process at the GC horizon. + +Therefore, it can precisely collect all garbages below the horizon, and reduce the space amplification, i.e., in the staircase pattern (test_gc_feedback). + +![The staircase pattern in test_gc_feedback in the original compaction algorithm. The goal is to collect garbage below the red horizontal line.](images/036-bottom-most-gc-compaction/12-staircase-test-gc-feedback.png) + +The staircase pattern in test_gc_feedback in the original compaction algorithm. The goal is to collect garbage below the red horizontal line. + +# Branches + +With branches, the bottom-most compaction should retain a snapshot of the keyspace at the `retain_lsn` so that the child branch can access data at the branch point. This requires some modifications to the basic bottom-most compaction algorithm that we sketched above. + +![](images/036-bottom-most-gc-compaction/03-retain-lsn.svg) + +## Single Timeline w/ Snapshots: handle `retain_lsn` + +First let’s look into the case where we create branches over the main branch but don’t write any data to them (aka “snapshots”). + +The bottom-most compaction algorithm collects all deltas and images of a key and can make decisions on what data to retain. Given that we have a single key’s history as below: + +``` +LSN 0x10 -> A +LSN 0x20 -> append B +retain_lsn: 0x20 +LSN 0x30 -> append C +LSN 0x40 -> append D +retain_lsn: 0x40 +LSN 0x50 -> append E +GC horizon: 0x50 +LSN 0x60 -> append F +``` + +The algorithm will produce: + +``` +LSN 0x20 -> AB +(drop all history below the earliest retain_lsn) +LSN 0x40 -> ABCD +(assume the cost of replaying 2 deltas is higher than storing the full image, we generate an image here) +LSN 0x50 -> append E +(replay one delta is cheap) +LSN 0x60 -> append F +(keep everything as-is above the GC horizon) +``` + +![](images/036-bottom-most-gc-compaction/05-btmgc-parent.svg) + +What happens is that we balance the space taken by each retain_lsn and the cost of replaying deltas during the bottom-most compaction process. This is controlled by a threshold. If `count(deltas) < $threshold`, the deltas will be retained. Otherwise, an image will be generated and the deltas will be dropped. + +In the example above, the `$threshold` is 2. + +## Child Branches with data: pull + partial images + +In the previous section we have shown how bottom-most compaction respects `retain_lsn` so that all data that was readable at branch creation remains readable. But branches can have data on their own, and that data can fall out of the branch’s PITR window. So, this section explains how we deal with that. + +We will run the same bottom-most compaction for these branches, to ensure the space amplification on the child branch is reasonable. + +``` +branch_lsn: 0x20 +LSN 0x30 -> append P +LSN 0x40 -> append Q +LSN 0x50 -> append R +GC horizon: 0x50 +LSN 0x60 -> append S +``` + +Note that bottom-most compaction happens on a per-timeline basis. When it processes this key, it only reads the history from LSN 0x30 without a base image. Therefore, on child branches, the bottom-most compaction process will make image creation decisions based on the same `count(deltas) < $threshold` criteria, and if it decides to create an image, the base image will be retrieved from the ancestor branch. + +``` +branch_lsn: 0x20 +LSN 0x50 -> ABPQR +(we pull the image at LSN 0x20 from the ancestor branch to get AB, and then apply append PQ to the page; we replace the record at 0x40 with an image and drop the delta) +GC horizon: 0x50 +LSN 0x60 -> append S +``` + +![](images/036-bottom-most-gc-compaction/06-btmgc-child.svg) + +Note that for child branches, we do not create image layers for the images when bottom-most compaction runs. Instead, we drop the 0x30/0x40/0x50 delta records and directly place the image ABPQR@0x50 into the delta layer, which serves as a sparse image layer. For child branches, if we create image layers, we will need to put all keys in the range into the image layer. This causes space bloat and slow compactions. In this proposal, the compaction process will only compact and process keys modified inside the child branch. + +# Result + +Bottom-most compaction ensures all garbage under the GC horizon gets collected right away (compared with “eventually” in the current algorithm). Meanwhile, it generates images at each of the retain_lsn to ensure branch reads are fast. As we make per-key decisions on whether to generate an image or not, the theoretical lower bound of the storage space we need to retain for a branch is lower than before. + +Before: min(sum(logs for each key), sum(image for each key)), for each partition — we always generate image layers on a key range + +After: sum(min(logs for each key, image for each key)) + +# Compaction Trigger + +The bottom-most compaction can be automatically triggered. The goal of the trigger is that it should ensure a constant factor for write amplification. Say that the user write 1GB of WAL into the system, we should write 1GB x C data to S3. The legacy compaction algorithm does not have such a constant factor C. The data we write to S3 is quadratic to the logical size of the database (see [A Theoretical View of Neon Storage](https://www.notion.so/A-Theoretical-View-of-Neon-Storage-8d7ad7555b0c41b2a3597fa780911194?pvs=21)). + +We propose the following compaction trigger that generates a constant write amplification factor. Write amplification >= total writes to S3 / total user writes. We only analyze the write amplification caused by the bottom-most GC-compaction process, ignoring the legacy create image layers amplification. + +Given that we have ***X*** bytes of the delta layers above the GC horizon, ***A*** bytes of the delta layers intersecting with the GC horizon, ***B*** bytes of the delta layers below the GC horizon, and ***C*** bytes of the image layers below the GC horizon. + +The legacy GC + compaction loop will always keep ***A*** unchanged, reduce ***B and C*** when there are image layers covering the key range. This yields 0 write amplification (only file deletions) and extra ***B*** bytes of space. + +![](images/036-bottom-most-gc-compaction/09-btmgc-analysis-2.svg) + +The bottom-most compaction proposed here will split ***A*** into deltas above the GC horizon and below the GC horizon. Everything below the GC horizon will be image layers after the compaction (not considering branches). Therefore, this yields ***A+C*** extra write traffic each iteration, plus 0 extra space. + +![](images/036-bottom-most-gc-compaction/07-btmgc-analysis-1.svg) + +Also considering read amplification (below the GC horizon). When a read request reaches the GC horizon, the read amplification will be (A+B+C)/C=1+(A+B)/C. Reducing ***A*** and ***B*** can help reduce the read amplification below the GC horizon. + +The metrics-based trigger will wait until a point that space amplification is not that large and write amplification is not that large before the compaction gets triggered. The trigger is defined as **(A+B)/C ≥ 1 (or some other ratio)**. + +To reason about this trigger, consider the two cases: + +**Data Ingestion** + +User keeps ingesting data into the database, which indicates that WAL size roughly equals to the database logical size. The compaction gets triggered only when the newly-written WAL roughly equals to the current bottom-most image size (=X). Therefore, it’s triggered when the database size gets doubled. This is a reasonable amount of work. Write amplification is 2X/X=1 for the X amount of data written. + +![](images/036-bottom-most-gc-compaction/10-btmgc-analysis-3.svg) + +**Updates/Deletion** + +In this case, WAL size will be larger than the database logical size ***D***. The compaction gets triggered for every ***D*** bytes of WAL written. Therefore, for every ***D*** bytes of WAL, we rewrite the bottom-most layer, which produces an extra ***D*** bytes of write amplification. This incurs exactly 2x write amplification (by the write of D), 1.5x write amplification (if we count from the start of the process) and no space amplification. + +![](images/036-bottom-most-gc-compaction/11-btmgc-analysis-4.svg) + +Note that here I try to reason that write amplification is a constant (i.e., the data we write to S3 is proportional to the data the user write). The main problem with the current legacy compaction algorithm is that write amplification is proportional to the database size. + +The next step is to optimize the write amplification above the GC horizon (i.e., change the image creation criteria, top-most compaction, or introduce tiered compaction), to ensure the write amplification of the whole system is a constant factor. + +20GB layers → +20GB layers → delete 20GB, need 40GB temporary space + +# Sub-Compactions + +The gc-compaction algorithm may take a long time and we need to split the job into multiple sub-compaction jobs. + +![](images/036-bottom-most-gc-compaction/13-job-split.svg) + +As in the figure, the auto-trigger schedules a compaction job covering the full keyspace below a specific LSN. In such case that we cannot finish compacting it in one run in a reasonable amount of time, the algorithm will vertically split it into multiple jobs (in this case, 5). + +Each gc-compaction job will create one level of delta layers and one flat level of image layers for each LSN. Those layers will be automatically split based on size, which means that if the sub-compaction job produces 1GB of deltas, it will produce 4 * 256MB delta layers. For those layers that is not fully contained within the sub-compaction job rectangles, it will be rewritten to only contain the keys outside of the key range. + +# Implementation + +The main implementation of gc-compaction is in `compaction.rs`. + +* `compact_with_gc`: The main loop of gc-compaction. It takes a rectangle range of the layer map and compact that specific range. It selects layers intersecting with the rectangle, downloads the layers, creates the k-merge iterator to read those layers in the key-lsn order, and decide which keys to keep or insert a reconstructed page. The process is the basic unit of a gc-compaction and is not interruptable. If the process gets preempted by L0 compaction, it has to be restarted from scratch. For layers overlaps with the rectangle but not fully inside, the main loop will also rewrite them so that the new layer (or two layers if both left and right ends are outside of the rectangle) has the same LSN range as the original one but only contain the keys outside of the compaction range. +* `gc_compaction_split_jobs`: Splits a big gc-compaction job into sub-compactions based on heuristics in the layer map. The function looks at the layer map and splits the compaction job based on the size of the layers so that each compaction job only pulls ~4GB of layer files. +* `generate_key_retention` and `KeyHistoryRetention`: Implements the algorithm described in the "basic idea" and "branch" chapter of this RFC. It takes a vector of history of a key (key-lsn-value) and decides which LSNs of the key to retain. If there are too many deltas between two retain_lsns, it will reconstruct the page and insert an image into the compaction result. Also, we implement `KeyHistoryRetention::verify` to ensure the generated result is not corrupted -- all retain_lsns and all LSNs above the gc-horizon should be accessible. +* `GcCompactionQueue`: the automatic trigger implementation for gc-compaction. `GcCompactionQueue::iteration` is called at the end of the tenant compaction loop. It will then call `trigger_auto_compaction` to decide whether to trigger a gc-compaction job for this tenant. If yes, the compaction-job will be added to the compaction queue, and the queue will be slowly drained once there are no other compaction jobs running. gc-compaction has the lowest priority. If a sub-compaction job is not successful or gets preempted by L0 compaction (see limitations for reasons why a compaction job would fail), it will _not_ be retried. +* Changes to `index_part.json`: we added a `last_completed_lsn` field to the index part for the auto-trigger to decide when to trigger a compaction. +* Changes to the read path: when gc-compaction updates the layer map, all reads need to wait. See `gc_compaction_layer_update_lock` and comments in the code path for more information. + +Gc-compaction can also be scheduled over the HTTP API. Example: + +``` +curl 'localhost:9898/v1/tenant/:tenant_id/timeline/:timeline_id/compact?enhanced_gc_bottom_most_compaction=true&dry_run=true' -X PUT -H "Content-Type: application/json" -d '{"scheduled": true, "compact_key_range": { "start": "000000067F0000A0000002A1CF0100000000", "end": "000000067F0000A0000002A1D70100000000" } }' +``` + +The `dry_run` mode can be specified in the query string so that the compaction will go through all layers to estimate how much space can be saved without writing the compaction result into the layer map. + +The auto-trigger is controlled by tenant-level flag `gc_compaction_enabled`. If this is set to false, no gc-compaction will be automatically scheduled on this tenant (but manual trigger still works). + +# Next Steps + +There are still some limitations of gc-compaction itself that needs to be resolved and tested, + +- gc-compaction is currently only automatically triggered on root branches. We have not tested gc-compaction on child branches in staging. +- gc-compaction will skip aux key regions because of the possible conflict with the assumption of aux file tombstones. +- gc-compaction does not consider keyspaces at retain_lsns and only look at keys in the layers. This also causes us giving up some sub-compaction jobs because a key might have part of its history available due to traditional GC removing part of the history. +- We limit gc-compaction to run over shards <= 150GB to avoid gc-compaction taking too much time blocking other compaction jobs. The sub-compaction split algorithm needs to be improved to be able to split vertically and horizontally. Also, we need to move the download layer process out of the compaction loop so that we don't block other compaction jobs for too long. +- The compaction trigger always schedules gc-compaction from the lowest LSN to the gc-horizon. Currently we do not schedule compaction jobs that only selects layers in the middle. Allowing this could potentially reduce the number of layers read/write throughout the process. +- gc-compaction will give up if there are too many layers to rewrite or if there are not enough disk space for the compaction. +- gc-compaction sometimes fails with "no key produced during compaction", which means that all existing keys within the compaction range can be collected; but we don't have a way to write this information back to the layer map -- we cannot generate an empty image layer. +- We limit the maximum size of deltas for a single key to 512MB. If above this size, gc-compaction will give up. This can be resolved by changing `generate_key_retention` to be a stream instead of requiring to collect all the key history. + +In the future, + +- Top-most compaction: ensure we always have an image coverage for the latest data (or near the latest data), so that reads will be fast at the latest LSN. +- Tiered compaction on deltas: ensure read from any LSN is fast. +- Per-timeline compaction → tenant-wide compaction? diff --git a/docs/rfcs/images/036-bottom-most-gc-compaction/01-basic-idea.svg b/docs/rfcs/images/036-bottom-most-gc-compaction/01-basic-idea.svg new file mode 100644 index 0000000000..7107198c0a --- /dev/null +++ b/docs/rfcs/images/036-bottom-most-gc-compaction/01-basic-idea.svg @@ -0,0 +1,135 @@ + + + + + + 01-basic-idea + + + Layer 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GC Horizon + + + + + Images + at earlier LSN + + + + + Deltas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Deltas + + + + + Images + at GC LSN + + + + + + Deltas above GC Horizon + + + + + + Deltas below GC Horizon + + + + + + Deltas above GC Horizon + + + + + + Deltas and image below GC Horizon gets garbage-collected + + + + + WAL replay of deltas+image below GC Horizon + Reshuffle deltas + + + + + diff --git a/docs/rfcs/images/036-bottom-most-gc-compaction/03-retain-lsn.svg b/docs/rfcs/images/036-bottom-most-gc-compaction/03-retain-lsn.svg new file mode 100644 index 0000000000..792db6d69e --- /dev/null +++ b/docs/rfcs/images/036-bottom-most-gc-compaction/03-retain-lsn.svg @@ -0,0 +1,141 @@ + + + + + + + + + + + + 03-retain-lsn + + + Layer 1 + + + + + + + + + + + + + + + + + + GC Horizon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + retain_lsn 1 + + + + + + + + retain_lsn 2 + + + + + + + + retain_lsn 3 + + + + + + + + retain_lsn 4 + + + + + + + + + Dependent Branch + + + + + retain_lsn 3 + + + + + + + + Branch GC Horizon + + + + + + + + + Partial Image Coverage + + + + + + + + + diff --git a/docs/rfcs/images/036-bottom-most-gc-compaction/05-btmgc-parent.svg b/docs/rfcs/images/036-bottom-most-gc-compaction/05-btmgc-parent.svg new file mode 100644 index 0000000000..9593ed969e --- /dev/null +++ b/docs/rfcs/images/036-bottom-most-gc-compaction/05-btmgc-parent.svg @@ -0,0 +1,187 @@ + + + + + + 05-btmgc-parent + + + Layer 1 + + + + + Append C@0x30 + + + + + + + + + + + + + + + + GC Horizon + + + + + + + Append F@0x60 + + + + + + + + + + + + + + + Append E@0x50 + Append D@0x40 + + + + + + + + + + + + + + + A@0x10, Append B@0x20 + + + + + + + + + + + + + + + + 0x20 + + + + + 0x50 + + + + + + + + 0x40 + + + + + + + + GC Horizon + + + + + + + Append F@0x60 + + + + + + + Append E@0x50 + + + + + + + + 0x20 + + + + + 0x50 + + + + + + + + 0x40 + + + + + + + AB@0x20 + + + + + + + + + + + + + + + ABCD@0x40 + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/rfcs/images/036-bottom-most-gc-compaction/06-btmgc-child.svg b/docs/rfcs/images/036-bottom-most-gc-compaction/06-btmgc-child.svg new file mode 100644 index 0000000000..b8a93d5b5f --- /dev/null +++ b/docs/rfcs/images/036-bottom-most-gc-compaction/06-btmgc-child.svg @@ -0,0 +1,184 @@ + + + + + + 06-btmgc-child + + + Layer 1 + + + + + + + + + Append P@0x30 + + + + + + + + + + + + + + + + GC Horizon + + + + + + + Append S@0x60 + + + + + + + + + + + + + + + Append R@0x50 + Append Q@0x40 + + + + + + + + + + + + + 0x50 + + + + + + + + 0x20 + + + + + + + AB@0x20 + + + + + + + + + + + + + Ancestor Branch + + + + + + + + + + + + GC Horizon + + + + + + + Append S@0x60 + + + + + 0x50 + + + + + + + + 0x20 + + + + + + + AB + @0x20 + + + + + + + + + + + + + Ancestor Branch + + + + + + + + + + + AB + PQR@0x50 + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/rfcs/images/036-bottom-most-gc-compaction/07-btmgc-analysis-1.svg b/docs/rfcs/images/036-bottom-most-gc-compaction/07-btmgc-analysis-1.svg new file mode 100644 index 0000000000..65034226da --- /dev/null +++ b/docs/rfcs/images/036-bottom-most-gc-compaction/07-btmgc-analysis-1.svg @@ -0,0 +1,180 @@ + + + + + + 07-btmgc-analysis-1 + + + Layer 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GC Horizon + + + + + Images + at earlier LSN + + + + + Deltas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Deltas + + + + + Images + at GC LSN + + + + + + Deltas above GC Horizon + + + + + + Deltas below GC Horizon + + + + + + Deltas above GC Horizon + + + + + + Deltas and image below GC Horizon gets garbage-collected + + + + + size=A + + + + + + + + + + + + + + + + + + + + + + + + + + + + + size=B + + + + + size=C + + + + + A + + + + + + B + + + + + + diff --git a/docs/rfcs/images/036-bottom-most-gc-compaction/08-optimization.svg b/docs/rfcs/images/036-bottom-most-gc-compaction/08-optimization.svg new file mode 100644 index 0000000000..16a17ec56e --- /dev/null +++ b/docs/rfcs/images/036-bottom-most-gc-compaction/08-optimization.svg @@ -0,0 +1,158 @@ + + + + + + 08-optimization + + + Layer 1 + + + + + + + + + + + + + + GC Horizon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0x20 + + + + + + + + 0x50 + + + + + 0x60 + + + + + + + + 0x40 + + + + + + + + + + + + + + + + GC Horizon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0x20 + + + + + 0x70 + + + + + + + + 0x40 + + + + + + + + + + + + + + + + 0x50 + + + + + diff --git a/docs/rfcs/images/036-bottom-most-gc-compaction/09-btmgc-analysis-2.svg b/docs/rfcs/images/036-bottom-most-gc-compaction/09-btmgc-analysis-2.svg new file mode 100644 index 0000000000..243f038c88 --- /dev/null +++ b/docs/rfcs/images/036-bottom-most-gc-compaction/09-btmgc-analysis-2.svg @@ -0,0 +1,184 @@ + + + + + + 09-btmgc-analysis-2 + + + Layer 1 + + + + + C + + + + + + + C + + + + + + + C + + + + + + + A + + + + + + + A + + + + + + + A + + + + + + + A + + + + + + + A + + + + + + + + GC Horizon + + + + + + + + + + + B + + + + + + + B + + + + + + + B + + + + + + + C + + + + + + + C + + + + + + + A + + + + + + + A + + + + + + + A + + + + + + + A + + + + + + + A + + + + + + + + GC Horizon + + + + + + + B + + + + + + + C + + + + + B + + + + + + C + + + + + + diff --git a/docs/rfcs/images/036-bottom-most-gc-compaction/10-btmgc-analysis-3.svg b/docs/rfcs/images/036-bottom-most-gc-compaction/10-btmgc-analysis-3.svg new file mode 100644 index 0000000000..1e49ec017b --- /dev/null +++ b/docs/rfcs/images/036-bottom-most-gc-compaction/10-btmgc-analysis-3.svg @@ -0,0 +1,81 @@ + + + + + + 10-btmgc-analysis-3 + + + Layer 1 + + + + + 1/5 X + + + + + + + 1/5 X + + + + + + + 1/5 X + + + + + + + 1/5 X + + + + + + + + GC Horizon + + + + + + + X + + + + + + + + + + + + GC Horizon + + + + + + + 2X + + + + + + + 1/5 X + + + + + diff --git a/docs/rfcs/images/036-bottom-most-gc-compaction/11-btmgc-analysis-4.svg b/docs/rfcs/images/036-bottom-most-gc-compaction/11-btmgc-analysis-4.svg new file mode 100644 index 0000000000..510d7a0c3e --- /dev/null +++ b/docs/rfcs/images/036-bottom-most-gc-compaction/11-btmgc-analysis-4.svg @@ -0,0 +1,81 @@ + + + + + + 11-btmgc-analysis-4 + + + Layer 1 + + + + + 1/5 D + + + + + + + 1/5 D + + + + + + + 1/5 D + + + + + + + 1/5 D + + + + + + + 1/5 D + + + + + + + + GC Horizon + + + + + + + D + + + + + + + + + + + + GC Horizon + + + + + + + D + + + + + diff --git a/docs/rfcs/images/036-bottom-most-gc-compaction/12-staircase-test-gc-feedback.png b/docs/rfcs/images/036-bottom-most-gc-compaction/12-staircase-test-gc-feedback.png new file mode 100644 index 0000000000000000000000000000000000000000..c106f3ee899d46d90c9e1c0b630d3e73075b1f67 GIT binary patch literal 145516 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 + + + + + gc-compaction-split + + + Layer 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + branch point + + + + + + + + last branch point + + + + + + Job 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + branch point + + + + + + + + last branch point + + + + + + Job 2 + + + + + + Job 3 + + + + + + Job 4 + + + + + + Job 5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Delta Layer + + + + + + + Image Layer + + + + +