Skip to content

Commit 5b01e76

Browse files
committed
Re-enqueue 429 requests if there are multiple query-schedulers
Signed-off-by: Xiaochao Dong (@damnever) <[email protected]>
1 parent 963deb1 commit 5b01e76

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

pkg/frontend/v2/frontend.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,8 @@ type frontendRequest struct {
8686

8787
enqueue chan enqueueResult
8888
response chan *frontendv2pb.QueryResultRequest
89+
90+
retryOnTooManyOutstandingRequests bool
8991
}
9092

9193
type enqueueStatus int
@@ -192,6 +194,8 @@ func (f *Frontend) RoundTripGRPC(ctx context.Context, req *httpgrpc.HTTPRequest)
192194
// even if this goroutine goes away due to client context cancellation.
193195
enqueue: make(chan enqueueResult, 1),
194196
response: make(chan *frontendv2pb.QueryResultRequest, 1),
197+
198+
retryOnTooManyOutstandingRequests: f.schedulerWorkers.getWorkersCount() > 0,
195199
}
196200

197201
f.requests.put(freq)

pkg/frontend/v2/frontend_scheduler_worker.go

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -296,12 +296,16 @@ func (w *frontendSchedulerWorker) schedulerLoop(loop schedulerpb.SchedulerForFro
296296
}
297297

298298
case schedulerpb.TOO_MANY_REQUESTS_PER_TENANT:
299-
req.enqueue <- enqueueResult{status: waitForResponse}
300-
req.response <- &frontendv2pb.QueryResultRequest{
301-
HttpResponse: &httpgrpc.HTTPResponse{
302-
Code: http.StatusTooManyRequests,
303-
Body: []byte("too many outstanding requests"),
304-
},
299+
if req.retryOnTooManyOutstandingRequests {
300+
req.enqueue <- enqueueResult{status: failed}
301+
} else {
302+
req.enqueue <- enqueueResult{status: waitForResponse}
303+
req.response <- &frontendv2pb.QueryResultRequest{
304+
HttpResponse: &httpgrpc.HTTPResponse{
305+
Code: http.StatusTooManyRequests,
306+
Body: []byte("too many outstanding requests"),
307+
},
308+
}
305309
}
306310
}
307311

0 commit comments

Comments
 (0)