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.