From c5d900aa43e1c86b69f923b408e11ab8df8d815c Mon Sep 17 00:00:00 2001 From: Zane van Iperen Date: Fri, 7 Oct 2022 19:54:02 +1000 Subject: [PATCH] scanner: remove cached genre repository Not needed anytmore. And remember: "Many Small Queries Are Efficient In SQLite" [1]. [1]: https://www.sqlite.org/np1queryprob.html --- scanner/cached_genre_repository.go | 45 ------------------------------ scanner/mapping_test.go | 1 - scanner/tag_scanner.go | 2 +- 3 files changed, 1 insertion(+), 47 deletions(-) delete mode 100644 scanner/cached_genre_repository.go diff --git a/scanner/cached_genre_repository.go b/scanner/cached_genre_repository.go deleted file mode 100644 index 8423a5b7..00000000 --- a/scanner/cached_genre_repository.go +++ /dev/null @@ -1,45 +0,0 @@ -package scanner - -import ( - "context" - "strings" - "time" - - "github.com/ReneKroon/ttlcache/v2" - "github.com/navidrome/navidrome/log" - "github.com/navidrome/navidrome/model" -) - -func newCachedGenreRepository(ctx context.Context, repo model.GenreRepository) model.GenreRepository { - r := &cachedGenreRepo{ - GenreRepository: repo, - ctx: ctx, - } - genres, err := repo.GetAll() - if err != nil { - log.Error(ctx, "Could not load genres from DB", err) - return repo - } - - r.cache = ttlcache.NewCache() - for _, g := range genres { - _ = r.cache.Set(strings.ToLower(g.Name), g.ID) - } - - return r -} - -type cachedGenreRepo struct { - model.GenreRepository - cache *ttlcache.Cache - ctx context.Context -} - -func (r *cachedGenreRepo) Put(g *model.Genre) error { - id, err := r.cache.GetByLoader(strings.ToLower(g.Name), func(key string) (interface{}, time.Duration, error) { - err := r.GenreRepository.Put(g) - return g.ID, 24 * time.Hour, err - }) - g.ID = id.(string) - return err -} diff --git a/scanner/mapping_test.go b/scanner/mapping_test.go index f2281c1b..55b2b4a1 100644 --- a/scanner/mapping_test.go +++ b/scanner/mapping_test.go @@ -34,7 +34,6 @@ var _ = Describe("mapping", func() { ctx = context.Background() ds := &tests.MockDataStore{} gr = ds.Genre(ctx) - gr = newCachedGenreRepository(ctx, gr) mapper = newMediaFileMapper("/", gr) }) diff --git a/scanner/tag_scanner.go b/scanner/tag_scanner.go index 6bd654ec..d43c2e43 100644 --- a/scanner/tag_scanner.go +++ b/scanner/tag_scanner.go @@ -83,7 +83,7 @@ func (s *TagScanner) Scan(ctx context.Context, lastModifiedSince time.Time, prog allFSDirs := dirMap{} var changedDirs []string s.cnt = &counters{} - genres := newCachedGenreRepository(ctx, s.ds.Genre(ctx)) + genres := s.ds.Genre(ctx) s.mapper = newMediaFileMapper(s.rootFolder, genres) foldersFound, walkerError := s.getRootFolderWalker(ctx)