Question

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?

Answer

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"/>
    ...
    <Cluster>
        <Journal class="com.day.crx.persistence.tar.TarJournal"/>
    </Cluster>

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
    crx-quickstart/repository/repository/datastore
  • move all files from crx-quickstart/repository/shared/namespaces to
    crx-quickstart/repository/repository/namespaces
  • move all files from crx-quickstart/repository/shared/nodetypes to
    crx-quickstart/repository/repository/nodetypes
  • delete the file crx-quickstart/repository/revision.log
  • delete the directory crx-quickstart/repository/shared
  • start the instance(s)

Applies to

CRX 2.2

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License  Twitter™ and Facebook posts are not covered under the terms of Creative Commons.

Legal Notices   |   Online Privacy Policy