Make Locking Strategy Configurable (for Cluster Usage)
------------------------------------------------------

                 Key: SLING-1917
                 URL: https://issues.apache.org/jira/browse/SLING-1917
             Project: Sling
          Issue Type: New Feature
          Components: Extensions
    Affects Versions: Extensions Event 2.4.2
            Reporter: Carsten Ziegeler
            Assignee: Carsten Ziegeler
             Fix For: Extensions Event 3.0.0


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

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to