GlassFish V2: Improved startup performance


Improving the startup performance was always on our mind and that has been one of our focus areas for this release. And yes we have been working on this for a long time now, since the beginning of Glassfish V2 ([1],[2]) and I have been involved in Co-ordinating the effort to improve the startup performance of the Glassfish V2 ([1],[2])'s Domain Administration Server (DAS), Cluster and Instance. Following are the improved results compared to the SJSAS 8.1 version which were captured by our performance lead, Suveen. The numbers below are measured for the Sun Java System Application Server 9.1 the Productized version (from Sun) of Glassfish V2 ([1],[2]).

Component
Improved by (%) compared to 8.1
Start/Stop Cluster
20%
Start/Stop Instance
18%
Start/Stop Domain
15%


Very involved task but it was made easy by excellent contributions from the below mentioned Engineers. I thank all of them without which it would not have been possible to reach these better figures. There were other contributions made (Analyzing the profiles data, identifying the problem areas etc.,) by other members which couldn't be shown in numbers, they are Kedar, Suveen , Abhijit and Nazrul.

Following is the detailed list of improvements done in different modules. 


S.No
Description
Improvement
Engineer
0.
Getting the results and constantly monitoring the optimizations and any regressions from build to build on various type of Systems
NA
Suveen
1.
Starting all the system apps concurrently 7%
Tim
2.
Starting all web-modules[user/system] concurrently. 4%
Jan
3.
Parsing overhead of deployment descriptors. 2%
Tim
4.
Removing the load-on-startup from wstx-services application. 6%
Vijay/Jan
5.
Delaying the admingui loading till the first request 7%
Ryan/Jan/
Ken
6.
Delaying loading of the WSTCPServiceLifeCycle module till the first request. 0.5%
Alexy
7.
Threading the LifecycleModuleService initialization 2%
Lloyd
8.
Threading all same-load-order lifecycle modules[WSTCPConnectorLCModule, JBIFrameworkLC] for each of {onInitialization, onStartup, onReady}.
9.
Remove call to registorValidator() for instances. 1.1%
Prashanth
10.
DottedNameOptimization [Bug No : 6491081] 2%
Lloyd
11.
TypeInfo optimization.
12.
AdminChannelServer., load in a separate thread.
13.
ias MBeans removed
14.
Removed the extra JVM invocations from startup/shutdown of servers. Details
Stop - 44%
StartDomain - 12%
Byron
15.
ConfigContextImpl.refresh() is called too often 4%
Siva
16.
getAdminMBeanRegistry(), this call shouldn't be there in instance/cluster startup. 4%
Prashanth
17.
Removing the JXTA pipe creation during the application server cluster startup. Move the pipe creation logic to first deployment when the app is deployed with availability enabled set to TRUE
8-10%
Larry White
18.
Move the cascading logic to start domain.
2-4%
Sreeni
19.
JMXConnector for JConsole to be initialized on demand. Details
0.4%
Nandini
20.
Threading all the Lifecycle Modules. This has been shelved as it was proven a risky change and required a lot of testing.
NA
Lloyd, Nandini, Prashanth
21.
Improved JBI Lifecycle Startup time,  optimization in XA recovery, optimizations in Developer profile which in turn improved cluster and EE profiles.
NA
Keith/Derek
22.
Omitting the second and subsequent calls to upgradeCheck in asadmin start-domain
NA
Kedar


Comments:

Excellent job!

Posted by janey on September 05, 2007 at 06:48 PM PDT #

Hi Mr Prashanth ,
I want to ask your a quesion about WSTCPConnectorLCModule.
As you see, WSTCPConnectorLCModule is a LifeCycleModule for SOAP/TCP message.
Now I want to ask is, The WSTCPConnectorLCModule is only used for this aim? Any other Source will use it?
Thanks for you answer.

Posted by JB on April 20, 2010 at 05:48 PM PDT #

Post a Comment:
  • HTML Syntax: NOT allowed
About

bloggerprashanth

Search

Categories
Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today