Skip to main content

Scaling & Parallelism

The Metadata Cleanup service uses three independent queues to maximize throughput.

Why Three Queues?​

Each image type has its own Table Storage tables and index tables. By using separate queues:

  1. Independent scaling β€” If single images generate more metadata than panoramics, the single queue processes more without waiting for pano cleanup to finish
  2. Isolated failures β€” A failure in panoramic cleanup doesn't block single image cleanup
  3. Parallelism β€” All three queue processors run concurrently on the same Functions host

Queue Configuration​

QueueImage TypeTables Affected
single-metadata-deleteSingle imagesSingleImageMetadata, SingleImageMetadataIndex
pano-metadata-deletePanoramic imagesPanoImageMetadata, PanoImageMetadataIndex
prestitch-metadata-deletePre-stitched archivesPreStitchImageMetadata, PreStitchImageMetadataIndex

Throughput​

Azure Functions processes queue messages with configurable batch sizes and polling intervals. The cleanup function can handle hundreds of cameras' worth of metadata deletion in each scheduled run.