MCPcopy Index your code
hub / github.com/ContentSquare/chproxy / inc

Method inc

scope.go:215–248  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

213}
214
215func (s *scope) inc() error {
216 uQueries := s.user.queryCounter.inc()
217 cQueries := s.clusterUser.queryCounter.inc()
218
219 var err error
220 if s.user.maxConcurrentQueries > 0 && uQueries > s.user.maxConcurrentQueries {
221 err = fmt.Errorf("limits for user %q are exceeded: max_concurrent_queries limit: %d",
222 s.user.name, s.user.maxConcurrentQueries)
223 }
224 if s.clusterUser.maxConcurrentQueries > 0 && cQueries > s.clusterUser.maxConcurrentQueries {
225 err = fmt.Errorf("limits for cluster user %q are exceeded: max_concurrent_queries limit: %d",
226 s.clusterUser.name, s.clusterUser.maxConcurrentQueries)
227 }
228
229 err2 := s.checkTokenFreeRateLimiters()
230 if err2 != nil {
231 err = err2
232 }
233
234 if err != nil {
235 s.user.queryCounter.dec()
236 s.clusterUser.queryCounter.dec()
237
238 // Decrement rate limiter here, so it doesn't count requests
239 // that didn't start due to limits overflow.
240 s.user.rateLimiter.dec()
241 s.clusterUser.rateLimiter.dec()
242 return err
243 }
244
245 s.host.IncrementConnections()
246 concurrentQueries.With(s.labels).Inc()
247 return nil
248}
249
250func (s *scope) checkTokenFreeRateLimiters() error {
251 var err error

Callers 5

incQueuedMethod · 0.95
waitUntilAllowStartMethod · 0.95
TestRunningQueriesFunction · 0.95

Calls 4

IncrementConnectionsMethod · 0.80
IncMethod · 0.80
decMethod · 0.45

Tested by 2

TestRunningQueriesFunction · 0.76