Telerik Reporting uses a dedicated cache management system to store and cache rendered pages and some large resources such as images on external storage. This cache management system is utilized by the Reporting Engine that processes and renders the reports.
The cache settings mentioned in this article are not obligatory, and they do not apply to the HTML5 Report Viewer or its Angular, WebForms, MVC, and other wrappers. Details about the Cache Storage of the Reporting REST Service that works with the HTML5 Report Viewer are available in Report Viewer and Reporting REST services.
The report viewers with embedded Reporting Engine use the cache management system automatically as shown in the following illustration:
Here is the list of Report Viewers that work with embedded Reporting Engine:
- WinForms ReportViewer - settings must be applied in the application configuration file. By default the viewer keeps the report state in memory;
- WPF ReportViewer - settings must be applied in the application configuration file. By default the viewer keeps the report state in memory;
- Silverlight ReportViewer (not supported since R1 2023 SP1) - settings must be applied in the Reporting WCF service application configuration file. By default the viewer keeps the report state in memory;
- ASP.NET WebForms ReportViewer (obsolete web viewer) - settings must be applied in the application configuration file. By default the viewer keeps the report state in the ASP.NET Session;
The Reporting REST Service that serves report documents to the HTML5-based Report Viewers hosts a Reporting Engine that also utilizes the cache management system while rendering the report documents. After finishing with the rendering, the REST Service moves the prepared document or document pages and all the needed resources, for example, the images for the HTML renderings to the REST Service Storage and releases the cache.
The utilization of the cache management system constitutes an important difference between the viewers working with embedded Reporting Engine and with Reporting REST Service. The former reuse the processing report, hence fetching and processing the data only once for a report, storing the necessary processing objects in the cache. The REST Service processes the report again with each new rendering.
Such cache management implementation offers the following key benefits:
- Reduced memory footprint – since the rendered pages and resources are cached on external storage rather than being kept in memory, the viewers can handle very large reports with thousands of pages and images without increasing the memory consumed by the application too much.
- Improved performance – the caching mechanism implemented by the cache management system can lead to improved performance of the viewers in certain scenarios.
Improved scalability – web farms can be configured to cache rendered reports on a dedicated database server. This allows subsequent requests to the same report to be served by different machines in the web farm leading to better load balancing. Only the database storage is shared between all machines in the farm, as shown in the following illustration: