diff options
author | Patrick Steinhardt <psteinhardt@gitlab.com> | 2021-05-05 13:58:46 +0300 |
---|---|---|
committer | Patrick Steinhardt <psteinhardt@gitlab.com> | 2021-05-10 09:26:28 +0300 |
commit | 526f32d2398302b952e5840ff6e182ac5f271b12 (patch) | |
tree | 4a062290acaf7fd62c1093568fdb53d98ab62f3a | |
parent | db551f291a7b985920b98f70914d8df63afcb222 (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.go | 2 | ||||
-rw-r--r-- | internal/gitaly/service/blob/get_blobs.go | 2 | ||||
-rw-r--r-- | internal/gitaly/service/blob/server.go | 5 | ||||
-rw-r--r-- | internal/gitaly/service/blob/testhelper_test.go | 7 | ||||
-rw-r--r-- | internal/gitaly/service/setup/register.go | 7 |
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())) |