)
type cache struct {
- TTL arvados.Duration
- CollectionEntries int
- CollectionBytes int64
- PermissionEntries int
- UUIDEntries int
+ TTL arvados.Duration
+ MaxCollectionEntries int
+ MaxCollectionBytes int64
+ MaxPermissionEntries int
+ MaxUUIDEntries int
stats cacheStats
pdhs *lru.TwoQueueCache
func (c *cache) setup() {
var err error
- c.pdhs, err = lru.New2Q(c.UUIDEntries)
+ c.pdhs, err = lru.New2Q(c.MaxUUIDEntries)
if err != nil {
panic(err)
}
- c.collections, err = lru.New2Q(c.CollectionEntries)
+ c.collections, err = lru.New2Q(c.MaxCollectionEntries)
if err != nil {
panic(err)
}
- c.permissions, err = lru.New2Q(c.PermissionEntries)
+ c.permissions, err = lru.New2Q(c.MaxPermissionEntries)
if err != nil {
panic(err)
}
expire: exp,
collection: collection,
})
- if int64(len(collection["manifest_text"].(string))) > c.CollectionBytes/int64(c.CollectionEntries) {
+ if int64(len(collection["manifest_text"].(string))) > c.MaxCollectionBytes/int64(c.MaxCollectionEntries) {
c.pruneCollections()
}
return collection, nil
}
}
for i, k := range keys {
- if size <= c.CollectionBytes {
+ if size <= c.MaxCollectionBytes {
break
}
if expired[i] {
return &Config{
Listen: ":80",
Cache: cache{
- TTL: arvados.Duration(5 * time.Minute),
- CollectionEntries: 100,
- CollectionBytes: 100000000,
- PermissionEntries: 100,
- UUIDEntries: 100,
+ TTL: arvados.Duration(5 * time.Minute),
+ MaxCollectionEntries: 100,
+ MaxCollectionBytes: 100000000,
+ MaxPermissionEntries: 100,
+ MaxUUIDEntries: 100,
},
}
}
Maximum time to cache collection data and permission checks.
-Cache.CollectionEntries:
+Cache.MaxCollectionEntries:
Maximum number of collection cache entries.
-Cache.CollectionBytes:
+Cache.MaxCollectionBytes:
Approximate memory limit for collection cache.
-Cache.PermissionEntries:
+Cache.MaxPermissionEntries:
Maximum number of permission cache entries.
-Cache.UUIDEntries:
+Cache.MaxUUIDEntries:
Maximum number of UUID cache entries.