Expose cache stats.

This commit is contained in:
Ashwin Phatak 2021-08-12 15:49:06 +05:30
parent 6776b67998
commit 61dc67251e

View File

@ -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))
}