async fn export_data_concurrent(
context: &ExportContext<'_>,
storage: &dyn SnapshotStorage,
manifest: &mut Manifest,
chunk_parallelism: usize,
progress: &dyn ProgressReporter,
) -> Result<()>Expand description
Exports up to chunk_parallelism chunks concurrently on the client.
The coordinator owns all manifest mutation/persistence: it marks chunks
InProgress and persists the manifest before polling their futures, then
applies each chunk result and persists again on completion. The export
futures only run COPY DATABASE and collect files; they never touch the
manifest, so manifest writes stay serialized in this task.
On the first chunk failure we stop scheduling new chunks but let already in-flight chunks finish and persist their final status, then return the first error.