Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Stop writing to event_reference_hashes #12679

Merged
merged 2 commits into from
May 10, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/12679.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Preparation for database schema simplifications: stop writing to `event_reference_hashes`.
25 changes: 0 additions & 25 deletions synapse/storage/databases/main/events.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@
import synapse.metrics
from synapse.api.constants import EventContentFields, EventTypes, RelationTypes
from synapse.api.room_versions import RoomVersions
from synapse.crypto.event_signing import compute_event_reference_hash
from synapse.events import EventBase # noqa: F401
from synapse.events.snapshot import EventContext # noqa: F401
from synapse.storage._base import db_to_json, make_in_list_sql_clause
Expand Down Expand Up @@ -1600,11 +1599,6 @@ def _update_metadata_tables_txn(
inhibit_local_membership_updates=inhibit_local_membership_updates,
)

# Insert event_reference_hashes table.
self._store_event_reference_hashes_txn(
txn, [event for event, _ in events_and_contexts]
)

# Prefill the event cache
self._add_to_cache(txn, events_and_contexts)

Expand Down Expand Up @@ -1704,25 +1698,6 @@ def _insert_event_expiry_txn(self, txn, event_id, expiry_ts):
values={"event_id": event_id, "expiry_ts": expiry_ts},
)

def _store_event_reference_hashes_txn(self, txn, events):
"""Store a hash for a PDU
Args:
txn (cursor):
events (list): list of Events.
"""

vals = []
for event in events:
ref_alg, ref_hash_bytes = compute_event_reference_hash(event)
vals.append((event.event_id, ref_alg, memoryview(ref_hash_bytes)))

self.db_pool.simple_insert_many_txn(
txn,
table="event_reference_hashes",
keys=("event_id", "algorithm", "hash"),
values=vals,
)

def _store_room_members_txn(
self, txn, events, *, inhibit_local_membership_updates: bool = False
):
Expand Down
3 changes: 0 additions & 3 deletions synapse/storage/databases/main/purge_events.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@ def _purge_history_txn(
# event_forward_extremities
# event_json
# event_push_actions
# event_reference_hashes
# event_relations
# event_search
# event_to_state_groups
Expand Down Expand Up @@ -220,7 +219,6 @@ def _purge_history_txn(
"event_auth",
"event_edges",
"event_forward_extremities",
"event_reference_hashes",
"event_relations",
"event_search",
"rejections",
Expand Down Expand Up @@ -369,7 +367,6 @@ def _purge_room_txn(self, txn: LoggingTransaction, room_id: str) -> List[int]:
"event_edges",
"event_json",
"event_push_actions_staging",
"event_reference_hashes",
"event_relations",
"event_to_state_groups",
"event_auth_chains",
Expand Down
5 changes: 4 additions & 1 deletion synapse/storage/schema/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.

SCHEMA_VERSION = 69 # remember to update the list below when updating
SCHEMA_VERSION = 70 # remember to update the list below when updating
"""Represents the expectations made by the codebase about the database schema

This should be incremented whenever the codebase changes its requirements on the
Expand Down Expand Up @@ -62,6 +62,9 @@
Changes in SCHEMA_VERSION = 69:
- We now write to `device_lists_changes_in_room` table.
- Use sequence to generate future `application_services_txns.txn_id`s

Changes in SCHEMA_VERSION = 70:
- event_reference_hashes is no longer written.
richvdh marked this conversation as resolved.
Show resolved Hide resolved
"""


Expand Down
9 changes: 0 additions & 9 deletions tests/storage/test_event_federation.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,15 +58,6 @@ def insert_event(txn, i):
(room_id, event_id),
)

txn.execute(
(
"INSERT INTO event_reference_hashes "
"(event_id, algorithm, hash) "
"VALUES (?, 'sha256', ?)"
),
(event_id, bytearray(b"ffff")),
)

for i in range(0, 20):
self.get_success(
self.store.db_pool.runInteraction("insert", insert_event, i)
Expand Down