diff --git a/remote-api/src/main/java/org/alfresco/repo/webdav/auth/BaseSSOAuthenticationFilter.java b/remote-api/src/main/java/org/alfresco/repo/webdav/auth/BaseSSOAuthenticationFilter.java index 3c4bcdb90f..a99a30e68b 100644 --- a/remote-api/src/main/java/org/alfresco/repo/webdav/auth/BaseSSOAuthenticationFilter.java +++ b/remote-api/src/main/java/org/alfresco/repo/webdav/auth/BaseSSOAuthenticationFilter.java @@ -208,7 +208,7 @@ public abstract class BaseSSOAuthenticationFilter extends BaseAuthenticationFilt { match = container.getRegistry().findWebScript(req.getMethod(), getScriptUrl(req)); } - catch (NotFoundException notFoundEx) + catch (NotFoundException | IllegalArgumentException Ex) { getLogger().debug(req.getMethod() + " " + getScriptUrl(req) + "not found in Public API Container."); } diff --git a/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.MySQLInnoDBDialect/AlfrescoCreate-RepoTables.sql b/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.MySQLInnoDBDialect/AlfrescoCreate-RepoTables.sql index 0f1f607d27..8c97111e1b 100644 --- a/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.MySQLInnoDBDialect/AlfrescoCreate-RepoTables.sql +++ b/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.MySQLInnoDBDialect/AlfrescoCreate-RepoTables.sql @@ -179,7 +179,9 @@ CREATE TABLE alf_transaction change_txn_id VARCHAR(56) NOT NULL, commit_time_ms BIGINT, PRIMARY KEY (id), - KEY idx_alf_txn_ctms (commit_time_ms), + KEY idx_alf_txn_ctms (commit_time_ms, id), + KEY idx_alf_txn_ctms_sc (commit_time_ms), + KEY idx_alf_txn_id_ctms (id, commit_time_ms), KEY fk_alf_txn_svr (server_id), CONSTRAINT fk_alf_txn_svr FOREIGN KEY (server_id) REFERENCES alf_server (id) ) ENGINE=InnoDB; @@ -222,6 +224,8 @@ CREATE TABLE alf_node KEY idx_alf_node_crd (audit_created, store_id, type_qname_id), KEY idx_alf_node_mor (audit_modifier, store_id, type_qname_id), KEY idx_alf_node_mod (audit_modified, store_id, type_qname_id), + KEY idx_alf_node_ver (version), + KEY idx_alf_node_txn (transaction_id), CONSTRAINT fk_alf_node_acl FOREIGN KEY (acl_id) REFERENCES alf_access_control_list (id), CONSTRAINT fk_alf_node_store FOREIGN KEY (store_id) REFERENCES alf_store (id), CONSTRAINT fk_alf_node_tqn FOREIGN KEY (type_qname_id) REFERENCES alf_qname (id), diff --git a/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.MySQLInnoDBDialect/Schema-Reference-ALF.xml b/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.MySQLInnoDBDialect/Schema-Reference-ALF.xml index fb3afd9d32..0b50ab059a 100644 --- a/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.MySQLInnoDBDialect/Schema-Reference-ALF.xml +++ b/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.MySQLInnoDBDialect/Schema-Reference-ALF.xml @@ -1681,6 +1681,16 @@ type_qname_id + + + version + + + + + transaction_id + + @@ -2674,6 +2684,18 @@ commit_time_ms + id + + + + + commit_time_ms + + + + + id + commit_time_ms diff --git a/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.PostgreSQLDialect/AlfrescoCreate-RepoTables.sql b/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.PostgreSQLDialect/AlfrescoCreate-RepoTables.sql index 39c164ee5c..3bce383d6c 100644 --- a/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.PostgreSQLDialect/AlfrescoCreate-RepoTables.sql +++ b/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.PostgreSQLDialect/AlfrescoCreate-RepoTables.sql @@ -196,6 +196,8 @@ CREATE TABLE alf_transaction CONSTRAINT fk_alf_txn_svr FOREIGN KEY (server_id) REFERENCES alf_server (id) ); CREATE INDEX idx_alf_txn_ctms ON alf_transaction (commit_time_ms, id); +CREATE INDEX idx_alf_txn_ctms_sc ON alf_transaction (commit_time_ms); +CREATE INDEX idx_alf_txn_id_ctms ON alf_transaction (id, commit_time_ms); CREATE INDEX fk_alf_txn_svr ON alf_transaction (server_id); CREATE SEQUENCE alf_store_seq START WITH 1 INCREMENT BY 1; @@ -244,6 +246,8 @@ CREATE INDEX fk_alf_node_acl ON alf_node (acl_id); CREATE INDEX fk_alf_node_store ON alf_node (store_id); CREATE INDEX idx_alf_node_tqn ON alf_node (type_qname_id, store_id, id); CREATE INDEX fk_alf_node_loc ON alf_node (locale_id); +CREATE INDEX idx_alf_node_ver ON alf_node (version); +CREATE INDEX idx_alf_node_txn ON alf_node (transaction_id); CREATE INDEX fk_alf_store_root ON alf_store (root_node_id); ALTER TABLE alf_store ADD CONSTRAINT fk_alf_store_root FOREIGN KEY (root_node_id) REFERENCES alf_node (id); diff --git a/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.PostgreSQLDialect/Schema-Reference-ALF.xml b/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.PostgreSQLDialect/Schema-Reference-ALF.xml index 395e3f3a7c..8cebcf2cc8 100644 --- a/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.PostgreSQLDialect/Schema-Reference-ALF.xml +++ b/repository/src/main/resources/alfresco/dbscripts/create/org.alfresco.repo.domain.dialect.PostgreSQLDialect/Schema-Reference-ALF.xml @@ -1740,6 +1740,16 @@ id + + + version + + + + + transaction_id + +
@@ -2753,6 +2763,17 @@ id + + + commit_time_ms + + + + + id + commit_time_ms + +
diff --git a/repository/src/main/resources/alfresco/dbscripts/db-schema-context.xml b/repository/src/main/resources/alfresco/dbscripts/db-schema-context.xml index 12cf459246..86921c4333 100644 --- a/repository/src/main/resources/alfresco/dbscripts/db-schema-context.xml +++ b/repository/src/main/resources/alfresco/dbscripts/db-schema-context.xml @@ -54,6 +54,7 @@ + diff --git a/repository/src/main/resources/alfresco/dbscripts/upgrade/6.3/org.alfresco.repo.domain.dialect.MySQLInnoDBDialect/add-indexes-node-transaction.sql b/repository/src/main/resources/alfresco/dbscripts/upgrade/6.3/org.alfresco.repo.domain.dialect.MySQLInnoDBDialect/add-indexes-node-transaction.sql new file mode 100644 index 0000000000..c29f7c5632 --- /dev/null +++ b/repository/src/main/resources/alfresco/dbscripts/upgrade/6.3/org.alfresco.repo.domain.dialect.MySQLInnoDBDialect/add-indexes-node-transaction.sql @@ -0,0 +1,35 @@ +-- +-- Title: Update alf_node and alf_transaction indexes for more performance +-- Database: MySQL +-- Since: V6.3 +-- Author: Eva Vasques +-- +-- Please contact support@alfresco.com if you need assistance with the upgrade. +-- + +DROP INDEX idx_alf_node_ver; --(optional) +CREATE INDEX idx_alf_node_ver ON alf_node (version); + +DROP INDEX idx_alf_node_txn; --(optional) +CREATE INDEX idx_alf_node_txn ON alf_node (transaction_id); + +DROP INDEX idx_alf_txn_ctms; --(optional) +CREATE INDEX idx_alf_txn_ctms ON alf_transaction (commit_time_ms, id); + +DROP INDEX idx_alf_txn_ctms_sc; --(optional) +CREATE INDEX idx_alf_txn_ctms_sc ON alf_transaction (commit_time_ms); + +DROP INDEX idx_alf_txn_id_ctms; --(optional) +CREATE INDEX idx_alf_txn_id_ctms ON alf_transaction (id, commit_time_ms); + +-- +-- Record script finish +-- +DELETE FROM alf_applied_patch WHERE id = 'patch.db-V6.3-add-indexes-node-transaction'; +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-V6.3-add-indexes-node-transaction', 'Create aditional indexes on alf_node and alf_transaction', + 0, 13005, -1, 13006, null, 'UNKNOWN', ${TRUE}, ${TRUE}, 'Script completed' + ); \ No newline at end of file diff --git a/repository/src/main/resources/alfresco/dbscripts/upgrade/6.3/org.alfresco.repo.domain.dialect.PostgreSQLDialect/add-indexes-node-transaction.sql b/repository/src/main/resources/alfresco/dbscripts/upgrade/6.3/org.alfresco.repo.domain.dialect.PostgreSQLDialect/add-indexes-node-transaction.sql new file mode 100644 index 0000000000..968b1575be --- /dev/null +++ b/repository/src/main/resources/alfresco/dbscripts/upgrade/6.3/org.alfresco.repo.domain.dialect.PostgreSQLDialect/add-indexes-node-transaction.sql @@ -0,0 +1,32 @@ +-- +-- Title: Update alf_node and alf_transaction indexes for more performance +-- Database: PostgreSQL +-- Since: V6.3 +-- Author: Eva Vasques +-- +-- Please contact support@alfresco.com if you need assistance with the upgrade. +-- + +DROP INDEX idx_alf_node_ver; --(optional) +CREATE INDEX idx_alf_node_ver ON alf_node (version); + +DROP INDEX idx_alf_node_txn; --(optional) +CREATE INDEX idx_alf_node_txn ON alf_node (transaction_id); + +DROP INDEX idx_alf_txn_ctms_sc; --(optional) +CREATE INDEX idx_alf_txn_ctms_sc ON alf_transaction (commit_time_ms); + +DROP INDEX idx_alf_txn_id_ctms; --(optional) +CREATE INDEX idx_alf_txn_id_ctms ON alf_transaction (id, commit_time_ms); + +-- +-- Record script finish +-- +DELETE FROM alf_applied_patch WHERE id = 'patch.db-V6.3-add-indexes-node-transaction'; +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-V6.3-add-indexes-node-transaction', 'Create aditional indexes on alf_node and alf_transaction', + 0, 13005, -1, 13006, null, 'UNKNOWN', ${TRUE}, ${TRUE}, 'Script completed' + ); \ No newline at end of file diff --git a/repository/src/main/resources/alfresco/messages/patch-service.properties b/repository/src/main/resources/alfresco/messages/patch-service.properties index 5cf20e795c..49682fd571 100644 --- a/repository/src/main/resources/alfresco/messages/patch-service.properties +++ b/repository/src/main/resources/alfresco/messages/patch-service.properties @@ -400,4 +400,6 @@ patch.updateAdminUserWhenDefault.result=\n\Successfully removed password2 proper patch.db-V5.2-remove-jbpm-tables-from-db.description=Removes all JBPM related tables from the database. -patch.db-V6.0-change-set-indexes.description=Add additional indexes to support acl tracking. \ No newline at end of file +patch.db-V6.0-change-set-indexes.description=Add additional indexes to support acl tracking. + +patch.db-V6.3-add-indexes-node-transaction.description=Create additional indexes on alf_node and alf_transaction \ No newline at end of file diff --git a/repository/src/main/resources/alfresco/patch/patch-services-context.xml b/repository/src/main/resources/alfresco/patch/patch-services-context.xml index bebdb67afb..331e8c22be 100644 --- a/repository/src/main/resources/alfresco/patch/patch-services-context.xml +++ b/repository/src/main/resources/alfresco/patch/patch-services-context.xml @@ -1397,5 +1397,17 @@ classpath:alfresco/dbscripts/upgrade/6.0/${db.script.dialect}/change-set-indexes.sql + + + patch.db-V6.3-add-indexes-node-transaction + patch.db-V6.3-add-indexes-node-transaction.description + 0 + 13005 + 13006 + ${system.new-node-transaction-indexes.ignored} + + classpath:alfresco/dbscripts/upgrade/6.3/${db.script.dialect}/add-indexes-node-transaction.sql + + diff --git a/repository/src/main/resources/alfresco/repository.properties b/repository/src/main/resources/alfresco/repository.properties index d796837d01..e66032f73f 100644 --- a/repository/src/main/resources/alfresco/repository.properties +++ b/repository/src/main/resources/alfresco/repository.properties @@ -3,7 +3,7 @@ repository.name=Main Repository # Schema number -version.schema=13005 +version.schema=13006 # Directory configuration @@ -1313,3 +1313,6 @@ system.delete_not_exists.delete_batchsize=1000 system.delete_not_exists.read_only=false system.delete_not_exists.timeout_seconds=-1 system.prop_table_cleaner.algorithm=V2 + +# Creates additional indexes on alf_node and alf_transaction. Recommended for large repositories. +system.new-node-transaction-indexes.ignored=true \ No newline at end of file