From 61dc67251e3a7bcf34ec89b822551fc095c35a44 Mon Sep 17 00:00:00 2001 From: Ashwin Phatak Date: Thu, 12 Aug 2021 15:49:06 +0530 Subject: [PATCH] Expose cache stats. --- postgres/database.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/postgres/database.go b/postgres/database.go index 0d6cfad..4abbc56 100644 --- a/postgres/database.go +++ b/postgres/database.go @@ -59,7 +59,7 @@ func NewKeyValueStore(db *sqlx.DB, cacheConfig CacheConfig) ethdb.KeyValueStore } // NewDatabase returns a ethdb.Database interface for PG-IPFS -func NewDatabase(db *sqlx.DB, cacheConfig CacheConfig) ethdb.Database { +func NewDatabase(db *sqlx.DB, cacheConfig CacheConfig) *Database { database := Database{db: db} database.InitCache(cacheConfig) @@ -69,6 +69,8 @@ func NewDatabase(db *sqlx.DB, cacheConfig CacheConfig) ethdb.Database { func (d *Database) InitCache(cacheConfig CacheConfig) { d.cache = groupcache.NewGroup(cacheConfig.Name, int64(cacheConfig.Size), groupcache.GetterFunc( func(_ context.Context, id string, dest groupcache.Sink) error { + fmt.Println("Cache miss, fetching from DB:", id) + val, err := d.dbGet(id) if err != nil { @@ -85,6 +87,10 @@ func (d *Database) InitCache(cacheConfig CacheConfig) { )) } +func (d *Database) GetCacheStats() groupcache.Stats { + return d.cache.Stats +} + // Has satisfies the ethdb.KeyValueReader interface // Has retrieves if a key is present in the key-value data store func (d *Database) Has(key []byte) (bool, error) { @@ -113,6 +119,8 @@ func (d *Database) Get(key []byte) ([]byte, error) { ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*500) defer cancel() + fmt.Println("GET request: ", mhKey) + var data []byte return data, d.cache.Get(ctx, mhKey, groupcache.AllocatingByteSliceSink(&data)) }