diff options
author | Neil Alexander <neilalexander@users.noreply.github.com> | 2020-08-20 16:24:33 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-20 16:24:33 +0100 |
commit | 068a3d3c9f9be3473b68e3a13912182caf1c7117 (patch) | |
tree | 1a4731a46ea5f484c573b7245a078bae1f9c4b8e /roomserver/storage/sqlite3/room_aliases_table.go | |
parent | 0fea056db43c11c5de97fd96bcc60703ca1b4c08 (diff) |
Roomserver per-room input parallelisation (Postgres) (#1289)
* Per-room input mutex
* GetMembership should use transaction when assigning state key NID
* Actually use writer transactions rather than ignoring them
* Limit per-room mutexes to Postgres
* Flip the check in InputRoomEvents
Diffstat (limited to 'roomserver/storage/sqlite3/room_aliases_table.go')
-rw-r--r-- | roomserver/storage/sqlite3/room_aliases_table.go | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/roomserver/storage/sqlite3/room_aliases_table.go b/roomserver/storage/sqlite3/room_aliases_table.go index a16e97aa..f053e398 100644 --- a/roomserver/storage/sqlite3/room_aliases_table.go +++ b/roomserver/storage/sqlite3/room_aliases_table.go @@ -20,6 +20,7 @@ import ( "database/sql" "github.com/matrix-org/dendrite/internal" + "github.com/matrix-org/dendrite/internal/sqlutil" "github.com/matrix-org/dendrite/roomserver/storage/shared" "github.com/matrix-org/dendrite/roomserver/storage/tables" ) @@ -81,9 +82,10 @@ func NewSqliteRoomAliasesTable(db *sql.DB) (tables.RoomAliases, error) { } func (s *roomAliasesStatements) InsertRoomAlias( - ctx context.Context, alias string, roomID string, creatorUserID string, + ctx context.Context, txn *sql.Tx, alias string, roomID string, creatorUserID string, ) error { - _, err := s.insertRoomAliasStmt.ExecContext(ctx, alias, roomID, creatorUserID) + stmt := sqlutil.TxStmt(txn, s.insertRoomAliasStmt) + _, err := stmt.ExecContext(ctx, alias, roomID, creatorUserID) return err } @@ -131,8 +133,9 @@ func (s *roomAliasesStatements) SelectCreatorIDFromAlias( } func (s *roomAliasesStatements) DeleteRoomAlias( - ctx context.Context, alias string, + ctx context.Context, txn *sql.Tx, alias string, ) error { - _, err := s.deleteRoomAliasStmt.ExecContext(ctx, alias) + stmt := sqlutil.TxStmt(txn, s.deleteRoomAliasStmt) + _, err := stmt.ExecContext(ctx, alias) return err } |