Home > Our Stories

How to successfully improve business application performances

Written By: David Halim

In general, Businesses face the one main issue during IT system implementation, Business Application Performance.

How to solve the pertaining issue then?

In web-based business application, its performance is vital to the overall satisfaction of users' experience which translates to the success of the project. So, no matter how amazing the features of the application are; if the application has slow performances, the users will not be satisfied and the application will end up unused. It will then be a failed project.

In one of our projects, we collaborated with our customers to achieve a scalable, fast and secured web-based business application with millions records of data.

So, how do our Klickers team achieve that ideal world?

The project is Java J2EE-powered user portal with MS SQL Server as its database, where users can log in and retrieve the data based on certain parameters. Statistically, there are approx. 50 fields in a table and there are approximately 20 million records which translated to approximately 50+ GB in the physical drive. The said web-based business application needs to be available 356 x 24 x 7.

To add on to the complexity, the retrieval is not only querying against 1 table but it involves joining at least 3 tables in the database.

Based on the customers' requirements, we came out with an application prototype within a month. The prototype was a hit with the customer and thus they gave us the green light to proceed with the full implementation.

In the prototype, it took an average of 6 seconds for the business application to respond back to users. However, the customer would like to cut the response time to 3 seconds.

Our first step was to dig deep within the Java J2EE aspect to improve the business application performances by ensuring the Java objects to be diligently nullified; by making sure that all database connections are closed every time it's being used and by improving the Java Collection usages.

The strategy that we adopted here was to actually measure the response time for every single request made by the users. Following that, we then took the top 20 which are the slowest and then conducted full investigations on each request. This step is taken to fully understand the business logic behind the codes to gain reassurance that all logic is applied in its most effective manner. On top of that, we introduced the clustering and load-balancing strategies to scale the application so that it runs without any downtime.

Next, we moved on to the database layer. It is crucial to involve the customer at this stage, as understanding how the data was structured is imminent and the customer are the one who know what the data is all about. Even though our team has gathered all necessary requirements for project implementation; we felt the necessity to arrange another discussion session with the customers to understand their system usage behaviour. The team researched on how the customers want the system to behave in multiple scenarios, what parameters are needed for each scenario and what the expected results are in greater details. This has greatly helped our team to decide on the best recommendations used to improve the business application performance, such as what type of indexes to be applied, which columns of tables the indexes to be applied to, what the most suitable attributes of indexes are and what the most suitable strategy of tables locking is.

In the end, we successfully brought down the business application response rate to an average of 2-3 seconds.

This exercise has taught us a very important lesson where server upgrade is not the only go-to solution to improve application performances. Finding out the core problems coupled with a thorough investigation to identify the bottleneck worked wonders as well. And, this will help the customer to optimize their application performances for the long run with minimal investment.

Klickers team has gotten a very positive feedback on the whole project implementation and the customer applauded our unique approaches in which we involved them as much as possible during project implementation to ease the change management.