Add index to help delete old push actions (#13141)
This commit is contained in:
parent
79c6b9e12b
commit
a3a05c812d
|
@ -0,0 +1 @@
|
||||||
|
Fix DB performance when deleting old push notifications. Introduced in v1.62.0rc1.
|
|
@ -58,9 +58,7 @@ from synapse.storage.databases.main.client_ips import ClientIpBackgroundUpdateSt
|
||||||
from synapse.storage.databases.main.deviceinbox import DeviceInboxBackgroundUpdateStore
|
from synapse.storage.databases.main.deviceinbox import DeviceInboxBackgroundUpdateStore
|
||||||
from synapse.storage.databases.main.devices import DeviceBackgroundUpdateStore
|
from synapse.storage.databases.main.devices import DeviceBackgroundUpdateStore
|
||||||
from synapse.storage.databases.main.end_to_end_keys import EndToEndKeyBackgroundStore
|
from synapse.storage.databases.main.end_to_end_keys import EndToEndKeyBackgroundStore
|
||||||
from synapse.storage.databases.main.event_push_actions import (
|
from synapse.storage.databases.main.event_push_actions import EventPushActionsStore
|
||||||
EventPushActionsWorkerStore,
|
|
||||||
)
|
|
||||||
from synapse.storage.databases.main.events_bg_updates import (
|
from synapse.storage.databases.main.events_bg_updates import (
|
||||||
EventsBackgroundUpdatesStore,
|
EventsBackgroundUpdatesStore,
|
||||||
)
|
)
|
||||||
|
@ -202,7 +200,7 @@ R = TypeVar("R")
|
||||||
|
|
||||||
|
|
||||||
class Store(
|
class Store(
|
||||||
EventPushActionsWorkerStore,
|
EventPushActionsStore,
|
||||||
ClientIpBackgroundUpdateStore,
|
ClientIpBackgroundUpdateStore,
|
||||||
DeviceInboxBackgroundUpdateStore,
|
DeviceInboxBackgroundUpdateStore,
|
||||||
DeviceBackgroundUpdateStore,
|
DeviceBackgroundUpdateStore,
|
||||||
|
|
|
@ -1189,6 +1189,16 @@ class EventPushActionsStore(EventPushActionsWorkerStore):
|
||||||
where_clause="highlight=1",
|
where_clause="highlight=1",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Add index to make deleting old push actions faster.
|
||||||
|
self.db_pool.updates.register_background_index_update(
|
||||||
|
"event_push_actions_stream_highlight_index",
|
||||||
|
index_name="event_push_actions_stream_highlight_index",
|
||||||
|
table="event_push_actions",
|
||||||
|
columns=["highlight", "stream_ordering"],
|
||||||
|
where_clause="highlight=0",
|
||||||
|
psql_only=True,
|
||||||
|
)
|
||||||
|
|
||||||
async def get_push_actions_for_user(
|
async def get_push_actions_for_user(
|
||||||
self,
|
self,
|
||||||
user_id: str,
|
user_id: str,
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
/* Copyright 2022 The Matrix.org Foundation C.I.C
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
-- Add an index to `event_push_actions` to make deleting old non-highlight push
|
||||||
|
-- actions faster.
|
||||||
|
INSERT INTO background_updates (ordering, update_name, progress_json) VALUES
|
||||||
|
(7202, 'event_push_actions_stream_highlight_index', '{}');
|
Loading…
Reference in New Issue