Skip to content

Commit

Permalink
Skip key generation if cache disabled (#170)
Browse files Browse the repository at this point in the history
  • Loading branch information
rmweir authored Apr 19, 2024
1 parent dc4a394 commit d42a5bc
Showing 1 changed file with 17 additions and 13 deletions.
30 changes: 17 additions & 13 deletions pkg/stores/partition/store.go
Original file line number Diff line number Diff line change
Expand Up @@ -175,18 +175,22 @@ func (s *Store) List(apiOp *types.APIRequest, schema *types.APISchema) (types.AP

opts := listprocessor.ParseQuery(apiOp)

key, err := s.getCacheKey(apiOp, opts)
if err != nil {
return result, err
}

var list []unstructured.Unstructured
if key.revision != "" && s.listCache != nil {
cachedList, ok := s.listCache.Get(key)
if ok {
logrus.Tracef("found cached list for query %s?%s", apiOp.Request.URL.Path, apiOp.Request.URL.RawQuery)
list = cachedList.(*unstructured.UnstructuredList).Items
result.Continue = cachedList.(*unstructured.UnstructuredList).GetContinue()
var key cacheKey
if s.listCache != nil {
key, err = s.getCacheKey(apiOp, opts)
if err != nil {
return result, err
}

if key.revision != "" {
cachedList, ok := s.listCache.Get(key)
if ok {
logrus.Tracef("found cached list for query %s?%s", apiOp.Request.URL.Path, apiOp.Request.URL.RawQuery)
list = cachedList.(*unstructured.UnstructuredList).Items
result.Continue = cachedList.(*unstructured.UnstructuredList).GetContinue()
result.Revision = key.revision
}
}
}
if list == nil { // did not look in cache or was not found in cache
Expand All @@ -202,7 +206,7 @@ func (s *Store) List(apiOp *types.APIRequest, schema *types.APISchema) (types.AP
return result, lister.Err()
}
list = listprocessor.SortList(list, opts.Sort)
key.revision = lister.Revision()
result.Revision = lister.Revision()
listToCache := &unstructured.UnstructuredList{
Items: list,
}
Expand All @@ -212,6 +216,7 @@ func (s *Store) List(apiOp *types.APIRequest, schema *types.APISchema) (types.AP
listToCache.SetContinue(c)
}
if s.listCache != nil {
key.revision = result.Revision
s.listCache.Add(key, listToCache, 30*time.Minute)
}
result.Continue = lister.Continue()
Expand All @@ -224,7 +229,6 @@ func (s *Store) List(apiOp *types.APIRequest, schema *types.APISchema) (types.AP
result.Objects = append(result.Objects, toAPI(schema, item, nil))
}

result.Revision = key.revision
result.Pages = pages
return result, lister.Err()
}
Expand Down

0 comments on commit d42a5bc

Please sign in to comment.