Drop backwards-compatibility support for "outlier" (#10903)
Before Synapse 1.31 (#9411), we relied on `outlier` being stored in the `internal_metadata` column. We can now assume nobody will roll back their deployment that far and drop the legacy support.pull/10936/head
parent
2622b28c5c
commit
8aaa4b7b5d
|
@ -0,0 +1 @@
|
||||||
|
Drop old functionality which maintained database compatibility with Synapse versions before 1.31.
|
|
@ -1276,13 +1276,6 @@ class PersistEventsStore:
|
||||||
logger.exception("")
|
logger.exception("")
|
||||||
raise
|
raise
|
||||||
|
|
||||||
# update the stored internal_metadata to update the "outlier" flag.
|
|
||||||
# TODO: This is unused as of Synapse 1.31. Remove it once we are happy
|
|
||||||
# to drop backwards-compatibility with 1.30.
|
|
||||||
metadata_json = json_encoder.encode(event.internal_metadata.get_dict())
|
|
||||||
sql = "UPDATE event_json SET internal_metadata = ? WHERE event_id = ?"
|
|
||||||
txn.execute(sql, (metadata_json, event.event_id))
|
|
||||||
|
|
||||||
# Add an entry to the ex_outlier_stream table to replicate the
|
# Add an entry to the ex_outlier_stream table to replicate the
|
||||||
# change in outlier status to our workers.
|
# change in outlier status to our workers.
|
||||||
stream_order = event.internal_metadata.stream_ordering
|
stream_order = event.internal_metadata.stream_ordering
|
||||||
|
@ -1327,19 +1320,6 @@ class PersistEventsStore:
|
||||||
d.pop("redacted_because", None)
|
d.pop("redacted_because", None)
|
||||||
return d
|
return d
|
||||||
|
|
||||||
def get_internal_metadata(event):
|
|
||||||
im = event.internal_metadata.get_dict()
|
|
||||||
|
|
||||||
# temporary hack for database compatibility with Synapse 1.30 and earlier:
|
|
||||||
# store the `outlier` flag inside the internal_metadata json as well as in
|
|
||||||
# the `events` table, so that if anyone rolls back to an older Synapse,
|
|
||||||
# things keep working. This can be removed once we are happy to drop support
|
|
||||||
# for that
|
|
||||||
if event.internal_metadata.is_outlier():
|
|
||||||
im["outlier"] = True
|
|
||||||
|
|
||||||
return im
|
|
||||||
|
|
||||||
self.db_pool.simple_insert_many_txn(
|
self.db_pool.simple_insert_many_txn(
|
||||||
txn,
|
txn,
|
||||||
table="event_json",
|
table="event_json",
|
||||||
|
@ -1348,7 +1328,7 @@ class PersistEventsStore:
|
||||||
"event_id": event.event_id,
|
"event_id": event.event_id,
|
||||||
"room_id": event.room_id,
|
"room_id": event.room_id,
|
||||||
"internal_metadata": json_encoder.encode(
|
"internal_metadata": json_encoder.encode(
|
||||||
get_internal_metadata(event)
|
event.internal_metadata.get_dict()
|
||||||
),
|
),
|
||||||
"json": json_encoder.encode(event_dict(event)),
|
"json": json_encoder.encode(event_dict(event)),
|
||||||
"format_version": event.format_version,
|
"format_version": event.format_version,
|
||||||
|
|
|
@ -12,9 +12,7 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
# When updating these values, please leave a short summary of the changes below.
|
SCHEMA_VERSION = 64 # remember to update the list below when updating
|
||||||
|
|
||||||
SCHEMA_VERSION = 64
|
|
||||||
"""Represents the expectations made by the codebase about the database schema
|
"""Represents the expectations made by the codebase about the database schema
|
||||||
|
|
||||||
This should be incremented whenever the codebase changes its requirements on the
|
This should be incremented whenever the codebase changes its requirements on the
|
||||||
|
@ -46,7 +44,7 @@ Changes in SCHEMA_VERSION = 64:
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
SCHEMA_COMPAT_VERSION = 59
|
SCHEMA_COMPAT_VERSION = 60 # 60: "outlier" not in internal_metadata.
|
||||||
"""Limit on how far the synapse codebase can be rolled back without breaking db compat
|
"""Limit on how far the synapse codebase can be rolled back without breaking db compat
|
||||||
|
|
||||||
This value is stored in the database, and checked on startup. If the value in the
|
This value is stored in the database, and checked on startup. If the value in the
|
||||||
|
|
Loading…
Reference in New Issue