Shoal GMS is a clustering framework that provides infrastructure to build fault tolerance, reliability and availability. Feature Overview The clustering framework provides the following functionality to GlassFish services and user applications:
- GMS event notification
- register callback for GMS event notification
- GMS runtime notifies when changes in group membership occur.
- Cluster-wide Messaging
- send a message to one, sub list or broadcast to all members of cluster
- register message callback to process messages sent by other group members.
- GMS status methods
- list of all members or just list of CORE members
- request a member status on any member in cluster
- GMS Group Configuration
- configure multicast address and port used by a group
- configure alternative transport settings when UDP multicast will not be used (new feature for GF 3.2)
- ability to configure GMS listener BIND_INTERFACE_ADDRESS (IP address of network interface) to use on a multihome machine
Feature List and Schedule (Features and priorities not yet final.)
Feature ID |
Priority |
Description |
Eng Response |
Owner(s) |
Estimate (Man Days) |
Source of Requirement |
JIRA Link |
|
QA/Docs Handover? |
|
Status / Comments |
GMS-1.0.01 |
P1 |
Administrators shall be able to configure a GMS group discovery mechanism for a site. |
|
Bobby |
|
|
GLASSFISH-16413 |
|
|
|
|
GMS-1.0.02 |
P1 |
Administrator shall be able to configure a cluster to not require UDP multicast |
|
Bobby |
|
|
GLASSFISH-16414 |
|
|
|
|
GMS-1.0.03 |
P2 |
Administrator shall be able to configure GMS TCP point to point messages to use SSL. |
|
Joe |
|
|
GLASSFISH-14664 |
|
|
|
|
GMS-1.0.04 |
P2 |
Administrators shall be able to configure clustered instances to potentially be separated by a firewall. |
|
Joe |
|
|
GLASSFISH-16415 |
|
|
|
|
GMS-1.0.05 |
N/A |
(previously deleted) |
|
|
|
|
|
|
|
|
|
GMS-1.0.06 |
P2 |
GMS monitoring stats provider |
|
Joe, Bobby |
|
|
GLASSFISH-12194 |
|
|
|
|
GMS-1.0.07 |
P3 |
Administrator shall be able to create up to 10 instances in a cluster |
|
|
|
|
|
|
|
|
|
GMS-1.0.08 |
P3 |
Administrator shall be able to create 20 clusters in a domain. |
|
|
|
|
|
|
|
|
|
GMS-1.0.09 |
P2 |
Administrator shall be able to configure heartbeats to be sent over UDP unicast transport when multicast is disabled. |
|
Joe |
|
|
GLASSFISH-16416 |
|
|
|
|
GMS-1.0.10 |
P3 |
asadmin get-health needs to work in self configuring(ad hoc clusters) cluster env |
|
|
|
|
GLASSFISH-16417 |
|
|
|
|
GMS-1.0.11 |
P1 |
New heartbeat failure detection implementation optimized for non-multicast and no DAS |
|
Joe |
|
|
GLASSFISH-16418 |
|
|
|
|
GMS-1.0.12 |
P3 |
Support for OS configured with IPv6 only |
|
|
|
|
Workaround in GLASSFISH-16103 |
|
|
|
|
GMS-1.0.13 |
P2 |
Virtual multicast optimization to send messages concurrently. |
|
Bobby |
|
|
GLASSFISH-16419 |
|
|
|
|
GMS-1.0.14 |
P1 |
New GMS configuration info on cluster and group-management-service element in domain.xml |
|
Bobby |
|
|
GLASSFISH-16420 |
|
|
|
|
GMS-1.0.15 |
P3 |
GMS Member authentication when member is joining. |
|
|
|
|
GLASSFISH-14663 |
|
|
|
|
GMS-1.0.16 |
P1 |
Factor Shoal GMS grizzly transport dependent classes into shoal-gms-grizzly-1_9.jar and shoal-gms-grizzly-2_0.jar. |
|
Joe |
|
|
GLASSFISH-16421 |
|
|
|
|
GMS-1.0.17 |
P3 |
Support secure communications with discovery service. |
|
|
|
|
|
|
|
|
|
Out of Scope
# |
Description |
Comments |
GMS-1.1.1 |
Will not support network interface changes while cluster is running. |
Will be identifying IPV4 only, IPV6 only or dual stack at startup and work for that mode. |
GMS-1.1.2 |
Will not support network fragmentation that isolates group discovery service from clustered instances. |
There should be a group discovery service per subnet if it is a concern that routers/network can fail. |
GMS-1.1.3 |
Will not support hybrid approach of using UDP multicast within subnets and unicast between subnets. |
Simplification to consider all members reachable by UDP multicast or to consider all members communicating via unicast. |
GMS-1.1.4 |
For no DAS case (self-configuring clusters) when there are no instances running, supporting multiple GMS clustered instances all being started concurrently. |
DAS always was first instance in cluster started and it would become master before any other clustered instances were started. Thus, GMS Master Collision Resolution technique has never been tested in glassfish environment. There are no existing tests for this case. To support this, tests would need to be written and this is the type of concurrent, non-repeatable testing scenario where something like this would work most of time and intermittently fail. Thus, this is a simplifying non-requirement request. If one simply ensures that after the first instance in cluster is started, that there is a 2 second delay before the next instance is started, it would avoid the chance of issues in the master collision resolution algorithm. |
GMS-1.1.5 |
Will not support hybrid list of master discovery services. |
It is not expected that the GMS_DISCOVERY_REGISTRY_URI_LIST cluster property will contain the address of one or more REST discovery services and an Amazon S3 service. We will not try to synchronize our master discovery information with an S3 bucket. |
Design Document GMS One Pager for GF 3.2 Quality
Documentation
- Link to Documentation Plan
Demos
- To be filled in as demos come up each milestone or as appropriate.
Workspace Shoal workspace is shared by GMS and HA: http://shoal.java.net GMS-specific parts of GlassFish are in cluster/gms-bootstrap and cluster/gms-adapter modules. Milestone Schedule (TBD) Milestones not assigned yet to P3 features. For reference, here's a link to GlassFish milestone schedule
Item # |
Date/Milestone |
Feature-ID |
JIRA issue ID & link |
Description |
QA/Docs Handover? |
Status / Comments |
1 |
3 |
GMS-1.0.02 |
GLASSFISH-16414 |
Administrator shall be able to configure a cluster to not require UDP multicast |
|
|
2 |
3 |
GMS-1.0.16 |
GLASSFISH-16421 |
Factor Shoal GMS grizzly transport dependent classes into shoal-gms-grizzly-1_9.jar and shoal-gms-grizzly-2_0.jar. |
|
|
3 |
3 |
GMS-1.0.14 |
GLASSFISH-16420 |
New GMS configuration info on cluster and group-management-service element in domain.xml |
|
|
4 |
4 |
GMS-1.0.01 |
GLASSFISH-16413 |
Administrators shall be able to configure a GMS group discovery mechanism for a site. |
|
|
5 |
5 |
GMS-1.0.03 |
GLASSFISH-14664 |
Administrator shall be able to configure GMS TCP point to point messages to use SSL. |
|
|
6 |
5 |
GMS-1.0.06 |
GLASSFISH-12194 |
GMS monitoring stats provider |
|
|
7 |
5 |
GMS-1.0.11 |
GLASSFISH-16418 |
New heartbeat failure detection implementation optimized for non-multicast and no DAS |
|
|
8 |
5 |
GMS-1.0.13 |
GLASSFISH-16419 |
Virtual multicast optimization to send messages concurrently. |
|
|
9 |
6 |
GMS-1.0.04 |
GLASSFISH-16415 |
Administrators shall be able to configure clustered instances to potentially be separated by a firewall. |
|
|
10 |
TBD (P2) |
GMS-1.0.09 |
GLASSFISH-16416 |
Administrator shall be able to configure heartbeats to be sent over UDP unicast transport when multicast is disabled. |
|
|
11 |
(P3) |
GMS-1.0.07 |
|
Administrator shall be able to create up to 10 instances in a cluster |
|
|
12 |
(P3) |
GMS-1.0.08 |
|
Administrator shall be able to create 20 clusters in a domain. |
|
|
13 |
(P3) |
GMS-1.0.10 |
GLASSFISH-16417 |
asadmin get-health needs to work in self configuring(ad hoc clusters) cluster env |
|
|
14 |
(P3) |
GMS-1.0.12 |
Workaround in GLASSFISH-16103 |
Support for OS configured with IPv6 only |
|
|
15 |
(P3) |
GMS-1.0.15 |
GLASSFISH-14663 |
GMS Member authentication when member is joining. |
|
|
16 |
(P3) |
GMS-1.0.17 |
|
Support secure communications with discovery service. |
|
|
Task List
Task |
Target Milestone |
Start |
End Date |
Owner(s) |
Feature ID |
Status / Comments |
1 |
3 |
|
|
|
GMS-1.0.02 |
|
2 |
3 |
|
|
|
GMS-1.0.16 |
|
3 |
3 |
|
|
|
GMS-1.0.14 |
|
4 |
4 |
|
|
|
GMS-1.0.01 |
|
5 |
5 |
|
|
|
GMS-1.0.03 |
|
6 |
5 |
|
|
|
GMS-1.0.06 |
|
7 |
5 |
|
|
|
GMS-1.0.11 |
|
8 |
5 |
|
|
|
GMS-1.0.13 |
|
9 |
6 |
|
|
|
GMS-1.0.04 |
|
10 |
TBD |
|
|
|
GMS-1.0.09 |
|
11 |
|
|
|
|
GMS-1.0.07 |
|
12 |
|
|
|
|
GMS-1.0.08 |
|
13 |
|
|
|
|
GMS-1.0.10 |
|
14 |
|
|
|
|
GMS-1.0.12 |
|
15 |
|
|
|
|
GMS-1.0.15 |
|
16 |
|
|
|
|
GMS-1.0.17 |
|
Research References Dev Tests Estimates
Email Alias
|