Shreedhar' s Weblog

   
Main | Next page »

http://blogs.sun.com/shreedhar/date/20091028 Wednesday October 28, 2009

GlassFish v2.1.1 and Sailfin 2.0 (Sun GlassFish Communications Server 2.0 ) released!

Great news out today that both the GlassFish v2.1.1 (Sun GlassFish Enterprise Server 2.1.1) and Sailfin 2.0 (Sun GlassFish Communications Server 2.0 ) have been released today. 

GlassFish v2.1.1 has over 200 bug fixes and improvements. On the high availability side, we have refined the replication module further and on the fault tolerance side, Shoal GMS Clustering (version 1.1) now leverages the GlassFish Node Agent's ability to detect process losses quickly to inform Shoal GMS Members about failures. This improved our software failure detection timeout from around 9-12 seconds to around 4-5 seconds - an important improvement in supporting failover and other recovery oriented computing components.  

Sailfin 2.0 introduces High Availability for SIP and Converged applications and uses an enhanced predictive replication algorithm supporting high traffic and large number of active sessions in addition to supporting Rolling Upgrade with session states retained. With many improvements in Shoal's clustering core along with support network traffic specification to specific network interfaces, and improved health state transitions, this makes for added reliability and scalability in the clustering capabilities of Sailfin. 

Congratulations to the entire Sailfin and GlassFish developer community for splendid work in successfully releasing these products. 

Kudos! 


http://blogs.sun.com/shreedhar/date/20090925 Friday September 25, 2009

How Does Sailfin (Sun GlassFish Communications Server) SIP Session Replication Module Select Replica Instances?

For scalable deployments of middleware with high availability, employing a session state persistence approach to persist session state to all instances in the cluster could be a sub-optimal solution. Replicating sessions to all instances in the cluster would result in significantly higher network traffic just for replicating state reducing bandwidth for growing application user requests. This approach of sharing sessions across all instances perhaps is suited for small clusters with limited number of concurrent requests.

One of the better approaches to use to secure scaling advantages is the approach of buddy replication. In this approach, each instance selects one (or more) other instance(s) in the cluster to replicate any and all of its sessions. This is a superior approach and in fact, works for fairly large deployments. There are factors to consider here, in terms of the overhead the replication subsystem will need to handle at the cost of performance particularly when large number of concurrent sessions are being processed and later expired. An overhead to consider is the need for instances to form ring-like replica partnerships based on a certain order in which buddies would be available and selected. When a buddy instance fails, there is the cost of re-adjusting and forming new buddy relationship with another surviving instance, and when the original buddy recovers, to re-adjust again to use this upcoming instance as a replica partner by one of the instances in the cluster. Think of this as a chain based ring with its links randomly being removed but with the consistent goal of retaining a connected chain ring with the overhead of relinking each time a link is removed or added or a new one added to the chain.

There is also cost to be considered (if such were the design approach), each time the cluster shape changes for dynamically changing/updating any cookie information pertaining to replica locations that could be sent back as part of the response headers to the LB - typically that cost should also be avoided through more efficient means.

In the case of GlassFish, we have fairly successfully used buddy replication with each instance having a single replica buddy. We use the approach of locating sessions in the cluster when a request is directed by the LB to any random instance when a failure of an instance that was processing requests occurs. This has worked well for reasonably large mission critical environments where the scalability and availability requirements are within the boundaries of this approach.

In Sailfin 2.0, scaling and reliability needs for telco applications is typically very high and we needed a scalable approach to ensure Sip Session Replication overhead sustained good performance with the added reliability and availability. We, therefore, used a consistent hashing algorithm to dynamically assign a replica instance for each new session. This we did by leveraging the consistent hashing mechanism that the Sailfin Converged Load Balancer (CLB) uses for proxying requests to a target instance using a BEKey. In the case of replication, the same logic of using a hashed key for the target instance assignment is taken a bit further.

For replica selection, for each new session, we pre-calculate the most likely target instance that the CLB would failover to, if the current target primary instance that would serve the session, were to fail in future. This gives us the instance to which, the current primary instance, should replicate to. This gave us significant benefits in that there were no client cookie updates required to include replica partner information dynamically. There was no readjustment of replica partnerships needed when a particular instance failed as the hashing algorithm would provide another instance to replicate to with just an API call. When the failed instance comes back into the cluster, the sessions that were owned by it in its prior incarnation that are unexpired, would migrate back to it to maintain a balanced set of sessions across the cluster. And the replica selection algorithm would assign the original failover instance for this primary, as the replication partner.

Since this is based on a hashed selection algorithm with predetermined failover target, replica selection is dynamic, and does not need the knowledge of a particular order of instances being ready in the cluster to point all sessions from another instance as a replication partner. And more importantly, as the failover occurs to the specifc instance where replica data is located, there is significantly less network overhead to locate any particular session in the cluster when a particular request within the session scope is sent to the CLB. This allows for more bandwidth being available for a larger number of user sessions to be served. This approach is thus superior to the buddy replication approach and helped us scale to higher throughput and sustain a larger number of long running sessions.

It must be emphasized here that system level, and application server level tuning, and sizing are essential to ensure sustained performance, scalability and reliability in addition to the improvements provided with the SSR replication scheme and other parts of the Sailfin v2 server (aka Sun GlassFish Communications Server 2.0) .

As always, we welcome your feedback and encourage you to try Sailfin and send us any inputs and questions you may have in this respect.

Sailfin Promoted Builds are available here : Sailfin Downloads


http://blogs.sun.com/shreedhar/date/20090917 Thursday September 17, 2009

Project Shoal releases Shoal 1.1 Final Release

Project Shoal is announcing the release of Shoal 1.1 FCS today.  This is the third release after Shoal 1.0 and 1.0 Update Release. 

During the long time we have been working on this release, the Shoal team has accomplished many new features, and fixed many bugs providing significantly higher stability and reliability with the clustering core. A majority of the features and bug fixes were driven by the intense requirements coming out of the Telco grade application server from Project Sailfin (Sun GlassFish Communications Server) and Project GlassFish (Sun GlassFish Enterprise Server). 

Some of the highlights of this release are :

  • New event notification signal for JoinedAndReady members - applications using Shoal can call an API to report to other members that at the application level, the member is ready to begin operations - this distinguishes the member joining the group from the actual readiness of the application to start operations. 
  • New event notification signal for Group Leader changes - anytime a group leader leaves or fails, another group leader is selected and this signal allows Shoal GMS clients to be notified of this change to take any remedial actions. 
  • New health states Ready and AliveAndReady in the HealthMonitor member lifecycle state transitions to make it more closer to the finite state machine
  • Introduce capability to distinguish between group startup and individual instance startup in JOIN and JOINEDANDREADY notifications. Applications may benefit knowing whether only a single GMS member is starting vs all GMS members of the GROUP are starting at once.
  • Support for notifying failure within a specific threshold time when the failure is due to a network issue or a hardware end point failure. Blocking TCP health check connections would timeout in (default) 10 secs allowing for quicker detection of failure compared to default system settings for TCP Retransmission timeouts.
  • A new GMS Watchdog Failure Notification API to be used by external service management frameworks (i.e. like GlassFish NodeAgent) - This allows external monitoring processes to notify GMS when these external process detects a member process failure faster than GMS heartbeat based detection can assign failures. This feature allows for faster failure detection notifications than the heartbeat based unreachability algorithm can determine failure. The feature was driven by the fact that the GlassFish Node Agent would detect a member process loss faster than Shoal could detect through its heartbeats and restart the failed process, resulting in no failure notifications from Shoal GMS to its clients.  Full write up at document. Glassfish Issue 8308

This version of Shoal is already integrated into GlassFish v2.1.1 and Sailfin v2 both of which are upcoming releases slated for October 2009 end.  

Details of the release announcement are here :

https://shoal.dev.java.net/servlets/NewsItemView?newsItemID=7645

You can download Shoal 1.1 binaries and sources with Javadocs here : https://shoal.dev.java.net/downloadsindex.html

As always, we owe it to you all in the community and thank you for all the feedback and issues you have raised to help us improve. 

Thanks very much and hope to see your feedback continuing !

http://blogs.sun.com/shreedhar/date/20090908 Tuesday September 08, 2009

Sun GlassFish Communications Server (Sailfin) adds High Availability Feature

Project Sailfin is building version 2.0 of the JSR 289 compliant application server. The Sailfin 2.0 release also known as Sun GlassFish Communications Server 2.0 will have a notable new feature with the addition of Sip Session Replication component. Sailfin 2.0 will provide High Availability of Sip artifacts providing resilience and availability of conversational state to Telco deployments.  Sailfin 2.0 is targeted for release around end of October/early November 2009. 

High availability through Sip Session Replication component (aka SSR component) allows for replication of SIP artifacts such as SIP Application Sessions, SIP Sessions, Timers, and Dialog Fragments in addition to Converged Sessions. Combined with existing GlassFish replication support for HTTP sessions, deployments can now be highly available covering both SIP protocol-only applications  and converged (SIP and HTTP ) applications.  To support the large scale load that can typically expected with Telco applications, the HA team employed a dynamic replica selection algorithm for each SIP artifact based on a consistent hashing algorithm thus obviating the need for buddy based replication where one would need to react to cluster shape changes and re-partner with another instance when a failure occurs - an expensive operation during high load conditions.   (see this blog entry for more details )

The SSR component along with all of Sailfin is undergoing intensive quality testing including 24x7 longevity, scalability, reliability and fault tolerance testing at this time and we are making progress every day. 

Turning on SSR in Sailfin 2.0 builds is extremely easy similar to how it is with GlassFish. You only need to deploy your SIP (JSR 289 compliant) or Converged Application with the availability-enabled option checked in the Admin GUI console or use the --availabilityenabled=true switch with the asadmin deploy command when deploy your SIP Archive sar file. 

Here's your call to action : Go ahead and download the latest promoted build of Sailfin v2, deploy your SAR archive with availablity-enabled set to true (SSR enabled) and provide us feedback. 

http://blogs.sun.com/shreedhar/date/20090621 Sunday June 21, 2009

GlassFish Clustering: Meaning and impact of configuring attributes of group-management-service element ?

Based on a query from one of our field colleagues, I added an FAQ entry on the meaning of the group-management-service element attributes  and impact of changing the default values as this is not yet covered by our official documentation (it will be updated with this information soon).

These configurational attributes determine Shoal GMS's behavior with respect to Discovery and Health Monitoring of cluster instances in a GlassFish cluster. It is very useful and important to understand these underpinnings of GlassFish's runtime clustering engine.

Here's the FAQ entry :

http://wiki.glassfish.java.net/Wiki.jsp?page=FaqShoalGMSAttributesInDomainXML

http://blogs.sun.com/shreedhar/date/20090210 Tuesday February 10, 2009

Performance Monitor enters Sun's GlassFish offerings

Sun today announced an array of commercial offerings based around the successful open source GlassFish project's application server. As part of these offerings is an enterprise management enabler tool aptly called Enterprise Manager :)

The Enterprise Manager is a collection of utilities designed to enhance your production deployment experience with Sun GlassFish Enterprise Server v2.1

The Enterprise Manager comprises of three components :

  • Performance Advisor
  • SNMP Monitoring support
  • Performance Monitor

The Enterprise Manager is included when you purchase a support subscription for Sun GlassFish Enterprise Server v2.1. For more details on the Enterprise Manager look here.  For more details on the Sun GlassFish Portfolio subscription plans, look here.

Of the above Enterprise Manager components, the Performance Advisor, and SNMP Monitoring support components are covered in a few other blogs. In this entry, I'll introduce you to the Performance Monitor.

The Performance Monitor is a closed source product from Sun built on top of VisualVM 1.1, and Netbeans 6.5 Platform. It is a  monitoring tool that provides dynamic visualization of GlassFish Server as it runs your applications.

Some of its key features include :

  • Monitoring local and remote Java processes
  • Trendline representation through charts for JVM monitoring artifacts such as Heap, CPU utilization, threads, classes, etc much like JConsole.
  • Data collection, processing and charting for GlassFish monitoring artifacts. There are extensive charts that leverage the GlassFish JMX based APIs and provide views into monitoring the health of your GlassFish deployment. 

The Performance Monitor is designed with easy-to-use features including:

  • Easy connectivity
    • Local or remote GlassFish servers    
    • Choice of SSL/TLS based secure, or plain JMX connections
  • Logical fine-grained views of GlassFish servers, clusters, node agents, deployed artifacts and services
  • Embellishments such as
    • tool tips explaining what the chart is about and current numbers,
    • ability to hide certain chart lines from a chart,
    • hide/unhide charts from the page view
    • drag top level tab to the side or bottom of page for a lateral or stacked view of the charts.
  • Detailed charts covering telemetry data for common, critical services and resources in production systems based on feedback from existing customers on the need for charting these monitoring artifacts
    • these include Http Services including per listener views, Web services, Pools such as thread pools, JDBC and other connection pool statistics, etc.

Here are some screenshots for your reference :

A collective view of a few web tier monitoring data:   

A view of the Http Service graphs :

Perf Monitor Http Listener View

A View of the Node Agent Page with status of instances the Node Agent is managing:

Perf Monitor Node Agent View

The Performance Monitor tool is immensely helpful in diagnosing problems before they turn into production bottlenecks and show stoppers. We hope that this offering along with GlassFish support subscription will help our customers be successful with their GlassFish deployments.

http://blogs.sun.com/shreedhar/date/20081024 Friday October 24, 2008

New Shoal Update : Shoal 1.1 bits updated to promoted build 10212008

Shoal 1.1 bits on the Shoal download site have been updated to reflect the promoted build dated 10/21/2008.  We are getting close to releasing Shoal 1.1 sometime in late November.

Get the latest promoted build here.

We have also added a buildable Source and Javadocs zip distribution corresponding to this promoted build on the download page based on a community user request.

A number of fixes went into Shoal during this time (from the prior promoted build of 08202008). Read the announcement here for changes that went in.

Project Shoal benefited not only from the Shoal user community feedback but also the intensive testing that is ongoing for the upcoming Sailfin v1 release in December. As a Telco appserver, Sailfin provides the ideal testing ground for intensive clustering features. Truly where the rubber hits the road.

Thanks very much to Sheetal, Joseph Fialli, Mohamed Abdelaziz, Bongjae Chang, Sailfin and GlassFish Quality Engineers Kazem, Sony and Varun, and most of all the Shoal community members.

As always, we value your feedback so please do continue sending us feedback to help improve Shoal and to address your needs with Shoal clustering. 


http://blogs.sun.com/shreedhar/date/20081021 Tuesday October 21, 2008

Economic woes resulting in slashed tech budgets? Sun's GlassFish+MySQL makes perfect sense

With signs of a global economic turmoil underway, the financial system is under severe stress with credits vanishing, and Government Departments, small and medium businesses, and large corporations are faced with potential budget cuts for technology spending. Case in point : http://www.msnbc.msn.com/id/27103082/

With Sun's open source "stack" and cost-effective support subscriptions, affected sectors of the economy can take advantage of standards based, high quality, open source software with the low cost support services from Sun. This is a good time to consider moving away from expensive proprietary software stacks to Sun's open source software.

Take the case of Sun's commercially supported GlassFish + MySQL offering, both rock solid products that come with features only available in high cost closed-source products. This offering provides you the opportunity to seamlessly move from expensive licenses to an annual support subscription based offering that will reduce your cost of ownership. For example, Unlimited deployment of GlassFish + MySQL starts at $65,000. GlassFish + MySQL constitutes a very compelling offering that will help you justify the move both on features and costs.

Contact Sun to find out how you can save significantly with this offering.

For more on the value proposition, read Arun's blog entry here.

http://blogs.sun.com/shreedhar/date/20080826 Tuesday August 26, 2008

Shoal 1.1 bits updated for a new promoted build

The Shoal team has been busy addressing the needs of major projects such as Sailfin for a while now. It had been a while since we updated our promoted build for download with the latest and greatest fixes.

We have now promoted a new build for Shoal 1.1 and download bits are available here : https://shoal.dev.java.net/downloadsindex.html

The announcement has more details on what went into this promoted build : 08202008 Promoted Build Announcement

We would welcome your feedback, issue reports and enhancement requests to make Shoal more useful for you.

Do send us your feedback at the Shoal user mailing list.

http://blogs.sun.com/shreedhar/date/20080603 Tuesday June 03, 2008

Eclipse IDE GlassFish Plugin : Give us your feedback

Did you know that GlassFish community provides an Eclipse plugin for developers using Eclipse as their primary development tool ?

The plugin has been developed for a while providing basic integration with GlassFish. We now would like to make this integration more effective and useful to you to enhance your productivity when using GlassFish.


We would like to hear from developers on your experience (both positive and constructive) so that we can prioritize on making improvements. Our goal is to make life a lot easier for developers when using Eclipse with GlassFish. Community feedback is the best way we can learn how to make improvements. Of course, we also very much welcome any contributions from you to make improvements.


The plugin is available at the GlassFish Plugins Java.net Project Page.
Please send us your feedback and/or contributions at either the GlassFish users mailing list or at the GlassFish Plugins users mailing list.

http://blogs.sun.com/shreedhar/date/20080509 Friday May 09, 2008

JavaOne2008: Shoal Mini Talk at Java.Net Community Corner

At the JavaOne pavilion, Java.net had set up a community corner where mini talks were given by various interested project leads. I gave a short talk on Introducing Shoal clustering framework. 

The audience was *very* small  but I had quality questions from one very interested participant who wanted to use Shoal as a Distributed Test Harness engine. Very unique use case I thought and yes, Shoal would fit that bill.

Here's the short slide deck of the mini talk: Shoal Mini Talk JavaOne 2008

 

JavaOne 08: JavaU Bonus course on GlassFish Application Server

As part of JavaU courses offered this JavaOne, a GlassFish Application Server bonus training course was offered for free as part of a multi course deal. 

Many attended this course on Monday, May 05, 08. Arun Gupta and I  presented at this course. We are pleasantly surprised by the turn out of around 180 given that it was in the evening (6 - 9 pm), 3 hours long, and JavaOne had not yet started! :) That was surely a boost of positive energy for me.

The most interesting part of the course for me was the number of questions from the greatly interactive audience right from the get go. We answered most of the questions, even picked up an NB issue from an audience member in the web services area, and the feedback we received was mostly that the course was very helpful for the audience to understand how the product features and capabilities stacked up with their experience with other app servers such as WebLogic and JBoss.

We finished around 9.45 pm. :)

Since the printed slide deck was only a portion of the total at the time it went to print, I promised the audience that I would make this available through my blog.

So here it is. JavaU Bonus Course on GlassFish Application Server Java One 2008

So for those who find the material useful, please download GlassFish and let us know what you think. Send us your comments and questions through the GlassFish User mailing list.  


http://blogs.sun.com/shreedhar/date/20080418 Friday April 18, 2008

New Shoal Clustering Download Page

With a view to helping our users choose the right download, we have organized the Shoal downloads page on the lines of the GlassFish download page. The new download page is located here : https://shoal.dev.java.net/downloadsindex.html

This should make it easier for users to find Shoal bits and use them in their clustering applications.We are seeing increasing interest from users with different types of questions in the Shoal user mailing list ranging from newbie questions to very advanced ones. Keep'em coming folks.

We will be posting new promoted downloads  and releases through this download page. Let us know if you need specific improvements to be made.

 

http://blogs.sun.com/shreedhar/date/20080312 Wednesday March 12, 2008

GlassFish High Availability Session at Sun Tech Days Hyderabad

At the recent Sun Tech Days event at Hyderabad, I gave a talk covering GlassFish's High Availability features, particularly the In-Memory Replication support, as part of GlassFish Day (Feb 29th). 

I had the privilege of talking to a full house of around 500 people. The session covered introduction to HA, how easy it is to create, and configure a cluster of instances, and to configure the application for enabling in-memory replication based availability. The session elicited very good questions ranging from the basics to involved ones in the area of sizing the heap to sticky sessions support. I spent an hour after the session outside the hall answering questions posed by interested folks from several companies.

Many attendees wanted to get a copy of the slide deck. Look here for it.

Needless to say, we would very much appreciate any feedback or questions on GlassFish's High Availability. Please send these to us at the GlassFish user mailing alias.


http://blogs.sun.com/shreedhar/date/20080311 Tuesday March 11, 2008

Notes from GlassFish Booth at Sun Tech Days, Hyderabad '08

I am back after a two week visit to India. I took the week off last week to be with my folks and to unwind and recharge in my home city, Mumbai.

The week before that was an incredible one for me as I saw the hi tech boom in India first hand. The swelling and enthusiastic crowds at the Sun Tech Days event at Hyderabad on Feb 27, 28 and 29 was very thrilling to experience to say the least. The event was highly successful in attracting budding youngsters and experienced professionals alike. I am told that the content of the event was very fulfilling for attendees.

Some notes of interest :

  • Each session had between 1000 and 1500 attendees. Community Day was on Feb 29th with tracks such as GlassFish, OpenSolaris, Netbeans, etc. and each track had an expected 450 people based on hall capacity. In the GlassFish track, we saw that increase to around 500.
  • At the GlassFish booth, I met quite a lot of visitors many of whom had either vaguely heard about GlassFish or never heard of it. About a 3rd of people were ones who work with an Application Server in a professional capacity. Others were developers learning the ropes at work or students who were excited to see an open source appserver like GlassFish.
  • GlassFish is relatively new here - people have heard about it and are now beginning to try it out. So this was a huge opportunity to spread the word about GlassFish as a compelling open source project delivering a fully Java EE 5 compliant application server packing a whole bunch of features that commercial vendors usually provide for the cost of an expensive license and services attachment.
  • Common theme of questions from professionals were on availability of migration tools to move from BEA, and Websphere. They are looking for detailed documentation and engineering services support for migration to enable them to recommend GF in their orgs and in their client orgs. We are working on this on multiple fronts and through the migrate2glassfish project.
  • Many professionals I talked to had tried JBoss before but due to their employer or customer platform preference, they were on WebSphere or WebLogic.
    They were impressed with GlassFish's Administration ease of use and GlassFish's published SpecJ numbers.
  • Companies from which people came to booth read like the who's who of the hitech majors' list such as Wipro, Satyam, Infosys, Cap Gemini, etc.
  • Most users were still developing on J2EE 1.4. Many are beginning to move to Java EE 5.
  • Many developers I met were on Eclipse. I demoed GlassFish and NetBeans 6.0 when possible at the booth and many went back saying they will surely try NB with GF.
Based on reactions and questions that came from people at the booth, here are the things that I thought attracted many of these folks to think of converting from their existing middleware to GlassFish : 

 

  • GlassFish's open source status
  • Free for development and deployment
  • No license fee for product purchase
  • Strong community support
  • Sun's backing and commercial support offering (the concept of indemnification was new for some but many understood impact for their customers abroad)
  • Administration ease of use
  • Market leading product differentiators such as Grizzly, Virtual server support in Web tier, Web Services support, Easy cluster creation and management, Call Flow Monitoring, High Availability Options through In-memory replication and HADB, Inclusion of a quality MQ product, Netbeans and Eclipse IDE integration, etc.

Many of the professionals working with other application servers said the Administration, Clustering, High Availability, Loadbalancer support, Webservices support, migration support, and IDE integration would motivate them to try out or switch to GlassFish. 

Looking forward to hearing from these new GlassFish users at our user community mailing list.

 

 

 


Valid HTML! Valid CSS!

This is a personal weblog, I do not speak for my employer.