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 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.