From 98c9dfeabfe6e012e8992bf940a8d5c84ae77a50 Mon Sep 17 00:00:00 2001 From: Alessio Garzi Date: Thu, 14 Jul 2022 09:53:23 +0200 Subject: [PATCH 1/2] lib/srdb1: Index "inserted_time"+"status" in watchers - New index for watchers table for columns "inserted_time" and "status". This is a little performance boost since the function ps_watchers_db_timer_clean() cleans pending subscriptions using this columns inside the "where" clause. New index has been added to both Postgres and Mysql/MariaDB backends. --- src/lib/srdb1/schema/pr_watchers.xml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/lib/srdb1/schema/pr_watchers.xml b/src/lib/srdb1/schema/pr_watchers.xml index e5bdbffa404..919cf42a0f6 100644 --- a/src/lib/srdb1/schema/pr_watchers.xml +++ b/src/lib/srdb1/schema/pr_watchers.xml @@ -63,7 +63,7 @@ - + status int 11 @@ -78,7 +78,7 @@ Reason - + inserted_time int 11 @@ -93,4 +93,10 @@ + + time_status_idx + + + + From ecfbea23c8b19d28e56e7809e3ef09cd5b101729 Mon Sep 17 00:00:00 2001 From: Alessio Garzi Date: Thu, 14 Jul 2022 09:54:24 +0200 Subject: [PATCH 2/2] kamctl: regenerated db schema files - regenerated db schema files for table watchers after addition of index time_status_idx --- utils/kamctl/db_sqlite/presence-create.sql | 2 ++ utils/kamctl/mysql/presence-create.sql | 2 ++ utils/kamctl/oracle/presence-create.sql | 2 ++ utils/kamctl/postgres/presence-create.sql | 2 ++ 4 files changed, 8 insertions(+) diff --git a/utils/kamctl/db_sqlite/presence-create.sql b/utils/kamctl/db_sqlite/presence-create.sql index aacc80b5826..ef47c600984 100644 --- a/utils/kamctl/db_sqlite/presence-create.sql +++ b/utils/kamctl/db_sqlite/presence-create.sql @@ -69,6 +69,8 @@ CREATE TABLE watchers ( CONSTRAINT watchers_watcher_idx UNIQUE (presentity_uri, watcher_username, watcher_domain, event) ); +CREATE INDEX watchers_time_status_idx ON watchers (inserted_time, status); + INSERT INTO version (table_name, table_version) values ('watchers','3'); CREATE TABLE xcap ( diff --git a/utils/kamctl/mysql/presence-create.sql b/utils/kamctl/mysql/presence-create.sql index a3b3d9befef..71283ad7c88 100644 --- a/utils/kamctl/mysql/presence-create.sql +++ b/utils/kamctl/mysql/presence-create.sql @@ -69,6 +69,8 @@ CREATE TABLE `watchers` ( CONSTRAINT watcher_idx UNIQUE (`presentity_uri`, `watcher_username`, `watcher_domain`, `event`) ); +CREATE INDEX time_status_idx ON watchers (`inserted_time`, `status`); + INSERT INTO version (table_name, table_version) values ('watchers','3'); CREATE TABLE `xcap` ( diff --git a/utils/kamctl/oracle/presence-create.sql b/utils/kamctl/oracle/presence-create.sql index e63664f0881..eb65f1e928b 100644 --- a/utils/kamctl/oracle/presence-create.sql +++ b/utils/kamctl/oracle/presence-create.sql @@ -93,6 +93,8 @@ END watchers_tr; / BEGIN map2users('watchers'); END; / +CREATE INDEX watchers_time_status_idx ON watchers (inserted_time, status); + INSERT INTO version (table_name, table_version) values ('watchers','3'); CREATE TABLE xcap ( diff --git a/utils/kamctl/postgres/presence-create.sql b/utils/kamctl/postgres/presence-create.sql index b17bd76ef51..d2ca3de67b6 100644 --- a/utils/kamctl/postgres/presence-create.sql +++ b/utils/kamctl/postgres/presence-create.sql @@ -69,6 +69,8 @@ CREATE TABLE watchers ( CONSTRAINT watchers_watcher_idx UNIQUE (presentity_uri, watcher_username, watcher_domain, event) ); +CREATE INDEX watchers_time_status_idx ON watchers (inserted_time, status); + INSERT INTO version (table_name, table_version) values ('watchers','3'); CREATE TABLE xcap (