From 9b783f9b4963169cccee6028f1110b2ad8c5ddd5 Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Tue, 19 May 2020 17:56:55 +0100 Subject: [PATCH] Re-enable caching on server key API component --- serverkeyapi/serverkeyapi.go | 10 ++++++++-- serverkeyapi/storage/cache/keydb.go | 5 ++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/serverkeyapi/serverkeyapi.go b/serverkeyapi/serverkeyapi.go index 81e8ce47b..6757efcf9 100644 --- a/serverkeyapi/serverkeyapi.go +++ b/serverkeyapi/serverkeyapi.go @@ -7,6 +7,7 @@ import ( "github.com/matrix-org/dendrite/common/basecomponent" "github.com/matrix-org/dendrite/serverkeyapi/internal" "github.com/matrix-org/dendrite/serverkeyapi/storage" + "github.com/matrix-org/dendrite/serverkeyapi/storage/cache" "github.com/matrix-org/gomatrixserverlib" "github.com/sirupsen/logrus" ) @@ -15,7 +16,7 @@ func SetupServerKeyAPIComponent( base *basecomponent.BaseDendrite, fedClient *gomatrixserverlib.FederationClient, ) *internal.ServerKeyAPI { - serverKeyDB, err := storage.NewDatabase( + innerDB, err := storage.NewDatabase( string(base.Cfg.Database.ServerKey), base.Cfg.DbProperties(), base.Cfg.Matrix.ServerName, @@ -23,7 +24,12 @@ func SetupServerKeyAPIComponent( base.Cfg.Matrix.KeyID, ) if err != nil { - logrus.WithError(err).Panicf("failed to connect to room server db") + logrus.WithError(err).Panicf("failed to connect to server key database") + } + + serverKeyDB, err := cache.NewKeyDatabase(innerDB, base.ImmutableCache) + if err != nil { + logrus.WithError(err).Panicf("failed to set up caching wrapper for server key database") } internalAPI := internal.ServerKeyAPI{ diff --git a/serverkeyapi/storage/cache/keydb.go b/serverkeyapi/storage/cache/keydb.go index ae929fa4c..6a00d330c 100644 --- a/serverkeyapi/storage/cache/keydb.go +++ b/serverkeyapi/storage/cache/keydb.go @@ -5,18 +5,17 @@ import ( "errors" "github.com/matrix-org/dendrite/common/caching" - "github.com/matrix-org/dendrite/common/keydb" "github.com/matrix-org/gomatrixserverlib" ) // A Database implements gomatrixserverlib.KeyDatabase and is used to store // the public keys for other matrix servers. type KeyDatabase struct { - inner keydb.Database + inner gomatrixserverlib.KeyDatabase cache caching.ImmutableCache } -func NewKeyDatabase(inner keydb.Database, cache caching.ImmutableCache) (*KeyDatabase, error) { +func NewKeyDatabase(inner gomatrixserverlib.KeyDatabase, cache caching.ImmutableCache) (*KeyDatabase, error) { if inner == nil { return nil, errors.New("inner database can't be nil") }