aboutsummaryrefslogtreecommitdiff
path: root/roomserver
diff options
context:
space:
mode:
authorNeil Alexander <neilalexander@users.noreply.github.com>2022-02-18 10:58:41 +0000
committerGitHub <noreply@github.com>2022-02-18 10:58:41 +0000
commit131bedc1a11135eb1f67a26389fe8f53c82c537d (patch)
tree1c66c0fde3098629948198c1d7262e559fd24921 /roomserver
parente1eb5807b66940490291983be905f2849539aa7f (diff)
Remove event type and state key caches (#2200)
* Don't proactively cache event types and state keys when we don't know if the transaction has persisted yet * Remove event type and state key caches altogether
Diffstat (limited to 'roomserver')
-rw-r--r--roomserver/storage/shared/storage.go54
1 files changed, 10 insertions, 44 deletions
diff --git a/roomserver/storage/shared/storage.go b/roomserver/storage/shared/storage.go
index 9f3b8b1d..b255cfb3 100644
--- a/roomserver/storage/shared/storage.go
+++ b/roomserver/storage/shared/storage.go
@@ -59,23 +59,12 @@ func (d *Database) eventTypeNIDs(
ctx context.Context, txn *sql.Tx, eventTypes []string,
) (map[string]types.EventTypeNID, error) {
result := make(map[string]types.EventTypeNID)
- remaining := []string{}
- for _, eventType := range eventTypes {
- if nid, ok := d.Cache.GetRoomServerEventTypeNID(eventType); ok {
- result[eventType] = nid
- } else {
- remaining = append(remaining, eventType)
- }
+ nids, err := d.EventTypesTable.BulkSelectEventTypeNID(ctx, txn, eventTypes)
+ if err != nil {
+ return nil, err
}
- if len(remaining) > 0 {
- nids, err := d.EventTypesTable.BulkSelectEventTypeNID(ctx, txn, remaining)
- if err != nil {
- return nil, err
- }
- for eventType, nid := range nids {
- result[eventType] = nid
- d.Cache.StoreRoomServerEventTypeNID(eventType, nid)
- }
+ for eventType, nid := range nids {
+ result[eventType] = nid
}
return result, nil
}
@@ -96,23 +85,12 @@ func (d *Database) eventStateKeyNIDs(
ctx context.Context, txn *sql.Tx, eventStateKeys []string,
) (map[string]types.EventStateKeyNID, error) {
result := make(map[string]types.EventStateKeyNID)
- remaining := []string{}
- for _, eventStateKey := range eventStateKeys {
- if nid, ok := d.Cache.GetRoomServerStateKeyNID(eventStateKey); ok {
- result[eventStateKey] = nid
- } else {
- remaining = append(remaining, eventStateKey)
- }
+ nids, err := d.EventStateKeysTable.BulkSelectEventStateKeyNID(ctx, txn, eventStateKeys)
+ if err != nil {
+ return nil, err
}
- if len(remaining) > 0 {
- nids, err := d.EventStateKeysTable.BulkSelectEventStateKeyNID(ctx, txn, remaining)
- if err != nil {
- return nil, err
- }
- for eventStateKey, nid := range nids {
- result[eventStateKey] = nid
- d.Cache.StoreRoomServerStateKeyNID(eventStateKey, nid)
- }
+ for eventStateKey, nid := range nids {
+ result[eventStateKey] = nid
}
return result, nil
}
@@ -718,9 +696,6 @@ func (d *Database) assignRoomNID(
func (d *Database) assignEventTypeNID(
ctx context.Context, txn *sql.Tx, eventType string,
) (types.EventTypeNID, error) {
- if eventTypeNID, ok := d.Cache.GetRoomServerEventTypeNID(eventType); ok {
- return eventTypeNID, nil
- }
// Check if we already have a numeric ID in the database.
eventTypeNID, err := d.EventTypesTable.SelectEventTypeNID(ctx, txn, eventType)
if err == sql.ErrNoRows {
@@ -731,18 +706,12 @@ func (d *Database) assignEventTypeNID(
eventTypeNID, err = d.EventTypesTable.SelectEventTypeNID(ctx, txn, eventType)
}
}
- if err == nil {
- d.Cache.StoreRoomServerEventTypeNID(eventType, eventTypeNID)
- }
return eventTypeNID, err
}
func (d *Database) assignStateKeyNID(
ctx context.Context, txn *sql.Tx, eventStateKey string,
) (types.EventStateKeyNID, error) {
- if eventStateKeyNID, ok := d.Cache.GetRoomServerStateKeyNID(eventStateKey); ok {
- return eventStateKeyNID, nil
- }
// Check if we already have a numeric ID in the database.
eventStateKeyNID, err := d.EventStateKeysTable.SelectEventStateKeyNID(ctx, txn, eventStateKey)
if err == sql.ErrNoRows {
@@ -753,9 +722,6 @@ func (d *Database) assignStateKeyNID(
eventStateKeyNID, err = d.EventStateKeysTable.SelectEventStateKeyNID(ctx, txn, eventStateKey)
}
}
- if err == nil {
- d.Cache.StoreRoomServerStateKeyNID(eventStateKey, eventStateKeyNID)
- }
return eventStateKeyNID, err
}