GlassFish Server Open Source Edition 3.1 - Basic Clustering

Introduction

This project will focus on creating the basic clustering infrastructure for GlassFish 3.1. We will look at the following high level tasks:

  • Lifecycle (install, create, delete, start, stop, restart) management
  • Configuration management
    • Ability to manage multiple cluster configurations
    • Support for offline config
    • Size of domain.xml should not be a bottleneck for startup and administration
  • Provide support for existing infrastructure for 3.1 release

Scope

Note: for requirements that have an IssueTracker link in the Status/Comments column, see IssueTracker for status.

Feature ID Priority Description Eng Response Owner(s) Estimate (Man Days) Source of Requirement Status / Comments
INFRA-001 P1 create-domain --template support Yes Byron 10 Feature parity 12016
INFRA-002A P1 create-instance Yes Jennifer 5 Feature parity CRUD domain.xml entry completed by Jerome
INFRA-002B P1 delete-instance Yes Byron 5 Feature parity Started May 14
INFRA-002C P1 create-local-instance Yes Jennifer 5 Feature parity Completed(no security/savemasterpassword)
INFRA-002D P1 list-instances Yes Byron 5 Feature parity Completed
INFRA-003A P1 start-local-instance Yes Byron 30 Feature parity Completed
INFRA-003A1 P1 Perfect XML Parsing Yes Byron 30 Feature parity Completed
INFRA-003B P1 stop-instance Yes Byron 5 Feature parity Completed local&remote
INFRA-004 P1 default-config template Yes Jennifer 15 Feature parity Completed
INFRA-005 P1 create/delete/list-cluster Yes Bhakti 15 Feature parity Completed
INFRA-006 P2 start/stop-cluster Yes Tom, Bhakti 10 Feature parity Issue 12124
INFRA-007 P1 copy/delete/list-config Yes Bhakti 10 Feature parity Completed
INFRA-008 P1 Support for infrastructure related CLIs. Refer to features wiki Yes Tom, Bhakti, Byron, Jennifer   Feature parity  
INFRA-009 P3 Support for manual synchronization Yes Jennifer 5   Issue 12120
INFRA-010 P2 Support for offline-config Yes Byron 5 Feature parity Issue 12121
INFRA-011 P1 Support for existing probe based monitoring infrastructure Yes Byron, Jennifer     Feature introduced in 3.0 release
INFRA-012 P3 Rename infrastructure related (ex. sun-domain_1_3.dtd, sun-loadbalancer_1_2.dtd, sun-resources_1_3.dtd, etc.) sun-* DTDs to glassfish-* Yes Byron 5   Issue 12122
INFRA-013 P2 Support for create-service Yes Byron 15 Feature parity* * create-service is working for Solaris and Windows; need to add support for Linux, Issue 12125
INFRA-014 P3 Support for restarting instance remotely Yes Byron 5   Issue 12123

Feature Overview

At the end of this effort, we will be able to create a GlassFish 3.1 cluster with multiple instances (involves manual synchronization step). User will be able to do the following tasks:

  1. Install and Setup a DAS Server
    • Install GlassFish 3.1 on DAS machine
    • Create a domain with default cluster config
    • Inject only associated config for DAS (server-config) runtime
    • Load other configuration elements on-demand for management (performance improvement)
  2. Create a Cluster
    • Create a cluster with members
    • Deploy applications to the cluster and/or make configuration changes for that cluster
    • Get a zip with all necessary applications and configuration for the cluster
  3. Create Remote Instance(s) for the Cluster (or Standalone Instance)
    • Install GlassFish 3.1 on an instance machine
    • Create instance(s) and register them with DAS
    • For each instance, FTP and apply the zip that has applications and configuration
  4. Start the Remote Instance(s)
    • Read the correct configuration
    • Load all associated resources/applications to the cluster or stand alone instance
    • Read only associated config (ex. cluster1-config) and skip all others configs (ex. cluster2-config) in domain.xml

Out of Scope

Synchronization during sever startup, load-balancer administration, dynamic reconfiguration and hot deployment, SSH support for provisioning, clustering support in console, etc. are outside the scope of this project. They will be handled in separate projects.

Design Document

Quality

  • Link to Test Plan

Documentation

Demos

Workspace

  • module name: clustering as sub-module under top-level admin module ?
  • package name: org.glassfish.admin.clustering ?

Milestone Schedule

Note: for milestone deliveries that have an IssueTracker link in the Status/Comments column, see IssueTracker for status.

Item # Date/Milestone Feature-ID Description QA/Docs Handover? Status / Comments
01. MS1 (5/24) INFRA-005 create/delete/list-cluster No FINISHED
02. MS1 (5/24) INFRA-002A, INFRA-002C, INFRA-002B, INFRA-002D create/delete/list-instance No create-local-instance: Basic function completed; create-instance: domain.xml entry completed; list: FINISHED
03. MS1 (5/24) INFRA-003A, INFRA-003B start/stop-instance No FINISHED
03X. MS1 (5/24) INFRA-003A1 Perfect Xml Parsing for Instances No TESTING NOW
04. MS2 (6/21) INFRA-005, INFRA-002A, INFRA-002C, INFRA-002B, INFRA-003A, INFRA-003B create/delete/list-cluster, create/delete/list-instance, start/stop-instance Yes Planned - will do QA/Docs handover with proper Dev Tests, Issues 12042 , 12043 , 12044
05. MS2 (6/21) INFRA-001 create-domain template support Yes Issue 12016
06. MS2 (6/21) INFRA-007 copy/delete/list-config Yes Issue 12017
07. MS3 (7/19) INFRA-009 manual sync Yes Issue 12120
08. MS3 (7/19) INFRA-010 offline-config Yes Issue 12121
09. MS3 (7/19) INFRA-012 Rename infrastructure related DTDs Yes Issue 12122
10. MS3 (7/19) INFRA-014 restart instance Yes Issue 12123
11. MS3 (7/19) INFRA-006 start/stop-cluster Yes Issue 12124
12. MS4 (7/19) INFRA-013 create-service Yes Issue 12125

Task List

Task Target Milestone Start End Date Owner(s) Feature ID Status / Comments
Sophisticated Minimum Config Parsing MS1 5/17 5/24 Byron INFRA-003A Extreme Testing Now. The most complex code I've written in at least one year! All instances end up with either 2 or 4 config elements. While retaining 2 levels of performance enhancements. Would have taken 2 hours w/o optimizations. It took 50 hours with optimization. This was INTENSE!!! Optimizations and readability was essential. It was worth the effort.
Analysis of v2 profiles and templates MS1 3/16 3/18 Jennifer INFRA-004 Completed. See Research
Support for multi-config support (section 4) MS1 4/8/10 4/15/10 Byron INFRA-003A Correct config elem parsing; make sure v3 code looks for the correct config
Support for create-cluster /delete/list-cluster (section 2) MS1 5/3 5/14 Bhakti INFRA-005 Completed Supported --config, done basic validation
Support for ref (section 2.4) MS1 5/17 5/21 Bhakti INFRA-005 Completed Added support for system-all application and resource refs
Support for create-instance /delete/list-instance (section 3) MS1 4/26 5/14 Jennifer, Byron INFRA-002A, INFRA-002B, INFRA-002C  
Support for start-instance (section 4) MS1 4/1/10 4/7/10 Byron INFRA-003A, INFRA-003B Completed. Can run in a restricted mode. See current status and open issues
Support for stop-instance (section 4) MS1 5/10 5/14 Byron INFRA-003A, INFRA-003B  
Support for running QuickLook on instances MS1 5/17 5/21 Byron INFRA-003A, INFRA-003B  
Move start-domain code to a common base class or to utilities MS2     Byron INFRA-003A  
Necessary support for create-domain (section 1) MS2 5/26 6/9 Byron INFRA-001  
Write dev tests for create/delete/list-instance MS2 5/26 6/9 Jennifer INFRA-002 Completed
Write dev tests for create/delete/list-cluster MS2 5/26 6/9 Bhakti INFRA-005 FINISHED
Write dev tests for start/stop-instance MS2 6/9 6/16 Byron INFRA-005  
monitoring:Support probe providers in applications directory MS3 6/30 7/1 Jennifer INFRA-011: Issue 11927 Completed
monitoring refactoring MS3 6/9 6/11 Jennifer INFRA-011: Issue 11256  
Fix bugs MS2 5/26 6/9 Jennifer Issue 7144  
Support for infrastructure CLIs MS2     ALL  
Support for offline-config (section 3) MS3 6/23 6/30 Byron INFRA-010  
Support for manual sync (section 2.3) MS3 6/23 6/30 Jennifer INFRA-009  
Hand off Performance Tuner to QA/Docs/Perf - add more tests MS3 6/23 6/30 Jennifer    
Support for restarting remote instance MS3 7/1 7/8 Byron INFRA-014 Should continue to work
Cluster infrastructure security MS3     Tom   Co-ordinate with security team
Support for start/stop-cluster MS3 6/23 7/7 Tom, Bhakti INFRA-006 Co-ordinate with SSH team
Support for create-service MS4 7/21 8/11 Byron INFRA-013 Solaris and Windows are working; need to add support for Linux
Support for upgrade MS4     Jennifer    
Fix P1 bugs MS4     ALL N/A MS4 is the SCF for infrastructure. All P1 bugs need to be addressed

Research

References

Dev Tests

Estimates

The list is somewhat order-dependent.

Area When Notes
Specs 2 man-weeks Completed
start/create/stop/delete-instance all working, possibly in a simple mode 1 man-month Started
start/create/stop/delete-cluster/cluster-ref all working, possibly in a simple mode 1 man-month Started
Fix internals of v3 to work as an instance (mainly no admin!) 2 man-weeks  
Fix instance/cluster code to final production, now that v3 proper is cooperating 3 man-months  
Make Changes based on performance and bug fixes 3 man-months  

Email Alias