jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Todd Pagni (JIRA)" <j...@apache.org>
Subject [jira] [Created] (JCR-3537) Large number of SQL queries when adding nodes with version history
Date Wed, 20 Mar 2013 21:29:15 GMT
Todd Pagni created JCR-3537:

             Summary: Large number of SQL queries when adding nodes with version history
                 Key: JCR-3537
                 URL: https://issues.apache.org/jira/browse/JCR-3537
             Project: Jackrabbit Content Repository
          Issue Type: Bug
          Components: versioning
    Affects Versions: 2.5
         Environment: Windows 2008, tomcat application server, SQL Server 2008 database server
            Reporter: Todd Pagni

We are adding a large number of documents to a jackrabbit 2.5 database repository.  We are
using the bundle.MSSqlPersistenceManager and we are seeing a large number of SQL queries (300+)
when adding a single folder, file, and file content. This appears to create a significant
performance bottleneck when adding documents when the repository size is over 300k documents/nodes.
The repository structure is a hierarchy with less than 1000k child nodes per parent.   The
following is an example structure of the repo with the (New child folder) representing the
new content being added. 
-- Root node  
-- Parent node  
                --New child folder (mix:versionable,mix:lockable)
                                --new file (mix:versionable,mix:lockable)
                   --new document content
--Existing Child Folder
-- Parent node                                  

The vast majority of the 200-300+ queries that execute when adding a node look like the following:

exec sp_execute 2,0x5740D9A36F2E4032BFF0BA652D89FFB8
exec sp_execute 2,0xBBFE059BF7E44947A8B0858F3CE33DB8
exec sp_execute 2,0xC2AD22DBE1DB43A083BCA1B2C94E07CC

The majority of the queries that are executed appear to be related to versioning.  When a
node is added the version history for the node stored/saved, the parent node is saved, which
ultimately cascades and saves all children of the parent, so adding a child node saves the
parent and all other children.  
We have created a patch for jackrabbit-core 2.5.0 to prevent the cascade to store all other
child nodes when saving/storing the version history of a new node.  This cuts the number of
queries that are executed in half.  Does anyone see a problem with this technique?   All unit
tests are still passing.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

View raw message