Jackrabbit repository perfomance tuning
These topics will help you to get the best performance out of your Jackrabbit repository, using background information on known Jackrabbit performance issues as well as step-by-step instructions on addressing them in the Pentaho software.
Jackrabbit hangs on unused data
You can clean up this unused data in the JCR by enabling a system listener designed for this purpose. Cleaning up the JCR can only be done with no users logged into it, and the repository remains locked while the process is running.
Procedure
Stop the Pentaho Server.
Locate the pentaho-server/pentaho-solutions/system directory and open the systemListeners.xml with any text editor.
Add this bean as the last item within the list tags.
<bean id="repositoryCleanerSystemListener" class="org.pentaho.platform.plugin.services.repository.RepositoryCleanerSystemListener"> <property name="gcEnabled" value="true"/> <property name="execute" value="now"/> </bean>
Save and close the systemListeners.xml file and restart the Pentaho Server.
Next steps
repositoryCleanerSystemListener
by editing these properties. We
recommend cleaning up the Jackrabbit repository on a regular schedule.Property | Description |
gcEnabled | This is a Boolean flag that turns the listener On (true) or Off (false). |
execute | You can choose to run the listener:
|
Jackrabbit runs slowly with too many home directories
A flag has been added to skip user verification on principal creation by default. It retrieves user details from the user cache only, which speeds up repository loading.
You may need to restore the old behavior if your authorization system is expecting the Pentaho Server to load all of the user information on startup. Restore the old behavior by changing the skipUserVerificationOnPrincipalCreation to false. This allows user verification to operate in the same way it did before 6.1.
Procedure
Navigate to the pentaho-solutions/system/jackrabbit directory.
Open the security.properties file with any text editor.
Locate the skipUserVerificationOnPrincipalCreation property and set the value as needed.
Save and close the file.
Next steps
Jackrabbit Lucene SearchIndex slows server performance
The purpose of the Jackrabbit
SearchIndex
tag is to index property values and node names when data is saved
or whenever a data transaction is performed. With the Pentaho Platform, Jackrabbit’s Lucene tries to index all of the text from every
file in the repository. The SearchIndex
tag has been disabled for Pentaho 6.1 and higher to improve overall repository
performance.
When you upgrade to Pentaho 6.1 or higher and bring your previous repository.xml forward to the new version, your server will start and function as it did in your previous version of Pentaho. This Jackrabbit Lucene indexing can cause degradation in repository performance.
If you are bringing forward your repository.xml, you will need to
disable the SearchIndex
tag within Jackrabbit. Depending on whether you have
a custom-configured repository or a default repository, follow one of these procedures for
disabling the SearchIndex
tag.
If you have a custom-configured repository XML file
SearchIndex
tag:Procedure
Navigate to the pentaho-solutions/system/jackrabbit directory.
Open the repository.xml file with any text editor.
Search for the
SearchIndex
tag.You should find it within two tags: the
<Workspace>
tag and the<Repository>
tag.In the
<Repository>
tag only, delete or comment out theSearchIndex
tag. Make sure that you don't change theSearchIndex
tag within the<Workspace>
tag.Save and close the repository.xml file.
Next steps
If you are using the default repository XML file
SearchIndex
tag:Procedure
Navigate to the pentaho-solutions/system/jackrabbit directory.
Open the repository.xml file with any text editor.
Search for the following instance of the
SearchIndex
tag:<SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex"> <param name="path" value="${rep.home}/repository/index"/> <param name="supportHighlighting" value="true"/> </SearchIndex>
Delete or comment out that
SearchIndex
tag.Save and close the repository.xml file.
Next steps