Skip to main content

SYNC_READ_CONCURRENCY

Static SYNC_READ_CONCURRENCY 

Source
static SYNC_READ_CONCURRENCY: Semaphore
Expand description

How many com.atproto.sync.* reads may hold a blocking-pool thread at once, across every caller.

The same bound crate::blobs’s BLOB_READ_CONCURRENCY puts on getBlob, and for the same reason: these reads run on the pool session creation, provisioning, deletion and firehose publishing also draw from, and each can rebuild the Merkle search tree and sign a commit. Without a bound, crate::MAX_CONCURRENT_REQUESTS is the only one, and the deployment runs two async workers.

A caller that finds every permit taken waits for one, and REQUEST_TIMEOUT’s layer answers 503 if that wait outlasts the request.