Epic: pageserver: updated detach API (enable doing ancestor detach on timelines that have more than one ancestor) #10310
Labels
c/storage/pageserver
Component: storage: pageserver
t/feature
Issue type: feature, for new features or requests
Currently the timeline detach code can only run if a timeline has a single ancestor: it's harder to go gather layers from a stack of ancestors.
When archived branches are used like snapshots, it is important that after restoring from such a snapshot by creating a child branch, we can still detach it.
This is simplified a lot by the insight that the intervening snapshot branch is empty of writes, so all of the IO we do to copy layers can be sent to the ancestor.
When detaching such a branch, we also don't want to bring any children of the parent with us: this is different to when we're detaching a branch that was created via a PITR restore. This part's probably pretty simple, just skip doing it.
Tasks:
The text was updated successfully, but these errors were encountered: