feat(engine): DLE branching and pool data refreshing (#441)
Description
- move branch head to a new snapshot on the main branch
- rewrite snapshot properties (relations, branches) on initialization
- multiple snapshots on logical mode
Related issue
Examples
Init
zfs list -t snapshot -o name,dle:parent,dle:child,dle:branch,dle:root,dblab:datastateat -S dblab:datastateat
NAME DLE:PARENT DLE:CHILD DLE:BRANCH DLE:ROOT DBLAB:DATASTATEAT
oldest5@snapshot_20230111094623 - - - - 20230111094623
oldest5@snapshot_20230111084622 - - - - 20230111084622
oldest5/001-branch/20230111080244@20230111080244 oldest5@snapshot_20230111071023 - 001-branch - 20230111080244
oldest5@snapshot_20230111071023 - oldest5/001-branch/20230111080244@20230111080244 main 001-branch 20230111071023
$ zfs list -t snapshot -o name,dle:parent,dle:child,dle:branch,dle:root,dblab:datastateat -S dblab:datastateat
NAME DLE:PARENT DLE:CHILD DLE:BRANCH DLE:ROOT DBLAB:DATASTATEAT
oldest5@snapshot_20230111094623 - oldest5@snapshot_20230111084622 main - 20230111094623
oldest5@snapshot_20230111084622 oldest5@snapshot_20230111094623 oldest5@snapshot_20230111071023 - - 20230111084622
oldest5/001-branch/20230111080244@20230111080244 oldest5@snapshot_20230111071023 - 001-branch - 20230111080244
oldest5@snapshot_20230111071023 oldest5@snapshot_20230111084622 oldest5/001-branch/20230111080244@20230111080244 - 001-branch 20230111071023
New snapshot
$ zfs list -t snapshot -o name,dle:parent,dle:child,dle:branch,dle:root,dblab:datastateat -S dblab:datastateat
NAME DLE:PARENT DLE:CHILD DLE:BRANCH DLE:ROOT DBLAB:DATASTATEAT
oldest5@snapshot_20230111162622 - oldest5@snapshot_20230111094623 main - 20230111162622
oldest5@snapshot_20230111094623 oldest5@snapshot_20230111162622 oldest5@snapshot_20230111084622 - - 20230111094623
oldest5@snapshot_20230111084622 oldest5@snapshot_20230111094623 oldest5@snapshot_20230111071023 - - 20230111084622
oldest5/001-branch/20230111080244@20230111080244 oldest5@snapshot_20230111071023 - 001-branch - 20230111080244
oldest5@snapshot_20230111071023 oldest5@snapshot_20230111084622 oldest5/001-branch/20230111080244@20230111080244 - 001-branch 20230111071023
Checklist
-
MR description has been reviewed -
MR changes are functionally tested -
MR does NOT have API/CLI changes OR there are API/CLI changes and they have been reviewed & DOCS ARE ADJUSTED (reference doc, etc) -
MR does NOT have UI changes OR there are UI changes and they have been reviewed & UX IS REVIEWED
Closes #441
Edited by Artyom Kartasov