Uploaded image for project: 'Sling'
  1. Sling
  2. SLING-1917

Make Locking Strategy Configurable (for Cluster Usage)

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Major
    • Resolution: Fixed
    • Event 2.4.2
    • Event 3.0.0
    • Extensions
    • None

    Description

      The Sling eventing currently uses session scoped locks to prevent two cluster nodes to process the same job.

      Unfortunately, Jackrabbit does currently not support session scoped locks in a cluster.

      Another way would be to use open scoped locks. We could implement a heartbeat functionality which detects if a cluster node is not available anymore and any other node in the cluster unlocks the
      locked nodes. Unfortunately, this doesn't work in Jackrabbit either, as the lock handling is implemented in a very strict way and only the session which created the lock can unlock it (or the other session
      needs the lock token) - I'll create an enhancement bug for this in Jackrabbit

      If no cluster is used at all, we could skip the locking completly and therefore reduce the load on the repository

      Therefore we could make a lock manager with a locking mode configuration of "session scoped", "open scoped", and "none"

      As an additional note, if one want to use Jackrabbit and the Sling eventing in a clustered environment - one working approach is to disable job execution on all but a single cluster node - this can be done by setting the jobmanager.enabled configuration property for the JobManager

      Attachments

        Activity

          People

            cziegeler Carsten Ziegeler
            cziegeler Carsten Ziegeler
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: