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-06-23 13:40:55 +0300
committerQuang-Minh Nguyen <qmnguyen@gitlab.com>2023-06-23 13:40:55 +0300
commit8e1a26131584af7418e5e6c4233f2faddad9192e (patch)
tree747c6c4b44c2ab1040872c7024e7efe6784cb2d8
parent3fe7e14c244ff1dc743f19394babe5da1db72119 (diff)
Remove pack-objects hook's concurrency tracker
hook.ConcurrencyTracker is used for logging the concurrency usage of the pack-objects hook. It maintains a map of counters. Each counter is increased or decreased before and after a pack-objects command runs. Apart from logging, it also exposes some Prometheus metrics. The original purpose of these logs and metrics was to monitor the concurrency segmented by different kinds of actors (user/repository/remote_ip). That information was helpful to pick a strategy for the concurrency limiter. After we picked one and removed the rest, they become redundant. The limiters expose similar and somewhat richer logs and metrics. They can replace pack-objects concurrency tracker perfectly. Besides, they align with per-RPC limiters and future limiters, if any. This commit removes the pack-objects hook's concurrency tracker and its usages.
-rw-r--r--cmd/gitaly-hooks/hooks_test.go1
-rw-r--r--internal/cli/gitaly/serve.go33
-rw-r--r--internal/git/localrepo/remote_extra_test.go1
-rw-r--r--internal/git/updateref/update_with_hooks_test.go1
-rw-r--r--internal/gitaly/hook/concurrency_tracker.go116
-rw-r--r--internal/gitaly/hook/concurrency_tracker_test.go352
-rw-r--r--internal/gitaly/service/cleanup/testhelper_test.go1
-rw-r--r--internal/gitaly/service/conflicts/testhelper_test.go1
-rw-r--r--internal/gitaly/service/dependencies.go44
-rw-r--r--internal/gitaly/service/hook/pack_objects.go23
-rw-r--r--internal/gitaly/service/hook/pack_objects_test.go91
-rw-r--r--internal/gitaly/service/hook/server.go4
-rw-r--r--internal/gitaly/service/hook/testhelper_test.go1
-rw-r--r--internal/gitaly/service/objectpool/testhelper_test.go1
-rw-r--r--internal/gitaly/service/operations/branches_test.go1
-rw-r--r--internal/gitaly/service/operations/testhelper_test.go1
-rw-r--r--internal/gitaly/service/ref/delete_refs_test.go1
-rw-r--r--internal/gitaly/service/ref/testhelper_test.go1
-rw-r--r--internal/gitaly/service/repository/testhelper_test.go1
-rw-r--r--internal/gitaly/service/setup/register.go1
-rw-r--r--internal/gitaly/service/smarthttp/testhelper_test.go1
-rw-r--r--internal/gitaly/service/ssh/testhelper_test.go1
-rw-r--r--internal/testhelper/testserver/gitaly.go91
23 files changed, 73 insertions, 696 deletions
diff --git a/cmd/gitaly-hooks/hooks_test.go b/cmd/gitaly-hooks/hooks_test.go
index 3726e577a..cebbccb09 100644
--- a/cmd/gitaly-hooks/hooks_test.go
+++ b/cmd/gitaly-hooks/hooks_test.go
@@ -868,7 +868,6 @@ func runHookServiceWithGitlabClient(t *testing.T, cfg config.Cfg, assertUserDeta
deps.GetLocator(),
deps.GetGitCmdFactory(),
deps.GetPackObjectsCache(),
- deps.GetPackObjectsConcurrencyTracker(),
deps.GetPackObjectsLimiter(),
),
})
diff --git a/internal/cli/gitaly/serve.go b/internal/cli/gitaly/serve.go
index 5706adf6b..8ba00536a 100644
--- a/internal/cli/gitaly/serve.go
+++ b/internal/cli/gitaly/serve.go
@@ -304,8 +304,6 @@ func run(cfg config.Cfg) error {
updaterWithHooks := updateref.NewUpdaterWithHooks(cfg, locator, hookManager, gitCmdFactory, catfileCache)
streamCache := streamcache.New(cfg.PackObjectsCache, glog.Default())
- concurrencyTracker := hook.NewConcurrencyTracker()
- prometheus.MustRegister(concurrencyTracker)
var backupSink backup.Sink
var backupLocator backup.Locator
@@ -345,22 +343,21 @@ func run(cfg config.Cfg) error {
}
setup.RegisterAll(srv, &service.Dependencies{
- Cfg: cfg,
- GitalyHookManager: hookManager,
- TransactionManager: transactionManager,
- StorageLocator: locator,
- ClientPool: conns,
- GitCmdFactory: gitCmdFactory,
- CatfileCache: catfileCache,
- DiskCache: diskCache,
- PackObjectsCache: streamCache,
- PackObjectsConcurrencyTracker: concurrencyTracker,
- PackObjectsLimiter: packObjectsLimiter,
- Git2goExecutor: git2goExecutor,
- UpdaterWithHooks: updaterWithHooks,
- HousekeepingManager: housekeepingManager,
- BackupSink: backupSink,
- BackupLocator: backupLocator,
+ Cfg: cfg,
+ GitalyHookManager: hookManager,
+ TransactionManager: transactionManager,
+ StorageLocator: locator,
+ ClientPool: conns,
+ GitCmdFactory: gitCmdFactory,
+ CatfileCache: catfileCache,
+ DiskCache: diskCache,
+ PackObjectsCache: streamCache,
+ PackObjectsLimiter: packObjectsLimiter,
+ Git2goExecutor: git2goExecutor,
+ UpdaterWithHooks: updaterWithHooks,
+ HousekeepingManager: housekeepingManager,
+ BackupSink: backupSink,
+ BackupLocator: backupLocator,
})
b.RegisterStarter(starter.New(c, srv))
}
diff --git a/internal/git/localrepo/remote_extra_test.go b/internal/git/localrepo/remote_extra_test.go
index 743d438d7..799d22157 100644
--- a/internal/git/localrepo/remote_extra_test.go
+++ b/internal/git/localrepo/remote_extra_test.go
@@ -39,7 +39,6 @@ func TestRepo_FetchInternal(t *testing.T) {
deps.GetLocator(),
deps.GetGitCmdFactory(),
deps.GetPackObjectsCache(),
- deps.GetPackObjectsConcurrencyTracker(),
deps.GetPackObjectsLimiter(),
))
gitalypb.RegisterRepositoryServiceServer(srv, repository.NewServer(
diff --git a/internal/git/updateref/update_with_hooks_test.go b/internal/git/updateref/update_with_hooks_test.go
index 1df49ed21..0bac739ef 100644
--- a/internal/git/updateref/update_with_hooks_test.go
+++ b/internal/git/updateref/update_with_hooks_test.go
@@ -103,7 +103,6 @@ func TestUpdaterWithHooks_UpdateReference(t *testing.T) {
deps.GetLocator(),
deps.GetGitCmdFactory(),
deps.GetPackObjectsCache(),
- deps.GetPackObjectsConcurrencyTracker(),
deps.GetPackObjectsLimiter(),
))
})
diff --git a/internal/gitaly/hook/concurrency_tracker.go b/internal/gitaly/hook/concurrency_tracker.go
deleted file mode 100644
index 4a82e0f54..000000000
--- a/internal/gitaly/hook/concurrency_tracker.go
+++ /dev/null
@@ -1,116 +0,0 @@
-package hook
-
-import (
- "context"
- "sync"
-
- "github.com/grpc-ecosystem/go-grpc-middleware/logging/logrus/ctxlogrus"
- "github.com/prometheus/client_golang/prometheus"
-)
-
-// NewConcurrencyTracker creates a new ConcurrencyTracker.
-func NewConcurrencyTracker() *ConcurrencyTracker {
- c := &ConcurrencyTracker{
- concurrencyMap: make(map[string]int),
- currentCallersVec: prometheus.NewGaugeVec(
- prometheus.GaugeOpts{
- Name: "gitaly_pack_objects_process_active_callers",
- Help: "Number of unique callers that have an active pack objects processes",
- },
- []string{"segment"},
- ),
- totalCallersVec: prometheus.NewCounterVec(
- prometheus.CounterOpts{
- Name: "gitaly_pack_objects_process_active_callers_total",
- Help: "Total unique callers that have initiated a pack objects processes",
- },
- []string{"segment"},
- ),
- concurrentProcessesVec: prometheus.NewHistogramVec(
- prometheus.HistogramOpts{
- Name: "gitaly_pack_objects_concurrent_processes",
- Help: "Number of concurrent processes",
- Buckets: prometheus.LinearBuckets(0, 5, 20),
- },
- []string{"segment"},
- ),
- }
-
- return c
-}
-
-// ConcurrencyTracker tracks concurrency of pack object calls
-type ConcurrencyTracker struct {
- lock sync.Mutex
- concurrencyMap map[string]int
- currentCallersVec *prometheus.GaugeVec
- totalCallersVec *prometheus.CounterVec
- concurrentProcessesVec *prometheus.HistogramVec
-}
-
-func (c *ConcurrencyTracker) addConcurrencyDelta(compositeKey string, delta int) int {
- c.lock.Lock()
- defer c.lock.Unlock()
-
- c.concurrencyMap[compositeKey] += delta
-
- if c.concurrencyMap[compositeKey] == 0 {
- delete(c.concurrencyMap, compositeKey)
- }
-
- return c.concurrencyMap[compositeKey]
-}
-
-// LogConcurrency logs the number of concurrent calls for a keyType, key
-// combination
-func (c *ConcurrencyTracker) LogConcurrency(ctx context.Context, keyType, key string) func() {
- compositeKey := keyType + ":" + key
-
- concurrency := c.addConcurrencyDelta(compositeKey, 1)
- if concurrency == 1 {
- // If there are no entries in the map for this keyType, key
- // combination, it means this is the first pack objects process
- // for this keyType, key. Hence, we increment the total number
- // of active callers for this keyType as this is a newly active
- // caller of a pack object process. In finish, when the pack
- // object process finishes, we check if it is the only active
- // call and if so, we decrement this metric since that means the
- // keyType, key caller is no longer responsible for any pack
- c.currentCallersVec.WithLabelValues(keyType).Inc()
- c.totalCallersVec.WithLabelValues(keyType).Inc()
- }
-
- c.concurrentProcessesVec.WithLabelValues(
- keyType,
- ).Observe(float64(concurrency))
-
- ctxlogrus.Extract(ctx).
- WithField("concurrency_type", keyType).
- WithField("concurrency_key", key).
- WithField("concurrency", concurrency).
- Info("concurrency")
-
- return func() {
- c.finish(keyType, compositeKey)
- }
-}
-
-func (c *ConcurrencyTracker) finish(keyType, compositeKey string) {
- if c.addConcurrencyDelta(compositeKey, -1) == 0 {
- c.currentCallersVec.WithLabelValues(keyType).Dec()
- }
-}
-
-// Collect allows ConcurrencyTracker to adhere to the prometheus.Collector
-// interface for collecting metrics.
-func (c *ConcurrencyTracker) Collect(ch chan<- prometheus.Metric) {
- c.currentCallersVec.Collect(ch)
- c.totalCallersVec.Collect(ch)
- c.concurrentProcessesVec.Collect(ch)
-}
-
-// Describe allows ConcurrencyTracker to adhere to the prometheus.Collector
-// interface for collecing metrics
-func (c *ConcurrencyTracker) Describe(ch chan<- *prometheus.Desc) {
- prometheus.DescribeByCollect(c, ch)
-}
diff --git a/internal/gitaly/hook/concurrency_tracker_test.go b/internal/gitaly/hook/concurrency_tracker_test.go
deleted file mode 100644
index a514b9d99..000000000
--- a/internal/gitaly/hook/concurrency_tracker_test.go
+++ /dev/null
@@ -1,352 +0,0 @@
-package hook
-
-import (
- "bytes"
- "context"
- "sync"
- "testing"
-
- "github.com/grpc-ecosystem/go-grpc-middleware/logging/logrus/ctxlogrus"
- "github.com/prometheus/client_golang/prometheus/testutil"
- "github.com/sirupsen/logrus"
- "github.com/sirupsen/logrus/hooks/test"
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
- "gitlab.com/gitlab-org/gitaly/v16/internal/testhelper"
-)
-
-func TestConcurrencyTracker(t *testing.T) {
- testCases := []struct {
- desc string
- calls func(ctx context.Context, c *ConcurrencyTracker)
- expectedLogData []logrus.Fields
- }{
- {
- desc: "single call",
- calls: func(ctx context.Context, c *ConcurrencyTracker) {
- finish := c.LogConcurrency(ctx, "repository", "a/b/c")
- defer finish()
- finish = c.LogConcurrency(ctx, "user_id", "user-123")
- defer finish()
- finish = c.LogConcurrency(ctx, "remote_ip", "1.2.3.4")
- defer finish()
- },
- expectedLogData: []logrus.Fields{
- {
- "concurrency_type": "repository",
- "concurrency_key": "a/b/c",
- "concurrency": 1,
- },
- {
- "concurrency_type": "user_id",
- "concurrency_key": "user-123",
- "concurrency": 1,
- },
- {
- "concurrency_type": "remote_ip",
- "concurrency_key": "1.2.3.4",
- "concurrency": 1,
- },
- },
- },
- {
- desc: "multiple calls",
- calls: func(ctx context.Context, c *ConcurrencyTracker) {
- finish := c.LogConcurrency(ctx, "repository", "a/b/c")
- defer finish()
- finish = c.LogConcurrency(ctx, "repository", "a/b/c")
- defer finish()
- finish = c.LogConcurrency(ctx, "repository", "a/b/c")
- defer finish()
- finish = c.LogConcurrency(ctx, "user_id", "user-123")
- defer finish()
- finish = c.LogConcurrency(ctx, "user_id", "user-123")
- defer finish()
- finish = c.LogConcurrency(ctx, "user_id", "user-123")
- defer finish()
- finish = c.LogConcurrency(ctx, "remote_ip", "1.2.3.4")
- defer finish()
- finish = c.LogConcurrency(ctx, "remote_ip", "1.2.3.4")
- defer finish()
- finish = c.LogConcurrency(ctx, "remote_ip", "1.2.3.4")
- defer finish()
- finish = c.LogConcurrency(ctx, "remote_ip", "1.2.3.4")
- defer finish()
- },
- expectedLogData: []logrus.Fields{
- {
- "concurrency_type": "repository",
- "concurrency_key": "a/b/c",
- "concurrency": 1,
- },
- {
- "concurrency_type": "repository",
- "concurrency_key": "a/b/c",
- "concurrency": 2,
- },
- {
- "concurrency_type": "repository",
- "concurrency_key": "a/b/c",
- "concurrency": 3,
- },
- {
- "concurrency_type": "user_id",
- "concurrency_key": "user-123",
- "concurrency": 1,
- },
- {
- "concurrency_type": "user_id",
- "concurrency_key": "user-123",
- "concurrency": 2,
- },
- {
- "concurrency_type": "user_id",
- "concurrency_key": "user-123",
- "concurrency": 3,
- },
- {
- "concurrency_type": "remote_ip",
- "concurrency_key": "1.2.3.4",
- "concurrency": 1,
- },
- {
- "concurrency_type": "remote_ip",
- "concurrency_key": "1.2.3.4",
- "concurrency": 2,
- },
- {
- "concurrency_type": "remote_ip",
- "concurrency_key": "1.2.3.4",
- "concurrency": 3,
- },
- {
- "concurrency_type": "remote_ip",
- "concurrency_key": "1.2.3.4",
- "concurrency": 4,
- },
- },
- },
- {
- desc: "multiple finished calls",
- calls: func(ctx context.Context, c *ConcurrencyTracker) {
- finish := c.LogConcurrency(ctx, "repository", "a/b/c")
- finish()
- finish = c.LogConcurrency(ctx, "repository", "a/b/c")
- finish()
- finish = c.LogConcurrency(ctx, "repository", "a/b/c")
- finish()
- finish = c.LogConcurrency(ctx, "user_id", "user-123")
- finish()
- finish = c.LogConcurrency(ctx, "user_id", "user-123")
- finish()
- finish = c.LogConcurrency(ctx, "user_id", "user-123")
- finish()
- finish = c.LogConcurrency(ctx, "remote_ip", "1.2.3.4")
- finish()
- },
- expectedLogData: []logrus.Fields{
- {
- "concurrency_type": "repository",
- "concurrency_key": "a/b/c",
- "concurrency": 1,
- },
- {
- "concurrency_type": "repository",
- "concurrency_key": "a/b/c",
- "concurrency": 1,
- },
- {
- "concurrency_type": "repository",
- "concurrency_key": "a/b/c",
- "concurrency": 1,
- },
- {
- "concurrency_type": "user_id",
- "concurrency_key": "user-123",
- "concurrency": 1,
- },
- {
- "concurrency_type": "user_id",
- "concurrency_key": "user-123",
- "concurrency": 1,
- },
- {
- "concurrency_type": "user_id",
- "concurrency_key": "user-123",
- "concurrency": 1,
- },
- {
- "concurrency_type": "remote_ip",
- "concurrency_key": "1.2.3.4",
- "concurrency": 1,
- },
- },
- },
- }
-
- for _, tc := range testCases {
- t.Run(tc.desc, func(t *testing.T) {
- ctx := testhelper.Context(t)
-
- l, hook := test.NewNullLogger()
-
- ctx = ctxlogrus.ToContext(ctx, logrus.NewEntry(l))
-
- c := NewConcurrencyTracker()
-
- tc.calls(ctx, c)
-
- require.Len(t, hook.Entries, len(tc.expectedLogData))
- for i := 0; i < len(hook.Entries); i++ {
- assert.Equal(t, tc.expectedLogData[i], hook.Entries[i].Data)
- assert.Equal(t, "concurrency", hook.Entries[i].Message)
- }
-
- assert.Len(t, c.concurrencyMap, 0)
- })
- }
-}
-
-func TestConcurrencyTrackerConcurrentCalls(t *testing.T) {
- ctx := testhelper.Context(t)
-
- l, hook := test.NewNullLogger()
-
- ctx = ctxlogrus.ToContext(ctx, logrus.NewEntry(l))
-
- c := NewConcurrencyTracker()
-
- var wg sync.WaitGroup
- wg.Add(3)
-
- for i := 0; i < 3; i++ {
- go func() {
- defer wg.Done()
- finish := c.LogConcurrency(ctx, "repository", "a/b/c")
- defer finish()
- }()
- }
-
- wg.Wait()
-
- require.Len(t, hook.Entries, 3)
-
- for i := 0; i < len(hook.Entries); i++ {
- assert.Equal(t, "a/b/c", hook.Entries[i].Data["concurrency_key"])
- assert.Equal(t, "repository", hook.Entries[i].Data["concurrency_type"])
- assert.Equal(t, "concurrency", hook.Entries[i].Message)
- }
-
- assert.Len(t, c.concurrencyMap, 0)
-}
-
-func TestConcurrencyTracker_metrics(t *testing.T) {
- ctx := testhelper.Context(t)
-
- c := NewConcurrencyTracker()
-
- finish := c.LogConcurrency(ctx, "repository", "a")
- finish()
- c.LogConcurrency(ctx, "repository", "a")
- c.LogConcurrency(ctx, "repository", "b")
- c.LogConcurrency(ctx, "repository", "c")
-
- finish = c.LogConcurrency(ctx, "user_id", "user-1")
- finish()
- c.LogConcurrency(ctx, "user_id", "user-1")
- c.LogConcurrency(ctx, "user_id", "user-2")
- c.LogConcurrency(ctx, "user_id", "user-3")
- c.LogConcurrency(ctx, "user_id", "user-4")
-
- finish = c.LogConcurrency(ctx, "remote_ip", "1.2.3.4")
- finish()
- c.LogConcurrency(ctx, "remote_ip", "1.2.3.5")
- c.LogConcurrency(ctx, "remote_ip", "1.2.3.6")
-
- expectedMetrics := `# HELP gitaly_pack_objects_concurrent_processes Number of concurrent processes
-# TYPE gitaly_pack_objects_concurrent_processes histogram
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="0"} 0
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="5"} 3
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="10"} 3
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="15"} 3
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="20"} 3
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="25"} 3
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="30"} 3
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="35"} 3
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="40"} 3
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="45"} 3
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="50"} 3
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="55"} 3
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="60"} 3
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="65"} 3
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="70"} 3
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="75"} 3
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="80"} 3
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="85"} 3
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="90"} 3
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="95"} 3
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="+Inf"} 3
-gitaly_pack_objects_concurrent_processes_sum{segment="remote_ip"} 3
-gitaly_pack_objects_concurrent_processes_count{segment="remote_ip"} 3
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="0"} 0
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="5"} 4
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="10"} 4
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="15"} 4
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="20"} 4
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="25"} 4
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="30"} 4
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="35"} 4
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="40"} 4
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="45"} 4
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="50"} 4
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="55"} 4
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="60"} 4
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="65"} 4
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="70"} 4
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="75"} 4
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="80"} 4
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="85"} 4
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="90"} 4
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="95"} 4
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="+Inf"} 4
-gitaly_pack_objects_concurrent_processes_sum{segment="repository"} 4
-gitaly_pack_objects_concurrent_processes_count{segment="repository"} 4
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="0"} 0
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="5"} 5
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="10"} 5
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="15"} 5
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="20"} 5
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="25"} 5
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="30"} 5
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="35"} 5
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="40"} 5
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="45"} 5
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="50"} 5
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="55"} 5
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="60"} 5
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="65"} 5
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="70"} 5
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="75"} 5
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="80"} 5
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="85"} 5
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="90"} 5
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="95"} 5
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="+Inf"} 5
-gitaly_pack_objects_concurrent_processes_sum{segment="user_id"} 5
-gitaly_pack_objects_concurrent_processes_count{segment="user_id"} 5
-# HELP gitaly_pack_objects_process_active_callers Number of unique callers that have an active pack objects processes
-# TYPE gitaly_pack_objects_process_active_callers gauge
-gitaly_pack_objects_process_active_callers{segment="remote_ip"} 2
-gitaly_pack_objects_process_active_callers{segment="repository"} 3
-gitaly_pack_objects_process_active_callers{segment="user_id"} 4
-# HELP gitaly_pack_objects_process_active_callers_total Total unique callers that have initiated a pack objects processes
-# TYPE gitaly_pack_objects_process_active_callers_total counter
-gitaly_pack_objects_process_active_callers_total{segment="remote_ip"} 3
-gitaly_pack_objects_process_active_callers_total{segment="repository"} 4
-gitaly_pack_objects_process_active_callers_total{segment="user_id"} 5
-`
- require.NoError(t, testutil.CollectAndCompare(
- c,
- bytes.NewBufferString(expectedMetrics),
- ))
-}
diff --git a/internal/gitaly/service/cleanup/testhelper_test.go b/internal/gitaly/service/cleanup/testhelper_test.go
index a37bf796e..3f3ff807c 100644
--- a/internal/gitaly/service/cleanup/testhelper_test.go
+++ b/internal/gitaly/service/cleanup/testhelper_test.go
@@ -45,7 +45,6 @@ func runCleanupServiceServer(t *testing.T, cfg config.Cfg) string {
deps.GetLocator(),
deps.GetGitCmdFactory(),
deps.GetPackObjectsCache(),
- deps.GetPackObjectsConcurrencyTracker(),
deps.GetPackObjectsLimiter(),
))
gitalypb.RegisterRepositoryServiceServer(srv, repository.NewServer(
diff --git a/internal/gitaly/service/conflicts/testhelper_test.go b/internal/gitaly/service/conflicts/testhelper_test.go
index 413eef849..bec508e0c 100644
--- a/internal/gitaly/service/conflicts/testhelper_test.go
+++ b/internal/gitaly/service/conflicts/testhelper_test.go
@@ -71,7 +71,6 @@ func runConflictsServer(tb testing.TB, cfg config.Cfg, hookManager hook.Manager)
deps.GetLocator(),
deps.GetGitCmdFactory(),
deps.GetPackObjectsCache(),
- deps.GetPackObjectsConcurrencyTracker(),
deps.GetPackObjectsLimiter(),
))
gitalypb.RegisterCommitServiceServer(srv, commit.NewServer(
diff --git a/internal/gitaly/service/dependencies.go b/internal/gitaly/service/dependencies.go
index 136ec6288..4b1cb34f1 100644
--- a/internal/gitaly/service/dependencies.go
+++ b/internal/gitaly/service/dependencies.go
@@ -22,26 +22,25 @@ import (
// Dependencies assembles set of components required by different kinds of services.
type Dependencies struct {
- Cfg config.Cfg
- GitalyHookManager gitalyhook.Manager
- TransactionManager transaction.Manager
- StorageLocator storage.Locator
- ClientPool *client.Pool
- GitCmdFactory git.CommandFactory
- BackchannelRegistry *backchannel.Registry
- GitlabClient gitlab.Client
- CatfileCache catfile.Cache
- DiskCache cache.Cache
- PackObjectsCache streamcache.Cache
- PackObjectsConcurrencyTracker *gitalyhook.ConcurrencyTracker
- PackObjectsLimiter limithandler.Limiter
- LimitHandler *limithandler.LimiterMiddleware
- Git2goExecutor *git2go.Executor
- UpdaterWithHooks *updateref.UpdaterWithHooks
- HousekeepingManager housekeeping.Manager
- PartitionManager *storagemgr.PartitionManager
- BackupSink backup.Sink
- BackupLocator backup.Locator
+ Cfg config.Cfg
+ GitalyHookManager gitalyhook.Manager
+ TransactionManager transaction.Manager
+ StorageLocator storage.Locator
+ ClientPool *client.Pool
+ GitCmdFactory git.CommandFactory
+ BackchannelRegistry *backchannel.Registry
+ GitlabClient gitlab.Client
+ CatfileCache catfile.Cache
+ DiskCache cache.Cache
+ PackObjectsCache streamcache.Cache
+ PackObjectsLimiter limithandler.Limiter
+ LimitHandler *limithandler.LimiterMiddleware
+ Git2goExecutor *git2go.Executor
+ UpdaterWithHooks *updateref.UpdaterWithHooks
+ HousekeepingManager housekeeping.Manager
+ PartitionManager *storagemgr.PartitionManager
+ BackupSink backup.Sink
+ BackupLocator backup.Locator
}
// GetCfg returns service configuration.
@@ -99,11 +98,6 @@ func (dc *Dependencies) GetPackObjectsCache() streamcache.Cache {
return dc.PackObjectsCache
}
-// GetPackObjectsConcurrencyTracker returns the pack-objects cache.
-func (dc *Dependencies) GetPackObjectsConcurrencyTracker() *gitalyhook.ConcurrencyTracker {
- return dc.PackObjectsConcurrencyTracker
-}
-
// GetLimitHandler returns the RPC limit handler.
func (dc *Dependencies) GetLimitHandler() *limithandler.LimiterMiddleware {
return dc.LimitHandler
diff --git a/internal/gitaly/service/hook/pack_objects.go b/internal/gitaly/service/hook/pack_objects.go
index 925416e81..9b513c0a3 100644
--- a/internal/gitaly/service/hook/pack_objects.go
+++ b/internal/gitaly/service/hook/pack_objects.go
@@ -160,7 +160,7 @@ func (s *server) runPackObjects(
defer stdin.Close()
- return s.runPackObjectsFn(ctx, s.gitCmdFactory, w, req, args, stdin, key, s.concurrencyTracker)
+ return s.runPackObjectsFn(ctx, s.gitCmdFactory, w, req, args, stdin, key)
}
func (s *server) runPackObjectsLimited(
@@ -192,7 +192,6 @@ func (s *server) runPackObjectsLimited(
args,
stdin,
key,
- s.concurrencyTracker,
)
},
); err != nil {
@@ -210,29 +209,9 @@ func runPackObjects(
args *packObjectsArgs,
stdin io.Reader,
key string,
- concurrencyTracker *gitalyhook.ConcurrencyTracker,
) error {
repo := req.GetRepository()
- if concurrencyTracker != nil {
- finishRepoLog := concurrencyTracker.LogConcurrency(ctx, "repository", repo.GetRelativePath())
- defer finishRepoLog()
-
- userID := req.GetGlId()
- if userID == "" {
- userID = "none"
- }
- finishUserLog := concurrencyTracker.LogConcurrency(ctx, "user_id", userID)
- defer finishUserLog()
-
- remoteIP := req.GetRemoteIp()
- if remoteIP == "" {
- remoteIP = "none"
- }
- finishRemoteIPLog := concurrencyTracker.LogConcurrency(ctx, "remote_ip", remoteIP)
- defer finishRemoteIPLog()
- }
-
counter := &helper.CountingWriter{W: w}
sw := pktline.NewSidebandWriter(counter)
stdout := bufio.NewWriterSize(sw.Writer(stream.BandStdout), pktline.MaxSidebandData)
diff --git a/internal/gitaly/service/hook/pack_objects_test.go b/internal/gitaly/service/hook/pack_objects_test.go
index 5370361f2..312bb0ab0 100644
--- a/internal/gitaly/service/hook/pack_objects_test.go
+++ b/internal/gitaly/service/hook/pack_objects_test.go
@@ -478,14 +478,12 @@ func testServerPackObjectsHookWithSidechannelWithRuntimeDir(t *testing.T, ctx co
cfg := cfgWithCache(t, 0)
logger, hook := test.NewNullLogger()
- concurrencyTracker := hookPkg.NewConcurrencyTracker()
cfg.SocketPath = runHooksServer(
t,
cfg,
nil,
testserver.WithLogger(logger),
- testserver.WithConcurrencyTracker(concurrencyTracker),
)
setup := tc.setup(t, ctx, cfg)
@@ -558,93 +556,6 @@ func testServerPackObjectsHookWithSidechannelWithRuntimeDir(t *testing.T, ctx co
total := fields["pack_objects.compression_statistics"].(string)
require.True(t, strings.HasPrefix(total, "Total "))
require.False(t, strings.Contains(total, "\n"))
-
- expectedMetrics := `# HELP gitaly_pack_objects_concurrent_processes Number of concurrent processes
-# TYPE gitaly_pack_objects_concurrent_processes histogram
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="0"} 0
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="5"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="10"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="15"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="20"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="25"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="30"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="35"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="40"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="45"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="50"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="55"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="60"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="65"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="70"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="75"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="80"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="85"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="90"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="95"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="remote_ip",le="+Inf"} 1
-gitaly_pack_objects_concurrent_processes_sum{segment="remote_ip"} 1
-gitaly_pack_objects_concurrent_processes_count{segment="remote_ip"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="0"} 0
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="5"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="10"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="15"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="20"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="25"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="30"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="35"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="40"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="45"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="50"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="55"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="60"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="65"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="70"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="75"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="80"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="85"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="90"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="95"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="repository",le="+Inf"} 1
-gitaly_pack_objects_concurrent_processes_sum{segment="repository"} 1
-gitaly_pack_objects_concurrent_processes_count{segment="repository"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="0"} 0
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="5"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="10"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="15"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="20"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="25"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="30"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="35"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="40"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="45"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="50"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="55"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="60"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="65"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="70"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="75"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="80"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="85"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="90"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="95"} 1
-gitaly_pack_objects_concurrent_processes_bucket{segment="user_id",le="+Inf"} 1
-gitaly_pack_objects_concurrent_processes_sum{segment="user_id"} 1
-gitaly_pack_objects_concurrent_processes_count{segment="user_id"} 1
-# HELP gitaly_pack_objects_process_active_callers Number of unique callers that have an active pack objects processes
-# TYPE gitaly_pack_objects_process_active_callers gauge
-gitaly_pack_objects_process_active_callers{segment="remote_ip"} 0
-gitaly_pack_objects_process_active_callers{segment="repository"} 0
-gitaly_pack_objects_process_active_callers{segment="user_id"} 0
-# HELP gitaly_pack_objects_process_active_callers_total Total unique callers that have initiated a pack objects processes
-# TYPE gitaly_pack_objects_process_active_callers_total counter
-gitaly_pack_objects_process_active_callers_total{segment="remote_ip"} 1
-gitaly_pack_objects_process_active_callers_total{segment="repository"} 1
-gitaly_pack_objects_process_active_callers_total{segment="user_id"} 1
-`
- require.NoError(t, testutil.CollectAndCompare(
- concurrencyTracker,
- bytes.NewBufferString(expectedMetrics),
- ))
})
}
}
@@ -745,7 +656,6 @@ func withRunPackObjectsFn(
*packObjectsArgs,
io.Reader,
string,
- *hookPkg.ConcurrencyTracker,
) error,
) serverOption {
return func(s *server) {
@@ -967,7 +877,6 @@ func TestPackObjects_concurrencyLimit(t *testing.T) {
*packObjectsArgs,
io.Reader,
string,
- *hookPkg.ConcurrencyTracker,
) error {
receivedCh <- struct{}{}
<-blockCh
diff --git a/internal/gitaly/service/hook/server.go b/internal/gitaly/service/hook/server.go
index 6fa0a964e..c8944f3ec 100644
--- a/internal/gitaly/service/hook/server.go
+++ b/internal/gitaly/service/hook/server.go
@@ -18,7 +18,6 @@ type server struct {
locator storage.Locator
gitCmdFactory git.CommandFactory
packObjectsCache streamcache.Cache
- concurrencyTracker *gitalyhook.ConcurrencyTracker
packObjectsLimiter limithandler.Limiter
runPackObjectsFn func(
context.Context,
@@ -28,7 +27,6 @@ type server struct {
*packObjectsArgs,
io.Reader,
string,
- *gitalyhook.ConcurrencyTracker,
) error
}
@@ -38,7 +36,6 @@ func NewServer(
locator storage.Locator,
gitCmdFactory git.CommandFactory,
packObjectsCache streamcache.Cache,
- concurrencyTracker *gitalyhook.ConcurrencyTracker,
packObjectsLimiter limithandler.Limiter,
) gitalypb.HookServiceServer {
srv := &server{
@@ -47,7 +44,6 @@ func NewServer(
gitCmdFactory: gitCmdFactory,
packObjectsCache: packObjectsCache,
packObjectsLimiter: packObjectsLimiter,
- concurrencyTracker: concurrencyTracker,
runPackObjectsFn: runPackObjects,
}
diff --git a/internal/gitaly/service/hook/testhelper_test.go b/internal/gitaly/service/hook/testhelper_test.go
index 7e579a701..9dbb2786f 100644
--- a/internal/gitaly/service/hook/testhelper_test.go
+++ b/internal/gitaly/service/hook/testhelper_test.go
@@ -59,7 +59,6 @@ func runHooksServer(tb testing.TB, cfg config.Cfg, opts []serverOption, serverOp
deps.GetLocator(),
deps.GetGitCmdFactory(),
deps.GetPackObjectsCache(),
- deps.GetPackObjectsConcurrencyTracker(),
deps.GetPackObjectsLimiter(),
)
for _, opt := range opts {
diff --git a/internal/gitaly/service/objectpool/testhelper_test.go b/internal/gitaly/service/objectpool/testhelper_test.go
index 62b713f56..7a95c21a6 100644
--- a/internal/gitaly/service/objectpool/testhelper_test.go
+++ b/internal/gitaly/service/objectpool/testhelper_test.go
@@ -75,7 +75,6 @@ func runObjectPoolServer(t *testing.T, cfg config.Cfg, locator storage.Locator,
deps.GetLocator(),
deps.GetGitCmdFactory(),
deps.GetPackObjectsCache(),
- deps.GetPackObjectsConcurrencyTracker(),
deps.GetPackObjectsLimiter(),
))
gitalypb.RegisterRepositoryServiceServer(srv, repository.NewServer(
diff --git a/internal/gitaly/service/operations/branches_test.go b/internal/gitaly/service/operations/branches_test.go
index c8aa301e1..0a58649f1 100644
--- a/internal/gitaly/service/operations/branches_test.go
+++ b/internal/gitaly/service/operations/branches_test.go
@@ -143,7 +143,6 @@ func testUserCreateBranchTransactions(t *testing.T, ctx context.Context) {
deps.GetLocator(),
deps.GetGitCmdFactory(),
deps.GetPackObjectsCache(),
- deps.GetPackObjectsConcurrencyTracker(),
deps.GetPackObjectsLimiter(),
))
// Praefect proxy execution disabled as praefect runs only on the UNIX socket, but
diff --git a/internal/gitaly/service/operations/testhelper_test.go b/internal/gitaly/service/operations/testhelper_test.go
index 90b0d873f..938b311ec 100644
--- a/internal/gitaly/service/operations/testhelper_test.go
+++ b/internal/gitaly/service/operations/testhelper_test.go
@@ -107,7 +107,6 @@ func runOperationServiceServer(tb testing.TB, cfg config.Cfg, options ...testser
deps.GetLocator(),
deps.GetGitCmdFactory(),
deps.GetPackObjectsCache(),
- deps.GetPackObjectsConcurrencyTracker(),
deps.GetPackObjectsLimiter(),
))
gitalypb.RegisterRepositoryServiceServer(srv, repository.NewServer(
diff --git a/internal/gitaly/service/ref/delete_refs_test.go b/internal/gitaly/service/ref/delete_refs_test.go
index bba8b94ad..2d090dc53 100644
--- a/internal/gitaly/service/ref/delete_refs_test.go
+++ b/internal/gitaly/service/ref/delete_refs_test.go
@@ -129,7 +129,6 @@ func TestDeleteRefs_transaction(t *testing.T) {
deps.GetLocator(),
deps.GetGitCmdFactory(),
deps.GetPackObjectsCache(),
- deps.GetPackObjectsConcurrencyTracker(),
deps.GetPackObjectsLimiter(),
))
}, testserver.WithTransactionManager(txManager))
diff --git a/internal/gitaly/service/ref/testhelper_test.go b/internal/gitaly/service/ref/testhelper_test.go
index 9b0a77852..fdb21ecbe 100644
--- a/internal/gitaly/service/ref/testhelper_test.go
+++ b/internal/gitaly/service/ref/testhelper_test.go
@@ -70,7 +70,6 @@ func runRefServiceServer(tb testing.TB, cfg config.Cfg) string {
deps.GetLocator(),
deps.GetGitCmdFactory(),
deps.GetPackObjectsCache(),
- deps.GetPackObjectsConcurrencyTracker(),
deps.GetPackObjectsLimiter(),
))
gitalypb.RegisterRepositoryServiceServer(srv, repository.NewServer(
diff --git a/internal/gitaly/service/repository/testhelper_test.go b/internal/gitaly/service/repository/testhelper_test.go
index 757fb0f7d..8891207e1 100644
--- a/internal/gitaly/service/repository/testhelper_test.go
+++ b/internal/gitaly/service/repository/testhelper_test.go
@@ -74,7 +74,6 @@ func runRepositoryService(tb testing.TB, cfg config.Cfg, opts ...testserver.Gita
deps.GetLocator(),
deps.GetGitCmdFactory(),
deps.GetPackObjectsCache(),
- deps.GetPackObjectsConcurrencyTracker(),
deps.GetPackObjectsLimiter(),
))
gitalypb.RegisterRemoteServiceServer(srv, remote.NewServer(
diff --git a/internal/gitaly/service/setup/register.go b/internal/gitaly/service/setup/register.go
index a51219a76..0c8873006 100644
--- a/internal/gitaly/service/setup/register.go
+++ b/internal/gitaly/service/setup/register.go
@@ -144,7 +144,6 @@ func RegisterAll(srv *grpc.Server, deps *service.Dependencies) {
deps.GetLocator(),
deps.GetGitCmdFactory(),
deps.GetPackObjectsCache(),
- deps.GetPackObjectsConcurrencyTracker(),
deps.GetPackObjectsLimiter(),
))
gitalypb.RegisterInternalGitalyServer(srv, internalgitaly.NewServer(
diff --git a/internal/gitaly/service/smarthttp/testhelper_test.go b/internal/gitaly/service/smarthttp/testhelper_test.go
index 585a4bc6a..c3f5fc751 100644
--- a/internal/gitaly/service/smarthttp/testhelper_test.go
+++ b/internal/gitaly/service/smarthttp/testhelper_test.go
@@ -61,7 +61,6 @@ func startSmartHTTPServerWithOptions(t *testing.T, cfg config.Cfg, opts []Server
deps.GetLocator(),
deps.GetGitCmdFactory(),
deps.GetPackObjectsCache(),
- deps.GetPackObjectsConcurrencyTracker(),
deps.GetPackObjectsLimiter(),
))
}, serverOpts...)
diff --git a/internal/gitaly/service/ssh/testhelper_test.go b/internal/gitaly/service/ssh/testhelper_test.go
index c7ededf68..8c3cb7796 100644
--- a/internal/gitaly/service/ssh/testhelper_test.go
+++ b/internal/gitaly/service/ssh/testhelper_test.go
@@ -40,7 +40,6 @@ func startSSHServerWithOptions(t *testing.T, cfg config.Cfg, opts []ServerOpt, s
deps.GetLocator(),
deps.GetGitCmdFactory(),
deps.GetPackObjectsCache(),
- deps.GetPackObjectsConcurrencyTracker(),
deps.GetPackObjectsLimiter(),
))
gitalypb.RegisterRepositoryServiceServer(srv, repository.NewServer(
diff --git a/internal/testhelper/testserver/gitaly.go b/internal/testhelper/testserver/gitaly.go
index 251b037b4..1b78c581d 100644
--- a/internal/testhelper/testserver/gitaly.go
+++ b/internal/testhelper/testserver/gitaly.go
@@ -251,26 +251,25 @@ func registerHealthServerIfNotRegistered(srv *grpc.Server) {
}
type gitalyServerDeps struct {
- disablePraefect bool
- logger *logrus.Logger
- conns *client.Pool
- locator storage.Locator
- txMgr transaction.Manager
- hookMgr hook.Manager
- gitlabClient gitlab.Client
- gitCmdFactory git.CommandFactory
- backchannelReg *backchannel.Registry
- catfileCache catfile.Cache
- diskCache cache.Cache
- packObjectsCache streamcache.Cache
- packObjectsConcurrencyTracker *hook.ConcurrencyTracker
- packObjectsLimiter limithandler.Limiter
- limitHandler *limithandler.LimiterMiddleware
- git2goExecutor *git2go.Executor
- updaterWithHooks *updateref.UpdaterWithHooks
- housekeepingManager housekeeping.Manager
- backupSink backup.Sink
- backupLocator backup.Locator
+ disablePraefect bool
+ logger *logrus.Logger
+ conns *client.Pool
+ locator storage.Locator
+ txMgr transaction.Manager
+ hookMgr hook.Manager
+ gitlabClient gitlab.Client
+ gitCmdFactory git.CommandFactory
+ backchannelReg *backchannel.Registry
+ catfileCache catfile.Cache
+ diskCache cache.Cache
+ packObjectsCache streamcache.Cache
+ packObjectsLimiter limithandler.Limiter
+ limitHandler *limithandler.LimiterMiddleware
+ git2goExecutor *git2go.Executor
+ updaterWithHooks *updateref.UpdaterWithHooks
+ housekeepingManager housekeeping.Manager
+ backupSink backup.Sink
+ backupLocator backup.Locator
}
func (gsd *gitalyServerDeps) createDependencies(tb testing.TB, cfg config.Cfg) *service.Dependencies {
@@ -323,10 +322,6 @@ func (gsd *gitalyServerDeps) createDependencies(tb testing.TB, cfg config.Cfg) *
tb.Cleanup(gsd.packObjectsCache.Stop)
}
- if gsd.packObjectsConcurrencyTracker == nil {
- gsd.packObjectsConcurrencyTracker = hook.NewConcurrencyTracker()
- }
-
if gsd.packObjectsLimiter == nil {
gsd.packObjectsLimiter = limithandler.NewConcurrencyLimiter(
0,
@@ -367,26 +362,25 @@ func (gsd *gitalyServerDeps) createDependencies(tb testing.TB, cfg config.Cfg) *
}
return &service.Dependencies{
- Cfg: cfg,
- ClientPool: gsd.conns,
- StorageLocator: gsd.locator,
- TransactionManager: gsd.txMgr,
- GitalyHookManager: gsd.hookMgr,
- GitCmdFactory: gsd.gitCmdFactory,
- BackchannelRegistry: gsd.backchannelReg,
- GitlabClient: gsd.gitlabClient,
- CatfileCache: gsd.catfileCache,
- DiskCache: gsd.diskCache,
- PackObjectsCache: gsd.packObjectsCache,
- PackObjectsLimiter: gsd.packObjectsLimiter,
- PackObjectsConcurrencyTracker: gsd.packObjectsConcurrencyTracker,
- LimitHandler: gsd.limitHandler,
- Git2goExecutor: gsd.git2goExecutor,
- UpdaterWithHooks: gsd.updaterWithHooks,
- HousekeepingManager: gsd.housekeepingManager,
- PartitionManager: partitionManager,
- BackupSink: gsd.backupSink,
- BackupLocator: gsd.backupLocator,
+ Cfg: cfg,
+ ClientPool: gsd.conns,
+ StorageLocator: gsd.locator,
+ TransactionManager: gsd.txMgr,
+ GitalyHookManager: gsd.hookMgr,
+ GitCmdFactory: gsd.gitCmdFactory,
+ BackchannelRegistry: gsd.backchannelReg,
+ GitlabClient: gsd.gitlabClient,
+ CatfileCache: gsd.catfileCache,
+ DiskCache: gsd.diskCache,
+ PackObjectsCache: gsd.packObjectsCache,
+ PackObjectsLimiter: gsd.packObjectsLimiter,
+ LimitHandler: gsd.limitHandler,
+ Git2goExecutor: gsd.git2goExecutor,
+ UpdaterWithHooks: gsd.updaterWithHooks,
+ HousekeepingManager: gsd.housekeepingManager,
+ PartitionManager: partitionManager,
+ BackupSink: gsd.backupSink,
+ BackupLocator: gsd.backupLocator,
}
}
@@ -466,15 +460,6 @@ func WithDiskCache(diskCache cache.Cache) GitalyServerOpt {
}
}
-// WithConcurrencyTracker sets the PackObjectsConcurrencyTracker that will be
-// used for gitaly services initialization.
-func WithConcurrencyTracker(tracker *hook.ConcurrencyTracker) GitalyServerOpt {
- return func(deps gitalyServerDeps) gitalyServerDeps {
- deps.packObjectsConcurrencyTracker = tracker
- return deps
- }
-}
-
// WithPackObjectsLimiter sets the PackObjectsLimiter that will be
// used for gitaly services initialization.
func WithPackObjectsLimiter(limiter *limithandler.ConcurrencyLimiter) GitalyServerOpt {