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:
authorPatrick Steinhardt <psteinhardt@gitlab.com>2021-05-05 13:58:46 +0300
committerPatrick Steinhardt <psteinhardt@gitlab.com>2021-05-10 09:26:28 +0300
commit526f32d2398302b952e5840ff6e182ac5f271b12 (patch)
tree4a062290acaf7fd62c1093568fdb53d98ab62f3a
parentdb551f291a7b985920b98f70914d8df63afcb222 (diff)
blob: Inject catfile cache
Instead of using the global catfile cache, refactor the service to use the injected catfile cache.
-rw-r--r--internal/gitaly/service/blob/get_blob.go2
-rw-r--r--internal/gitaly/service/blob/get_blobs.go2
-rw-r--r--internal/gitaly/service/blob/server.go5
-rw-r--r--internal/gitaly/service/blob/testhelper_test.go7
-rw-r--r--internal/gitaly/service/setup/register.go7
5 files changed, 18 insertions, 5 deletions
diff --git a/internal/gitaly/service/blob/get_blob.go b/internal/gitaly/service/blob/get_blob.go
index 213552416..6116a9c99 100644
--- a/internal/gitaly/service/blob/get_blob.go
+++ b/internal/gitaly/service/blob/get_blob.go
@@ -20,7 +20,7 @@ func (s *server) GetBlob(in *gitalypb.GetBlobRequest, stream gitalypb.BlobServic
return status.Errorf(codes.InvalidArgument, "GetBlob: %v", err)
}
- c, err := catfile.New(stream.Context(), s.gitCmdFactory, in.Repository)
+ c, err := s.catfileCache.BatchProcess(stream.Context(), in.Repository)
if err != nil {
return status.Errorf(codes.Internal, "GetBlob: %v", err)
}
diff --git a/internal/gitaly/service/blob/get_blobs.go b/internal/gitaly/service/blob/get_blobs.go
index 2dcf4122f..1de3c5b65 100644
--- a/internal/gitaly/service/blob/get_blobs.go
+++ b/internal/gitaly/service/blob/get_blobs.go
@@ -144,7 +144,7 @@ func (s *server) GetBlobs(req *gitalypb.GetBlobsRequest, stream gitalypb.BlobSer
return err
}
- c, err := catfile.New(stream.Context(), s.gitCmdFactory, req.Repository)
+ c, err := s.catfileCache.BatchProcess(stream.Context(), req.Repository)
if err != nil {
return err
}
diff --git a/internal/gitaly/service/blob/server.go b/internal/gitaly/service/blob/server.go
index dee0badc5..3a5847d60 100644
--- a/internal/gitaly/service/blob/server.go
+++ b/internal/gitaly/service/blob/server.go
@@ -2,6 +2,7 @@ package blob
import (
"gitlab.com/gitlab-org/gitaly/internal/git"
+ "gitlab.com/gitlab-org/gitaly/internal/git/catfile"
"gitlab.com/gitlab-org/gitaly/internal/git/localrepo"
"gitlab.com/gitlab-org/gitaly/internal/git/repository"
"gitlab.com/gitlab-org/gitaly/internal/gitaly/config"
@@ -13,14 +14,16 @@ type server struct {
cfg config.Cfg
locator storage.Locator
gitCmdFactory git.CommandFactory
+ catfileCache catfile.Cache
}
// NewServer creates a new instance of a grpc BlobServer
-func NewServer(cfg config.Cfg, locator storage.Locator, gitCmdFactory git.CommandFactory) gitalypb.BlobServiceServer {
+func NewServer(cfg config.Cfg, locator storage.Locator, gitCmdFactory git.CommandFactory, catfileCache catfile.Cache) gitalypb.BlobServiceServer {
return &server{
cfg: cfg,
locator: locator,
gitCmdFactory: gitCmdFactory,
+ catfileCache: catfileCache,
}
}
diff --git a/internal/gitaly/service/blob/testhelper_test.go b/internal/gitaly/service/blob/testhelper_test.go
index 07df48c2d..8b99b8752 100644
--- a/internal/gitaly/service/blob/testhelper_test.go
+++ b/internal/gitaly/service/blob/testhelper_test.go
@@ -35,7 +35,12 @@ func setup(t *testing.T) (config.Cfg, *gitalypb.Repository, string, gitalypb.Blo
t.Cleanup(cleanup)
addr := testserver.RunGitalyServer(t, cfg, nil, func(srv *grpc.Server, deps *service.Dependencies) {
- gitalypb.RegisterBlobServiceServer(srv, NewServer(deps.GetCfg(), deps.GetLocator(), deps.GetGitCmdFactory()))
+ gitalypb.RegisterBlobServiceServer(srv, NewServer(
+ deps.GetCfg(),
+ deps.GetLocator(),
+ deps.GetGitCmdFactory(),
+ deps.GetCatfileCache(),
+ ))
})
conn, err := grpc.Dial(addr, grpc.WithInsecure())
diff --git a/internal/gitaly/service/setup/register.go b/internal/gitaly/service/setup/register.go
index d913ed1bc..35354d479 100644
--- a/internal/gitaly/service/setup/register.go
+++ b/internal/gitaly/service/setup/register.go
@@ -53,7 +53,12 @@ var (
// RegisterAll will register all the known gRPC services on the provided gRPC service instance.
func RegisterAll(srv *grpc.Server, deps *service.Dependencies) {
- gitalypb.RegisterBlobServiceServer(srv, blob.NewServer(deps.GetCfg(), deps.GetLocator(), deps.GetGitCmdFactory()))
+ gitalypb.RegisterBlobServiceServer(srv, blob.NewServer(
+ deps.GetCfg(),
+ deps.GetLocator(),
+ deps.GetGitCmdFactory(),
+ deps.GetCatfileCache(),
+ ))
gitalypb.RegisterCleanupServiceServer(srv, cleanup.NewServer(deps.GetCfg(), deps.GetGitCmdFactory()))
gitalypb.RegisterCommitServiceServer(srv, commit.NewServer(deps.GetCfg(), deps.GetLocator(), deps.GetGitCmdFactory(), deps.GetLinguist()))
gitalypb.RegisterDiffServiceServer(srv, diff.NewServer(deps.GetCfg(), deps.GetLocator(), deps.GetGitCmdFactory()))