Re-enable caching on server key API component

This commit is contained in:
Neil Alexander 2020-05-19 17:56:55 +01:00
parent 14565ec4a4
commit 9b783f9b49
2 changed files with 10 additions and 5 deletions

View file

@ -7,6 +7,7 @@ import (
"github.com/matrix-org/dendrite/common/basecomponent" "github.com/matrix-org/dendrite/common/basecomponent"
"github.com/matrix-org/dendrite/serverkeyapi/internal" "github.com/matrix-org/dendrite/serverkeyapi/internal"
"github.com/matrix-org/dendrite/serverkeyapi/storage" "github.com/matrix-org/dendrite/serverkeyapi/storage"
"github.com/matrix-org/dendrite/serverkeyapi/storage/cache"
"github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/gomatrixserverlib"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
) )
@ -15,7 +16,7 @@ func SetupServerKeyAPIComponent(
base *basecomponent.BaseDendrite, base *basecomponent.BaseDendrite,
fedClient *gomatrixserverlib.FederationClient, fedClient *gomatrixserverlib.FederationClient,
) *internal.ServerKeyAPI { ) *internal.ServerKeyAPI {
serverKeyDB, err := storage.NewDatabase( innerDB, err := storage.NewDatabase(
string(base.Cfg.Database.ServerKey), string(base.Cfg.Database.ServerKey),
base.Cfg.DbProperties(), base.Cfg.DbProperties(),
base.Cfg.Matrix.ServerName, base.Cfg.Matrix.ServerName,
@ -23,7 +24,12 @@ func SetupServerKeyAPIComponent(
base.Cfg.Matrix.KeyID, base.Cfg.Matrix.KeyID,
) )
if err != nil { 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{ internalAPI := internal.ServerKeyAPI{

View file

@ -5,18 +5,17 @@ import (
"errors" "errors"
"github.com/matrix-org/dendrite/common/caching" "github.com/matrix-org/dendrite/common/caching"
"github.com/matrix-org/dendrite/common/keydb"
"github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/gomatrixserverlib"
) )
// A Database implements gomatrixserverlib.KeyDatabase and is used to store // A Database implements gomatrixserverlib.KeyDatabase and is used to store
// the public keys for other matrix servers. // the public keys for other matrix servers.
type KeyDatabase struct { type KeyDatabase struct {
inner keydb.Database inner gomatrixserverlib.KeyDatabase
cache caching.ImmutableCache 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 { if inner == nil {
return nil, errors.New("inner database can't be nil") return nil, errors.New("inner database can't be nil")
} }