From a39ac21d60a20b1eb6caa9bf1ce0d5ff328a7d96 Mon Sep 17 00:00:00 2001 From: Derek Hulley Date: Wed, 4 Sep 2013 00:08:21 +0000 Subject: [PATCH] Merged HEAD-BUG-FIX to HEAD (4.2.0) (MNT-9523) 54873: Merged V4.1-BUG-FIX (4.1.N) to HEAD-BUG-FIX (4.2.0): 54573: Merged PATCHES/V4.1.6 to V4.1-BUG-FIX (4.1.7) 54530: Merged PATCHES/V4.1.3 (4.1.3.11) to PATCHES/V4.1.6 (4.1.6) (MNT-9522) 53984: Merged DEV to PATCHES/V4.1.3 (4.1.3.10) 53849: MNT-9053 : Alfresco site listings cause high CPU usage on database server Created a patch to create new index in MySQL and drop the old one. 53955: MNT-9053 : Alfresco site listings cause high CPU usage on database server Added the patches for the rest of the supported DBs. 54105: MNT-9053 : Alfresco site listings cause high CPU usage on database server Corrected the create scripts and schema reference files. Note: Removed redundant generic script, incremented versions for patches, etc 54531: Removed accidental commit in rev 54530 (MNT-9522) Note: Incremented schema number and patch git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@54877 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../AlfrescoCreate-RepoTables.sql | 2 +- .../Schema-Reference-ALF.xml | 4 +++- .../AlfrescoCreate-RepoTables.sql | 2 +- .../Schema-Reference-ALF.xml | 4 +++- .../alfresco/dbscripts/db-schema-context.xml | 3 ++- .../ChildAssoc-OrderBy.sql | 24 +++++++++++++++++++ .../ChildAssoc-OrderBy.sql | 24 +++++++++++++++++++ .../alfresco/patch/patch-services-context.xml | 13 +++++++++- config/alfresco/version.properties | 2 +- 9 files changed, 71 insertions(+), 7 deletions(-) create mode 100644 config/alfresco/dbscripts/upgrade/4.1/org.hibernate.dialect.MySQLInnoDBDialect/ChildAssoc-OrderBy.sql create mode 100644 config/alfresco/dbscripts/upgrade/4.1/org.hibernate.dialect.PostgreSQLDialect/ChildAssoc-OrderBy.sql diff --git a/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-RepoTables.sql b/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-RepoTables.sql index 641d5b3719..5cfc55fad1 100644 --- a/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-RepoTables.sql +++ b/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-RepoTables.sql @@ -247,7 +247,7 @@ CREATE TABLE alf_child_assoc assoc_index INTEGER, PRIMARY KEY (id), UNIQUE KEY parent_node_id (parent_node_id, type_qname_id, child_node_name_crc, child_node_name), - KEY fk_alf_cass_pnode (parent_node_id), + KEY idx_alf_cass_pnode (parent_node_id, assoc_index, id), KEY fk_alf_cass_cnode (child_node_id), KEY fk_alf_cass_tqn (type_qname_id), KEY fk_alf_cass_qnns (qname_ns_id), diff --git a/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/Schema-Reference-ALF.xml b/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/Schema-Reference-ALF.xml index d4e63b9a9b..2d16638088 100644 --- a/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/Schema-Reference-ALF.xml +++ b/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/Schema-Reference-ALF.xml @@ -966,9 +966,11 @@ child_node_name - + parent_node_id + assoc_index + id diff --git a/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/AlfrescoCreate-RepoTables.sql b/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/AlfrescoCreate-RepoTables.sql index 8e55e78e3e..0cb92349d1 100644 --- a/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/AlfrescoCreate-RepoTables.sql +++ b/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/AlfrescoCreate-RepoTables.sql @@ -269,7 +269,7 @@ CREATE TABLE alf_child_assoc CONSTRAINT fk_alf_cass_tqn FOREIGN KEY (type_qname_id) REFERENCES alf_qname (id) ); CREATE UNIQUE INDEX parent_node_id ON alf_child_assoc (parent_node_id, type_qname_id, child_node_name_crc, child_node_name); -CREATE INDEX fk_alf_cass_pnode ON alf_child_assoc (parent_node_id); +CREATE INDEX idx_alf_cass_pnode ON alf_child_assoc (parent_node_id, assoc_index, id); CREATE INDEX fk_alf_cass_cnode ON alf_child_assoc (child_node_id); CREATE INDEX fk_alf_cass_tqn ON alf_child_assoc (type_qname_id); CREATE INDEX fk_alf_cass_qnns ON alf_child_assoc (qname_ns_id); diff --git a/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/Schema-Reference-ALF.xml b/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/Schema-Reference-ALF.xml index e60b92a535..36baa01577 100644 --- a/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/Schema-Reference-ALF.xml +++ b/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/Schema-Reference-ALF.xml @@ -1008,9 +1008,11 @@ child_node_id - + parent_node_id + assoc_index + id diff --git a/config/alfresco/dbscripts/db-schema-context.xml b/config/alfresco/dbscripts/db-schema-context.xml index 462a3036ab..9b5601c872 100644 --- a/config/alfresco/dbscripts/db-schema-context.xml +++ b/config/alfresco/dbscripts/db-schema-context.xml @@ -90,7 +90,8 @@ - + + diff --git a/config/alfresco/dbscripts/upgrade/4.1/org.hibernate.dialect.MySQLInnoDBDialect/ChildAssoc-OrderBy.sql b/config/alfresco/dbscripts/upgrade/4.1/org.hibernate.dialect.MySQLInnoDBDialect/ChildAssoc-OrderBy.sql new file mode 100644 index 0000000000..c8d953c099 --- /dev/null +++ b/config/alfresco/dbscripts/upgrade/4.1/org.hibernate.dialect.MySQLInnoDBDialect/ChildAssoc-OrderBy.sql @@ -0,0 +1,24 @@ +-- +-- Title: Add new index to alf_child_assoc +-- Database: MySQL +-- Since: V4.1 Schema 5123 +-- Author: Alex Mukha +-- +-- Please contact support@alfresco.com if you need assistance with the upgrade. +-- +-- MNT-9053 : Alfresco site listings cause high CPU usage on database server + +DROP INDEX fk_alf_cass_pnode ON alf_child_assoc; +CREATE INDEX idx_alf_cass_pnode ON alf_child_assoc (parent_node_id, assoc_index, id); + +-- +-- Record script finish +-- +DELETE FROM alf_applied_patch WHERE id = 'patch.db-V4.1-ChildAssoc-OrderBy'; +INSERT INTO alf_applied_patch + (id, description, fixes_from_schema, fixes_to_schema, applied_to_schema, target_schema, applied_on_date, applied_to_server, was_executed, succeeded, report) + VALUES + ( + 'patch.db-V4.1-ChildAssoc-OrderBy', 'MNT-9053 : Alfresco site listings cause high CPU usage on database server', + 0, 6032, -1, 6033, null, 'UNKNOWN', ${TRUE}, ${TRUE}, 'Script completed' + ); \ No newline at end of file diff --git a/config/alfresco/dbscripts/upgrade/4.1/org.hibernate.dialect.PostgreSQLDialect/ChildAssoc-OrderBy.sql b/config/alfresco/dbscripts/upgrade/4.1/org.hibernate.dialect.PostgreSQLDialect/ChildAssoc-OrderBy.sql new file mode 100644 index 0000000000..1a5a72e9da --- /dev/null +++ b/config/alfresco/dbscripts/upgrade/4.1/org.hibernate.dialect.PostgreSQLDialect/ChildAssoc-OrderBy.sql @@ -0,0 +1,24 @@ +-- +-- Title: Add new index to alf_child_assoc +-- Database: PostgreSQL +-- Since: V4.1 Schema 5123 +-- Author: Alex Mukha +-- +-- Please contact support@alfresco.com if you need assistance with the upgrade. +-- +-- MNT-9053 : Alfresco site listings cause high CPU usage on database server + +DROP INDEX fk_alf_cass_pnode; +CREATE INDEX idx_alf_cass_pnode ON alf_child_assoc (parent_node_id, assoc_index, id); + +-- +-- Record script finish +-- +DELETE FROM alf_applied_patch WHERE id = 'patch.db-V4.1-ChildAssoc-OrderBy'; +INSERT INTO alf_applied_patch + (id, description, fixes_from_schema, fixes_to_schema, applied_to_schema, target_schema, applied_on_date, applied_to_server, was_executed, succeeded, report) + VALUES + ( + 'patch.db-V4.1-ChildAssoc-OrderBy', 'MNT-9053 : Alfresco site listings cause high CPU usage on database server', + 0, 6032, -1, 6033, null, 'UNKNOWN', ${TRUE}, ${TRUE}, 'Script completed' + ); \ No newline at end of file diff --git a/config/alfresco/patch/patch-services-context.xml b/config/alfresco/patch/patch-services-context.xml index e14fa49035..95102d6e88 100644 --- a/config/alfresco/patch/patch-services-context.xml +++ b/config/alfresco/patch/patch-services-context.xml @@ -3424,7 +3424,7 @@ classpath:alfresco/dbscripts/upgrade/4.1/${db.script.dialect}/rename-constraint-activiti.sql - + @@ -3630,4 +3630,15 @@ classpath:alfresco/dbscripts/upgrade/4.2/${db.script.dialect}/drop-AVM-index.sql + + patch.db-V4.1-ChildAssoc-OrderBy + patch.schemaUpgradeScript.description + 0 + 6032 + 6033 + + classpath:alfresco/dbscripts/upgrade/4.1/${db.script.dialect}/ChildAssoc-OrderBy.sql + + + diff --git a/config/alfresco/version.properties b/config/alfresco/version.properties index 59db733e05..f312313c8f 100644 --- a/config/alfresco/version.properties +++ b/config/alfresco/version.properties @@ -23,4 +23,4 @@ version.build=r@scm-revision@-b@build-number@ # Schema number -version.schema=6032 +version.schema=6033