You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Carsten Ziegeler (JIRA)" <ji...@apache.org> on 2011/01/05 10:01:45 UTC

[jira] Created: (SLING-1917) Make Locking Strategy Configurable (for Cluster Usage)

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.


[jira] Closed: (SLING-1917) Make Locking Strategy Configurable (for Cluster Usage)

Posted by "Carsten Ziegeler (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SLING-1917?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Carsten Ziegeler closed SLING-1917.
-----------------------------------


> 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.


[jira] Resolved: (SLING-1917) Make Locking Strategy Configurable (for Cluster Usage)

Posted by "Carsten Ziegeler (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SLING-1917?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Carsten Ziegeler resolved SLING-1917.
-------------------------------------

    Resolution: Fixed

Implemented a lock manager in revision 1055369

And created JCR-2859

> 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.