feat: [AH-339]: refactor garbage collector (#2761)

* resolve comments
* fix formatting
* refactor gc
This commit is contained in:
Tudor Macari 2024-10-03 11:03:33 +00:00 committed by Harness
parent 2e2cbfa825
commit 138cebe6d4
5 changed files with 11 additions and 18 deletions

View File

@ -434,7 +434,7 @@ func initSystem(ctx context.Context, config *types.Config) (*server.System, erro
blobRepository := database2.ProvideBlobDao(db, mediaTypesRepository)
storageService := docker.StorageServiceProvider(config, storageDriver)
gcService := gc.ServiceProvider()
app := docker.NewApp(ctx, db, storageDeleter, blobRepository, spaceStore, config, storageService, gcService)
app := docker.NewApp(ctx, storageDeleter, blobRepository, spaceStore, config, storageService, gcService)
registryRepository := database2.ProvideRepoDao(db, mediaTypesRepository)
manifestRepository := database2.ProvideManifestDao(db, mediaTypesRepository)
manifestReferenceRepository := database2.ProvideManifestRefDao(db)

View File

@ -31,7 +31,6 @@ import (
"github.com/harness/gitness/registry/gc"
"github.com/harness/gitness/types"
"github.com/jmoiron/sqlx"
"github.com/opencontainers/go-digest"
"github.com/rs/zerolog/log"
)
@ -52,7 +51,7 @@ type App struct {
// NewApp takes a configuration and returns a configured app.
func NewApp(
ctx context.Context, sqlDB *sqlx.DB, storageDeleter storagedriver.StorageDeleter,
ctx context.Context, storageDeleter storagedriver.StorageDeleter,
blobRepo store.BlobRepository, spaceStore corestore.SpaceStore,
cfg *types.Config, storageService *registrystorage.Service,
gcService gc.Service,
@ -63,7 +62,7 @@ func NewApp(
storageService: storageService,
}
app.configureSecret(cfg)
gcService.Start(ctx, sqlDB, spaceStore, blobRepo, storageDeleter, cfg)
gcService.Start(ctx, spaceStore, blobRepo, storageDeleter, cfg)
return app
}

View File

@ -451,7 +451,6 @@ type GCBlobTaskRepository interface {
}
type GCManifestTaskRepository interface {
FindAll(ctx context.Context) ([]*types.GCManifestTask, error)
FindAndLock(
ctx context.Context, registryID,
manifestID int64,
@ -464,7 +463,6 @@ type GCManifestTaskRepository interface {
ctx context.Context, registryID int64,
manifestIDs []int64, date time.Time,
) ([]*types.GCManifestTask, error)
Count(ctx context.Context) (int, error)
Next(ctx context.Context) (*types.GCManifestTask, error)
Postpone(ctx context.Context, b *types.GCManifestTask, d time.Duration) error
IsDangling(ctx context.Context, b *types.GCManifestTask) (bool, error)

View File

@ -23,8 +23,6 @@ import (
"github.com/harness/gitness/registry/app/store"
registrytypes "github.com/harness/gitness/registry/types"
"github.com/harness/gitness/types"
"github.com/jmoiron/sqlx"
)
type Noop struct{}
@ -34,25 +32,25 @@ func New() Service {
}
func (s *Noop) Start(
_ context.Context, _ *sqlx.DB, _ corestore.SpaceStore,
_ store.BlobRepository, _ storagedriver.StorageDeleter,
_ *types.Config,
context.Context, corestore.SpaceStore,
store.BlobRepository, storagedriver.StorageDeleter,
*types.Config,
) {
// NOOP
}
func (s *Noop) BlobFindAndLockBefore(_ context.Context, _ int64, _ time.Time) (*registrytypes.GCBlobTask, error) {
func (s *Noop) BlobFindAndLockBefore(context.Context, int64, time.Time) (*registrytypes.GCBlobTask, error) {
// NOOP
//nolint:nilnil
return nil, nil
}
func (s *Noop) BlobReschedule(_ context.Context, _ *registrytypes.GCBlobTask, _ time.Duration) error {
func (s *Noop) BlobReschedule(context.Context, *registrytypes.GCBlobTask, time.Duration) error {
// NOOP
return nil
}
func (s *Noop) ManifestFindAndLockBefore(_ context.Context, _, _ int64, _ time.Time) (
func (s *Noop) ManifestFindAndLockBefore(context.Context, int64, int64, time.Time) (
*registrytypes.GCManifestTask, error,
) {
// NOOP
@ -60,7 +58,7 @@ func (s *Noop) ManifestFindAndLockBefore(_ context.Context, _, _ int64, _ time.T
return nil, nil
}
func (s *Noop) ManifestFindAndLockNBefore(_ context.Context, _ int64, _ []int64, _ time.Time) (
func (s *Noop) ManifestFindAndLockNBefore(context.Context, int64, []int64, time.Time) (
[]*registrytypes.GCManifestTask, error,
) {
// NOOP

View File

@ -23,13 +23,11 @@ import (
"github.com/harness/gitness/registry/app/store"
registrytypes "github.com/harness/gitness/registry/types"
"github.com/harness/gitness/types"
"github.com/jmoiron/sqlx"
)
type Service interface {
Start(
ctx context.Context, sqlDB *sqlx.DB, spaceStore corestore.SpaceStore,
ctx context.Context, spaceStore corestore.SpaceStore,
blobRepo store.BlobRepository, storageDeleter storagedriver.StorageDeleter,
config *types.Config,
)