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

Mime
View raw message