Skip to main content

export_data_concurrent

Function export_data_concurrent 

Source
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.