InetSoft's Report Engine - Performance and Scalability

InetSoft provides a high-performance, scalable report engine for production reports for ISVs, OEMs, SaaS providers, and enterprises. Lightweight, yet robust, with an extensible Javascript API, InetSoft's report engine has been embedded in hundreds of applications all over the world.

A reporting engine must perform well through constant use and scale well through growing user populations. Measuring performance is often a difficult task that involves many variables and methodologies, the efficacy and purpose of which are subjective. When measuring the performance of a transactional system such as InetSoft's Style Report, the two measures that are most apparent to end-users are total throughput and response time.

Total throughput is measured by calculating the ratio of the number of report pages produced by the system to the number of seconds required to produce these pages. Response time is measured by calculating the difference between the request time and the time that the first page of the report was returned.

This article examines performance problems that plague typical reporting systems and discusses how Style Report provides solutions that boost throughput and lower response time.

executive dashboard
best icon
Read how InetSoft was rated as a leader for ease of use in Gleanster's agile BI report.

Data Streaming & Demand Paging Problem:

The response time of a reporting system needs to be reduced as much as possible even when the reports that the reporting server is producing are very large.

The Style Report Solution

A report server’s response time is measured by recording the time difference between the initial request for a report and when the first page is returned to the end-user. Most other reporting tools retrieve the data needed to create the report, generate the report on the server, and then send either part or all of the finished report back to the requester. This flow can result in very long wait times when a report is larger than a few pages. At best, the wait time would vary linearly with respect to the number of pages in the report.

Style Report takes a unique approach to creating reports by using a three stage pipeline to retrieve data, process report pages, and send them back to the user. The three stages are: data retrieval, report generation, and report page spooling.

When a report is executed, Style Report retrieves data from the data layer using “data streaming.” Data streaming is the process where Style Report retrieves only a part of the entire data set at one time and then processes the report a few pages at a time (the number of pages is configurable). This means that the first page of the report will be sent back to the end-user as soon as data streaming starts. This limit can be set by the system administrator to best fit the deployment environment.

After report pages are generated, they can be sent the end-user using demand paging. This mechanism provides users with a single page of a report at one time. The user can navigate through the report using the report navigation toolbar located at the top of the report. The buttons on this toolbar provide functionality such as: go to first page; go to last page; go to next page; go to previous page; and go to a specific page.

When data streaming and demand paging are used together, the end-user can enjoy a significant boost in report system performance. The wait time for the first and each subsequent report page will be reduced considerably and the report transfer will be much faster than if the entire report were returned back to the user at one time.

best icon
Read how InetSoft was rated as a leader for ease of use in Gleanster's agile BI report.

Clustering Problem:

As a user population grows, the reporting system should scale to support this population without a noticeable decrease in performance. Other reporting tools do not offer simple scaling solutions and must be configured manually.

The Style Report Solution

Style Report tackles this problem by offering a clustering and load balancing system that provides easy scalability to support any number of end-users. A single load balancer (running a lightweight Style Report process) controls the flow of report requests to each node in the cluster. Each node supports user requests as they are sent from the load balancer. A session is created between the end-user and the node and all reporting actions are distributed through the load balancer.

The load balancer will also maintain a list of active reporting nodes by requesting a heartbeat signal at a constant interval. When the heartbeat is not received, the node’s workload can be sent to another reporting node to ensure smooth recovery.

The data space is any file system or database that can hold the configuration information and report templates for each reporting server. This centralized repository of configuration and report files allows report developers to quickly publish reports to all reporting nodes without having to deploy to each individually, and administrators to quickly deploy another reporting node to support a growing user population.

Performance Tuning Problem:

The demands on each reporting system are unique. Report system administrators need the ability to tune the reporting server to fit their particular needs and raise system performance based on their own specifications.

The Style Report Solution

When deploying any software application, the chosen configuration options can have a significant impact on how the application performs and supports the needs of its end-users. Style Report provides the system administrator with a number of configuration options that can be used to tune the system performance to meet the specific needs of that deployment. A configurable cache system controls how report data and generated report pages are stored on the report server. This configurable cache can drastically reduce the wait time experienced by end-users by storing recently generated reports and sending this cached image back to end-users. The cache setting can be set system wide and on each report.

Another example of a configurable performance option that Style Report provides is server optimization. This setting allows the system administrator to set the report server optimization to CPU or memory utilization. This will control how system memory and CPU cycles are utilized to boost that particular resource. This feature can boost performance depending on the size of reports being requested by end-users and the number of end-users utilizing the system concurrently.

There are other configuration options that allow the administrator to specify the session timeout, number of concurrent request threads, data streaming settings, and more. When set to fit the deployment environment, these system options maximize the Style Report system performance and allow system administrators to modify the behavior of their Style Report system as needed.

Report Engine Summary

InetSoft's many years of development (since 1996) have contributed to Style Report offering a world-class high performance report engine. Key to this capability are the tools and configuration options that enable fine tuning for each custom deployment scenario. By providing a complete set of performance specific options, Style Report is a completely configurable reporting solution. The Style Report system administrator has the flexibility to control almost every function of the server to modify its response and behavior. By utilizing the clustering and load balancing capabilities, the system can also be scaled without disturbing existing end-users. Style Report can be configured right out of the box to fit any deployment environment and any user population.

demo icon
View a 6-minute Flash demo of InetSoft's easy, agile, and robust BI software.

Copyright © 2014, InetSoft Technology Corp.