Uploaded image for project: 'Nuxeo Platform'
  1. Nuxeo Platform
  2. NXP-28661

Allow concurrent startup of Nuxeo instances

    Details

    • Release Notes Summary:
      Concurrent startups are supported.
    • Tags:
    • Impact type:
      Configuration Change
    • Upgrade notes:
      Hide

      In cluster mode, the document repository and the directories are initialized non-concurrently in a cluster-wide critical section.

      When a cluster node attempts to initialize its repository (or a directory) and another node is already doing the same thing, it will wait for 1 min for the cluster-wide lock to be released and do its own initialization. If this timeout expires, then initialization fails with an exception.

      The following two nuxeo.conf properties can be used to change this timeout:

      org.nuxeo.repository.cluster.start.duration=1m
      org.nuxeo.directory.cluster.start.duration=1m
      

      In case where there's a startup crash while a lock is held, it may be necessary to manually cleanup the key/value store of its locks. The keys corresponding to the locks are visible when using Redis with KEYS nuxeo:cluster:* for instance nuxeo:cluster:start-repository-default or nuxeo:cluster:start-directories. For a MongoDB key/value store, the keys are stored in the collection kv.cluster

      Show
      In cluster mode, the document repository and the directories are initialized non-concurrently in a cluster-wide critical section. When a cluster node attempts to initialize its repository (or a directory) and another node is already doing the same thing, it will wait for 1 min for the cluster-wide lock to be released and do its own initialization. If this timeout expires, then initialization fails with an exception. The following two nuxeo.conf properties can be used to change this timeout: org.nuxeo.repository.cluster.start.duration=1m org.nuxeo.directory.cluster.start.duration=1m In case where there's a startup crash while a lock is held, it may be necessary to manually cleanup the key/value store of its locks. The keys corresponding to the locks are visible when using Redis with KEYS nuxeo:cluster:* for instance nuxeo:cluster:start-repository-default or nuxeo:cluster:start-directories . For a MongoDB key/value store, the keys are stored in the collection  kv.cluster
    • Sprint:
      nxFG 11.1.12
    • Story Points:
      3

      Description

      Currently we specify that Nuxeo instances must not start at the same time. This is because during startup there are several process that check the database state and attempt to do DDL (repositories, directories), and this process is not safe to run concurrently on two nodes.

      However this is a problem for easy container deployment because we have to rely on the orchestrator to make sure it doesn't start nodes concurrently, which isn't always a natural or easy thing to do.

      So a better solution would be for Nuxeo itself to make sure that any critical sections during startup are made safe cluster-wide.

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - 0 minutes
                  0m
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 2 days
                  2d

                    PagerDuty

                    Error rendering 'com.pagerduty.jira-server-plugin:PagerDuty'. Please contact your Jira administrators.