Skip to content

Commit c6b1264

Browse files
committed
Add read lock + increment right before sending series request
Signed-off-by: Justin Jung <[email protected]>
1 parent 5cf96aa commit c6b1264

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

pkg/storegateway/bucket_stores.go

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -301,13 +301,8 @@ func (u *BucketStores) Series(req *storepb.SeriesRequest, srv storepb.Store_Seri
301301
defer spanLog.Span.Finish()
302302

303303
maxInflightRequests := u.cfg.BucketStore.MaxInflightRequests
304-
if maxInflightRequests > 0 {
305-
if u.inflightRequestCnt >= maxInflightRequests {
306-
return ErrTooManyInflightRequests
307-
}
308-
309-
u.incrementInflightRequestCnt()
310-
defer u.decrementInflightRequestCnt()
304+
if maxInflightRequests > 0 && u.getInflightRequestCnt() >= maxInflightRequests {
305+
return ErrTooManyInflightRequests
311306
}
312307

313308
userID := getUserIDFromGRPCContext(spanCtx)
@@ -330,6 +325,11 @@ func (u *BucketStores) Series(req *storepb.SeriesRequest, srv storepb.Store_Seri
330325
return nil
331326
}
332327

328+
if maxInflightRequests > 0 {
329+
u.incrementInflightRequestCnt()
330+
defer u.decrementInflightRequestCnt()
331+
}
332+
333333
err = store.Series(req, spanSeriesServer{
334334
Store_SeriesServer: srv,
335335
ctx: spanCtx,
@@ -338,6 +338,12 @@ func (u *BucketStores) Series(req *storepb.SeriesRequest, srv storepb.Store_Seri
338338
return err
339339
}
340340

341+
func (u *BucketStores) getInflightRequestCnt() int {
342+
u.inflightRequestMu.RLock()
343+
defer u.inflightRequestMu.RUnlock()
344+
return u.inflightRequestCnt
345+
}
346+
341347
func (u *BucketStores) incrementInflightRequestCnt() {
342348
u.inflightRequestMu.Lock()
343349
u.inflightRequestCnt++

0 commit comments

Comments
 (0)