Upgrade to Shared Nothing Clustering


After upgrading a CRX2.0/2.1 repository to CRX2.2, how is it possible to upgrade to the new Shared Nothing clustering [1] mode?


For backwards compatibility reasons, the upgrade process to CRX2.2 does not change the previous repository layout:

  • upgraded CRX2.2 instance will still run with the previous configured clustering mode based on a shared directory (local copies + shared persistence)
  • Jackrabbit FileJournal [2]
  • Jackrabbit FileDataStore [3]

The new Shared Nothing mode basically removes the need for a shared folder which needs to be accessible to all nodes in a cluster (e.g. using NFS). Instead, all the three main storage areas are stored locally on each cluster node; synchronization is done fully over the network:

  1. Workspaces (TarPM)
  2. DataStore
  3. Journal

In order to upgrade to the Shared Nothing clustering mode, the following steps are required:

  • make sure that the upgrade itself was performed successfully and the repository is accessible afterwards
  • if running multiple CQ/CRX instances in a cluster, ensure that all cluster nodes are in sync
  • stop (all cluster) instance(s)
  • backup instance(s)

Next, the repository.xml configuration needs to be adapted to use the new classes for both DataStore and Journal:

    <DataStore class="com.day.crx.core.data.ClusterDataStore"/>
        <Journal class="com.day.crx.persistence.tar.TarJournal"/>

Then perform the following operations on FS level to reorganize the data to be used in the Shared Nothing mode:

  • move all files from crx-quickstart/repository/workspaces/crx.default/copy to crx-quickstart/repository/workspaces/crx.default (do this for all workspaces)
  • move all files from crx-quickstart/repository/version/copy to crx-quickstart/repository/version
  • move the folder crx-quickstart/repository/shared/repository/datastore to
  • move all files from crx-quickstart/repository/shared/namespaces to
  • move all files from crx-quickstart/repository/shared/nodetypes to
  • delete the file crx-quickstart/repository/revision.log
  • delete the directory crx-quickstart/repository/shared
  • start the instance(s)

Applies to

CRX 2.2