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 Intelligence, 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 Intelligence provides solutions that boost throughput and lower response time.
Read how InetSoft was rated #1 for user adoption in G2 Crowd's user survey-based index.
The Style Intelligence 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 Intelligence 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 Intelligence retrieves data from the data layer using “data streaming.” Data streaming is the process where Style Intelligence 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.
The Style Intelligence Solution
Style Intelligence 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 Intelligence 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.
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.
The Style Intelligence 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 Intelligence 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 Intelligence 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 Intelligence system performance and allow system administrators to modify the behavior of their Style Intelligence system as needed.
InetSoft's many years of development (since 1996) have contributed to Style Intelligence 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 Intelligence is a completely configurable reporting solution. The Style Intelligence 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 Intelligence can be configured right out of the box to fit any deployment environment and any user population.