12216: Separate config for uuid->pdh cache TTL, default 5 seconds.
authorTom Clegg <tclegg@veritasgenetics.com>
Tue, 17 Oct 2017 15:06:16 +0000 (11:06 -0400)
committerTom Clegg <tclegg@veritasgenetics.com>
Tue, 17 Oct 2017 15:06:16 +0000 (11:06 -0400)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg@veritasgenetics.com>

services/keep-web/cache.go
services/keep-web/main.go

index c29ae7d43c270b129c0bf459aab25df927dc0407..ce1168acd2c1d07bcd6e8623c5421bcbe905f04c 100644 (file)
@@ -16,6 +16,7 @@ import (
 
 type cache struct {
        TTL                  arvados.Duration
+       UUIDTTL              arvados.Duration
        MaxCollectionEntries int
        MaxCollectionBytes   int64
        MaxPermissionEntries int
@@ -135,13 +136,12 @@ func (c *cache) Get(arv *arvadosclient.ArvadosClient, targetID string, forceRelo
                        return nil, err
                }
                if current.PortableDataHash == pdh {
-                       exp := time.Now().Add(time.Duration(c.TTL))
                        c.permissions.Add(permKey, &cachedPermission{
-                               expire: exp,
+                               expire: time.Now().Add(time.Duration(c.TTL)),
                        })
                        if pdh != targetID {
                                c.pdhs.Add(targetID, &cachedPDH{
-                                       expire: exp,
+                                       expire: time.Now().Add(time.Duration(c.UUIDTTL)),
                                        pdh:    pdh,
                                })
                        }
@@ -167,7 +167,7 @@ func (c *cache) Get(arv *arvadosclient.ArvadosClient, targetID string, forceRelo
                expire: exp,
        })
        c.pdhs.Add(targetID, &cachedPDH{
-               expire: exp,
+               expire: time.Now().Add(time.Duration(c.UUIDTTL)),
                pdh:    collection.PortableDataHash,
        })
        c.collections.Add(arv.ApiToken+"\000"+collection.PortableDataHash, &cachedCollection{
index 585dab13e3cbf0ce68ef620c6dad31e4a17c974b..27ceb48c78bfebbc40aa9d3732cbcbba6ad63155 100644 (file)
@@ -45,6 +45,7 @@ func DefaultConfig() *Config {
                Listen: ":80",
                Cache: cache{
                        TTL:                  arvados.Duration(5 * time.Minute),
+                       UUIDTTL:              arvados.Duration(5 * time.Second),
                        MaxCollectionEntries: 1000,
                        MaxCollectionBytes:   100000000,
                        MaxPermissionEntries: 1000,