Files
spacedrive/docs/core/design
Jamie Pineandcapy-ai-staging[bot] 2d781bf4b1 Rebuild a drive's arena from its source stores when the snapshot is missing or quarantined (#3139)
* Rebuild a drive's arena from its source stores when the snapshot is missing or quarantined

Co-authored-by: capy-ai-staging[bot] <305915985+capy-ai-staging[bot]@users.noreply.github.com>

* Store rebuild runs off the request path and skips a partition a restore already filled

Every reader on a drive funnels through the restore gate, so the fill now
runs on its own task: the gate resolves as soon as it starts, roots stay in
progress until they land and listings serve the store meanwhile. A partition
rebuild_quiesced already filled resolves as restored without a second read.
The fill reads a rebuild-only select without the content join: 18.9 s for a
1.01M-record store in release, from 33.1 s.

Co-authored-by: capy-ai-staging[bot] <305915985+capy-ai-staging[bot]@users.noreply.github.com>

* A browse beneath a source being filled serves the store instead of clearing the subtree

is_under_indexing is the ancestor-aware check: a store fill or recursive
walk over a root covers everything beneath it, and a browse dispatched into
that tree ran clear_for_reindex over what the fill had already placed. The
acceptance test lists a subdirectory during the fill and the deepest one
after it. REBUILD_PAGE moved above the fill's doc block.

Co-authored-by: capy-ai-staging[bot] <305915985+capy-ai-staging[bot]@users.noreply.github.com>

* Scope the mid-fill store answer to roots being filled from a store

indexing_in_progress also holds walk roots, whose stores cannot promise an
answer beneath them, so the prefix gate reads a separate filling_from_store
set and falls through to the ordinary dispatch when the store has no row.

Co-authored-by: capy-ai-staging[bot] <305915985+capy-ai-staging[bot]@users.noreply.github.com>

---------

Co-authored-by: capy-ai-staging[bot] <305915985+capy-ai-staging[bot]@users.noreply.github.com>
2026-10-08 13:35:37 +00:00
..