@@ -197,7 +197,8 @@ async function* streamResponseInner(
197
197
raw_data,
198
198
binary_data,
199
199
signal,
200
- tracker
200
+ tracker,
201
+ user_id : syncParams . user_id
201
202
} ) ;
202
203
203
204
await new Promise ( ( resolve ) => setTimeout ( resolve , 10 ) ) ;
@@ -214,6 +215,7 @@ interface BucketDataRequest {
214
215
binary_data : boolean | undefined ;
215
216
tracker : RequestTracker ;
216
217
signal : AbortSignal ;
218
+ user_id ?: string ;
217
219
}
218
220
219
221
async function * bucketDataInBatches ( request : BucketDataRequest ) {
@@ -262,8 +264,19 @@ async function* bucketDataBatch(request: BucketDataRequest): AsyncGenerator<Buck
262
264
const checkpointOp = BigInt ( checkpoint ) ;
263
265
let checkpointInvalidated = false ;
264
266
265
- const [ _ , release ] = await syncSemaphore . acquire ( ) ;
267
+ if ( syncSemaphore . isLocked ( ) ) {
268
+ logger . info ( 'Sync concurrency limit reached, waiting for lock' , { user_id : request . user_id } ) ;
269
+ }
270
+ const [ value , release ] = await syncSemaphore . acquire ( ) ;
266
271
try {
272
+ if ( value <= 3 ) {
273
+ // This can be noisy, so we only log when we get close to the
274
+ // concurrency limit.
275
+ logger . info ( `Got sync lock. Slots available: ${ value - 1 } ` , {
276
+ user_id : request . user_id ,
277
+ sync_data_slots : value - 1
278
+ } ) ;
279
+ }
267
280
// Optimization: Only fetch buckets for which the checksums have changed since the last checkpoint
268
281
// For the first batch, this will be all buckets.
269
282
const filteredBuckets = new Map ( bucketsToFetch . map ( ( bucket ) => [ bucket , dataBuckets . get ( bucket ) ! ] ) ) ;
@@ -331,6 +344,13 @@ async function* bucketDataBatch(request: BucketDataRequest): AsyncGenerator<Buck
331
344
}
332
345
}
333
346
} finally {
347
+ if ( value <= 3 ) {
348
+ // This can be noisy, so we only log when we get close to the
349
+ // concurrency limit.
350
+ logger . info ( `Releasing sync lock` , {
351
+ user_id : request . user_id
352
+ } ) ;
353
+ }
334
354
release ( ) ;
335
355
}
336
356
}
0 commit comments