[jboss-jira] [JBoss JIRA] (WFLY-1430) Create clustering subsystem

Richard Achmatowicz (JIRA) jira-events at lists.jboss.org
Wed Jul 3 17:49:20 EDT 2013


    [ https://issues.jboss.org/browse/WFLY-1430?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12787101#comment-12787101 ] 

Richard Achmatowicz edited comment on WFLY-1430 at 7/3/13 5:49 PM:
-------------------------------------------------------------------

An update on progress. I have now done the following:
- implemented resource /subsystem=cluster/name=<channel>
- implemented resource /subsystem=cluster/name=<channel>/deployment=<deployment-name>
- removed any use of the management interface ; channel and cache information is obtained directly from services
The interface is limited at present to a couple of attributes, but it looks like this:

{noformat}

[standalone at 127.0.0.1:10090 /] /subsystem=cluster/name=web:read-attribute(name=view)
{
    "outcome" => "success",
    "result" => [
        ("lenovo/web" => "[fred/web|3] [fred/web, lenovo/web]"),
        ("fred/web" => "[fred/web|3] [fred/web, lenovo/web]")
    ]
}


[standalone at 127.0.0.1:10090 /] /subsystem=cluster/name=web/deployment=default-host\/distributable:read-attribute(name=cache-view)
{
    "outcome" => "success",
    "result" => [
        ("lenovo/web" => "[fred/web, lenovo/web]"),
        ("fred/web" => "[fred/web, lenovo/web]")
    ]
}

{noformat}

This interface will be added to and improved over time.

I had a bit of trouble ensuring that the RPC mechanism which is used by the interface:
- gets installed without introducing circular dependencies with other modules (i.e. Infinispan)
- gets started on all nodes whenever a channel gets started 

What I did (with help from Paul) was this:
- reworked the installation of the RPC mechanism ManagementAPIClusterSupport as a ChannelDependentServiceProvider, which allows it to be installed by the Infinispan subsystem's CacheContainerAdd method, without introducing a circular dependeency
- defined a dummy service ManagementAPIClusterSupportTrigger which is dependent on ChannelService and started in PASSIVE mode, so that whenever a channel starts, it starts. This dummy service is what starts the ManagementAPICLusterSupport service on each node.   

The PR I have listed above still needs cleaning up, but it incorporates what is described above.

                
      was (Author: rachmato):
    An update on progress. I have now done the following:
- implemented resource /subsystem=cluster/name=<channel>
- implemented resource /subsystem=cluster/name=<channel>/deployment=<deployment-name>
- removed any use of the management interface ; channel and cache information is obtained directly from services
The interface is limited at present to a couple of attributes, but it looks like this:

{noformat}

[standalone at 127.0.0.1:10090 /] /subsystem=cluster/name=web:read-attribute(name=view)
{
    "outcome" => "success",
    "result" => [
        ("lenovo/web" => "[fred/web|3] [fred/web, lenovo/web]"),
        ("fred/web" => "[fred/web|3] [fred/web, lenovo/web]")
    ]
}


[standalone at 127.0.0.1:10090 /] /subsystem=cluster/name=web/deployment=default-host\/distributable:read-attribute(name=cache-view)
{
    "outcome" => "success",
    "result" => [
        ("lenovo/web" => "[fred/web, lenovo/web]"),
        ("fred/web" => "[fred/web, lenovo/web]")
    ]
}

{noformat}

This interface will be added to and improved over time.

I had a bit of trouble ensuring that the RPC mechanism which is used by the interface:
- gets installed without introducing circular dependencies with other modules (i.e. Infinispan)
- gets started on all nodes whenever a channel gets started 

What I did was this:
- reworked the installation of the RPC mechanism ManagementAPIClusterSupport as a ChannelDependentServiceProvider, which allows it to be installed by the Infinispan subsystem's CacheContainerAdd method, without introducing a circular dependeency
- defined a dummy service ManagementAPIClusterSupportTrigger which is dependent on ChannelService and started in PASSIVE mode, so that whenever a channel starts, it starts. This dummy service is what starts the ManagementAPICLusterSupport service on each node.   

The PR I have listed above still needs cleaning up, but it incorporates what is described above.

                  
> Create clustering subsystem
> ---------------------------
>
>                 Key: WFLY-1430
>                 URL: https://issues.jboss.org/browse/WFLY-1430
>             Project: WildFly
>          Issue Type: Feature Request
>          Components: Clustering
>    Affects Versions: 8.0.0.Alpha2
>            Reporter: Richard Achmatowicz
>            Assignee: Richard Achmatowicz
>
> Create a clustering subsystem which collects together clustering-related functionality as described in WFLY-1236.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jboss-jira mailing list