mirror of https://github.com/watcha-fr/synapse
Clear out old rows from `event_push_actions_staging` (#14020)
On matrix.org we have ~5 million stale rows in `event_push_actions_staging`, let's add a background job to make sure we clear them out.1.103.0-whithout-watcha
parent
b381701f8c
commit
5a6d025246
@ -0,0 +1 @@ |
||||
Clear out stale entries in `event_push_actions_staging` table. |
@ -0,0 +1,22 @@ |
||||
/* 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 a column so that we know when a push action was inserted, to make it |
||||
-- easier to clear out old ones. |
||||
ALTER TABLE event_push_actions_staging ADD COLUMN inserted_ts BIGINT; |
||||
|
||||
-- We now add a default for *new* rows. We don't do this above as we don't want |
||||
-- to have to update every remove with the new default. |
||||
ALTER TABLE event_push_actions_staging ALTER COLUMN inserted_ts SET DEFAULT extract(epoch from now()) * 1000; |
@ -0,0 +1,24 @@ |
||||
/* 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. |
||||
*/ |
||||
|
||||
-- On SQLite we must be in monolith mode and updating the database from Synapse, |
||||
-- so its safe to assume that `event_push_actions_staging` should be empty (as |
||||
-- over restart an event must either have been fully persisted or we'll |
||||
-- recalculate the push actions) |
||||
DELETE FROM event_push_actions_staging; |
||||
|
||||
-- Add a column so that we know when a push action was inserted, to make it |
||||
-- easier to clear out old ones. |
||||
ALTER TABLE event_push_actions_staging ADD COLUMN inserted_ts BIGINT; |
Loading…
Reference in new issue