diff options
author | Quang-Minh Nguyen <qmnguyen@gitlab.com> | 2023-04-13 07:01:52 +0300 |
---|---|---|
committer | Quang-Minh Nguyen <qmnguyen@gitlab.com> | 2023-04-13 07:01:52 +0300 |
commit | 065347b08039b55c2e9d73bf555a869f09edebab (patch) | |
tree | 8ac9a0471e7f86bd66077d82d674d29643524a78 | |
parent | 134beec76f0ca1402245e069cc9c8219f84895c6 (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.go | 4 | ||||
-rw-r--r-- | internal/gitaly/service/hook/server.go | 4 | ||||
-rw-r--r-- | internal/middleware/limithandler/concurrency_limiter.go | 2 | ||||
-rw-r--r-- | internal/middleware/limithandler/middleware.go | 7 | ||||
-rw-r--r-- | internal/testhelper/testserver/gitaly.go | 2 |
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 |