Skip to content

Accelerate exhaustive Azure AI Search backups with adaptive parallel export #1094

Description

@paullizer

Summary

Make Azure AI Search backup export exhaustive and fast through bounded concurrency, stable pagination, adaptive throttling, durable checkpoints, and per-document progress metadata.

User Value

Administrators need all Search documents backed up predictably at production scale. The current serial index iterator does not expose page-level progress, throughput, retries, or a defensible resume position when Azure AI Search throttles or a worker is interrupted.

Proposed Behavior

  • Export supported indexes concurrently within a configurable bound while keeping each index's pagination deterministic and resumable.
  • Define an exhaustive traversal strategy that remains correct beyond 100,000 documents and does not rely on deep skip paging. Pin a stable source cutoff/version strategy where the service permits it and document concurrent-write semantics.
  • Use bounded pages/batches and durable checkpoints with source index, cursor/keyset position, counts, bytes, and latest-item backup state.
  • Honor 429/503 service guidance, including Retry-After, with exponential backoff, jitter, retry budgets, and adaptive concurrency reduction/recovery.
  • Report per-index and aggregate documents, bytes, pages, retries, throttle time, failed/skipped documents, elapsed time, documents/sec, and bytes/sec.
  • Preserve index schema artifacts and validate that backed-up document fields are compatible with the captured schema needed by Add Data Management backup restore capability #1091 restore.
  • Continue independent indexes/documents when safe, persist failures/skips, and fail only when exhaustive-manifest integrity cannot be established.

Acceptance Criteria

  • All supported Search indexes can export concurrently within configured bounds while each index remains deterministic and resumable.
  • The traversal strategy is tested above 100,000 logical results or with an equivalent boundary harness and cannot silently truncate documents.
  • 429/503 responses honor service retry guidance and adjust pressure without infinite retry or busy looping.
  • Job progress exposes current index/page, documents and bytes processed, retries/throttle duration, skip/failure counts, and throughput.
  • Interrupted exports resume from verified checkpoints without duplicating or omitting documents in the manifest.
  • Latest-only backup item state is recorded using the shared contract and does not require retaining per-item attempt history.
  • Schema plus document artifacts are internally validated for restore, and unsafe partial indexes are clearly marked unavailable.
  • Focused tests cover high-cardinality pagination, concurrent index export, throttling, checkpoint resume, skip behavior, schema compatibility, and secret-safe telemetry.

Notes

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

Status
Released

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions