mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-04 00:47:00 +01:00
feat(core,fuse): queued ops name their node and folder by local id
Schema 39 adds pending_op.lid and parent_lid, backfilled from nodes. Every op queued or retargeted gets both, and a create gets its row before it is queued. The claim reads a parent's uid through parent_lid, and a landing folder rewrites the ops made inside it by local id instead of by its placeholder string. Ops queued against a row Drive listed follow it when it is merged into the landing one.
This commit is contained in:
1 parent
f029e652a1
commit
ae6650f7e0
7 files changed
+227
-33
No files matched your search
+3
-2
@@ -11,8 +11,9 @@ scratch (user data in `staging/` and `recovery/` is never touched by this).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
Schema: **38**. The queue table is rebuilt so an id is never given out twice; queued changes
|
||||
are kept. Queued changes get a column for the reason Drive refused them.
|
||||
Schema: **39**. The queue table is rebuilt so an id is never given out twice; queued changes
|
||||
are kept. Queued changes get a column for the reason Drive refused them, and name their file
|
||||
and folder by local id as well as by Drive's id.
|
||||
|
||||
### Added
|
||||
- **Sync issues.** A change Drive refuses because the storage is full, access was taken away,
|
||||
|
||||
@@ -30,6 +30,11 @@ Tracks `docs/MILESTONE-3.0.0.md`. Update it with every commit that moves a phase
|
||||
cut.
|
||||
2. **Planner and executor (§5.4, §5.5)**: ops keyed by local id; remove `mint_local_uid`,
|
||||
`finish_create` and `adopt_real_uid`; a landing create sets `remote_uid` on its row.
|
||||
- [x] Queued ops carry `lid` and `parent_lid` (schema 39). The claim reads the parent's uid
|
||||
through `parent_lid`, and a landing folder rewrites the ops inside it by local id.
|
||||
- [ ] The tree links by lid (`nodes.parent_lid`).
|
||||
- [ ] No more placeholders: `nodes.uid` is `NULL` until a node lands.
|
||||
- [ ] An executor that runs ops in dependency order, many at once.
|
||||
3. **Speed (§7)**: run independent ops in parallel, batch trashes and moves; measure 1,000 files
|
||||
and 100 folders on Wi-Fi against LAN (target: within 10 %).
|
||||
- [x] The measurement: `a_thousand_files_drain_as_fast_on_wifi_as_on_lan` in `sim/daemon.rs`,
|
||||
|
||||
Reference in new issue
Block a user