Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuang-Minh Nguyen <qmnguyen@gitlab.com>2023-04-13 07:01:52 +0300
committerQuang-Minh Nguyen <qmnguyen@gitlab.com>2023-04-13 07:01:52 +0300
commit065347b08039b55c2e9d73bf555a869f09edebab (patch)
tree8ac9a0471e7f86bd66077d82d674d29643524a78
parent134beec76f0ca1402245e069cc9c8219f84895c6 (diff)
Remove limithandler.Limiter interfaceqmnguyen0711/remove-rate-limiter
In the prior commit, limiterhandler.RateLimiter was removed. That limiter implements limiterhandler.Limiter interface. After the removeal, the interface, this interface is only implemented by the concurrency limiter. This commit removes this interface to simplify the abstraction of this module.
-rw-r--r--internal/gitaly/service/dependencies.go4
-rw-r--r--internal/gitaly/service/hook/server.go4
-rw-r--r--internal/middleware/limithandler/concurrency_limiter.go2
-rw-r--r--internal/middleware/limithandler/middleware.go7
-rw-r--r--internal/testhelper/testserver/gitaly.go2
5 files changed, 7 insertions, 12 deletions
diff --git a/internal/gitaly/service/dependencies.go b/internal/gitaly/service/dependencies.go
index b2c31cab2..c08da3e83 100644
--- a/internal/gitaly/service/dependencies.go
+++ b/internal/gitaly/service/dependencies.go
@@ -32,7 +32,7 @@ type Dependencies struct {
DiskCache cache.Cache
PackObjectsCache streamcache.Cache
PackObjectsConcurrencyTracker *gitalyhook.ConcurrencyTracker
- PackObjectsLimiter limithandler.Limiter
+ PackObjectsLimiter *limithandler.ConcurrencyLimiter
LimitHandler *limithandler.LimiterMiddleware
Git2goExecutor *git2go.Executor
UpdaterWithHooks *updateref.UpdaterWithHooks
@@ -120,6 +120,6 @@ func (dc *Dependencies) GetHousekeepingManager() housekeeping.Manager {
}
// GetPackObjectsLimiter returns the pack-objects limiter.
-func (dc *Dependencies) GetPackObjectsLimiter() limithandler.Limiter {
+func (dc *Dependencies) GetPackObjectsLimiter() *limithandler.ConcurrencyLimiter {
return dc.PackObjectsLimiter
}
diff --git a/internal/gitaly/service/hook/server.go b/internal/gitaly/service/hook/server.go
index d25279721..5fc8249ae 100644
--- a/internal/gitaly/service/hook/server.go
+++ b/internal/gitaly/service/hook/server.go
@@ -17,7 +17,7 @@ type server struct {
gitCmdFactory git.CommandFactory
packObjectsCache streamcache.Cache
concurrencyTracker *gitalyhook.ConcurrencyTracker
- packObjectsLimiter limithandler.Limiter
+ packObjectsLimiter *limithandler.ConcurrencyLimiter
runPackObjectsFn func(
context.Context,
git.CommandFactory,
@@ -36,7 +36,7 @@ func NewServer(
gitCmdFactory git.CommandFactory,
packObjectsCache streamcache.Cache,
concurrencyTracker *gitalyhook.ConcurrencyTracker,
- packObjectsLimiter limithandler.Limiter,
+ packObjectsLimiter *limithandler.ConcurrencyLimiter,
) gitalypb.HookServiceServer {
srv := &server{
manager: manager,
diff --git a/internal/middleware/limithandler/concurrency_limiter.go b/internal/middleware/limithandler/concurrency_limiter.go
index d200ac8ae..5a050592a 100644
--- a/internal/middleware/limithandler/concurrency_limiter.go
+++ b/internal/middleware/limithandler/concurrency_limiter.go
@@ -295,7 +295,7 @@ func WithConcurrencyLimiters(cfg config.Cfg, middleware *LimiterMiddleware) {
queuedMetric.Collect(metrics)
}
- result := make(map[string]Limiter)
+ result := make(map[string]*ConcurrencyLimiter)
for _, limit := range cfg.Concurrency {
limit := limit
diff --git a/internal/middleware/limithandler/middleware.go b/internal/middleware/limithandler/middleware.go
index 81e91af9f..11dc51351 100644
--- a/internal/middleware/limithandler/middleware.go
+++ b/internal/middleware/limithandler/middleware.go
@@ -28,17 +28,12 @@ func LimitConcurrencyByRepo(ctx context.Context) string {
return ""
}
-// Limiter limits incoming requests
-type Limiter interface {
- Limit(ctx context.Context, lockKey string, f LimitedFunc) (interface{}, error)
-}
-
// LimitedFunc represents a function that will be limited
type LimitedFunc func() (resp interface{}, err error)
// LimiterMiddleware contains rate limiter state
type LimiterMiddleware struct {
- methodLimiters map[string]Limiter
+ methodLimiters map[string]*ConcurrencyLimiter
getLockKey GetLockKey
requestsDroppedMetric *prometheus.CounterVec
collect func(metrics chan<- prometheus.Metric)
diff --git a/internal/testhelper/testserver/gitaly.go b/internal/testhelper/testserver/gitaly.go
index b74677572..64a59a090 100644
--- a/internal/testhelper/testserver/gitaly.go
+++ b/internal/testhelper/testserver/gitaly.go
@@ -262,7 +262,7 @@ type gitalyServerDeps struct {
diskCache cache.Cache
packObjectsCache streamcache.Cache
packObjectsConcurrencyTracker *hook.ConcurrencyTracker
- packObjectsLimiter limithandler.Limiter
+ packObjectsLimiter *limithandler.ConcurrencyLimiter
limitHandler *limithandler.LimiterMiddleware
git2goExecutor *git2go.Executor
updaterWithHooks *updateref.UpdaterWithHooks