Caching in very important term in MicroStratetgy. It helps us to optimize the performance of reports/objects/elements and user response time. Let us start to define the cache, where is it stores and how it helps to optimize the performance.
What is Caching:
Caching is the usually a recently used elements, objects, or report results for the purpose of improving the query response time in the further requests. Caching enables user to retrieve results from stored files/memory rather that executing queries against a database.
There are four types of caches in MicroStrategy.
1. Element Caches : Elements of frequently browsed attributes are stored in the memory on the Intelligent Server and the MicroStrategy Desktop machine for faster retrievals.
2. Object Caches : Definition of the frequently viewed metadata objects are stored on the I-Server and the MicroStrategy Desktop machines for faster retrieval.
3. Report Caches : Results of previously executed reports are stored in the memory or disks on the I-Server machine, so that they can be retrieved quickly, rather than re-executing the request against the warehouse database.
4. Document Caches : Results of the report services Document are stored in the memory or disk on the I-Server machine for faster retrieval.
Where do Caches Reside :
The table summarizes them Caches Types and Location where it stores
Cache
Type |
Client
Memory |
Server
Memory |
Server
Disk |
Element
|
Yes
|
Yes
| |
Object
|
Yes
|
Yes
| |
Report
|
Yes
|
Yes
| |
Document
|
Yes
|
Yes
|
In Two Tier mode: Object and Element caches exist on the Client Machine for each Project that the Client accesses.
In three tier mode: Object, Element, Report and Document caches exists for each Project on the I-Server machine and Object and Element Caches exists on the Client Machines too.
Note : Caches are Created and stored at the Project Level, Therefore they are not shared across Projects.
Element Caches: An Element Caches is a recently used attribute element list stored in the memory of MicroStrategy Desktop and I-Server machines.
The example below illustrated is how element caches work.
A MicroStrategy Developer User double-Clicks the Customer Attribute in the data Explorer in order to display a list of Customers.
1. If no element caches exist on the Developer or the I sever memory, then element request is send to the warehouse for processing.The list of Customers retrieved from the warehouse is then stored as an Element Cache in the memory of the I-Server machine, and the Developer machine of the user who submitted the request.
2. If the same user requests the same attribute elements, the element cache on the local Developer machine is used to satisfy that request.
3. If a different user requests the attribute elements, the Element Cache on the I-Server Memory is used to satisfy that request.
Note: When a user requests elements, Element cache ID’s are matched to the element requests in order to determine if a cache can be used to satisfy the request.
Object Caches :
Object Caches is a recently used objects definition stored in the memory of the Developer and I-Server. We can create object caches for both application and schema objects.
The example below illustrates how object caches work:
A user opens the report editor.,the collection of attributes, metrics and other user objects are displayed in the report editor that makeup the report definition.
1. If no object cache for the report exists in the memory of the Developer or I Serer machine, the object request is sent to the metadata for processing.The report object definition is retrieved from metadata and displayed to the user in the report editor.
2. An object cache is created in the memory of the I-Server and Developer machines.If the same user requests the same object, the object cache on the local Developer machine satisfies the request.
3. If a different user requests the same report the object cache in the I-Server memory satisfies that request.
Report Caches:
The I-Server provides report caching functionality that reduce the number of user requests that query the data warehouse. When an user initially runs the report the I-Server caches the result set. Subsequently, when a different user runs the same report again the I-Server can retrieve the result set from the cache rather than having to query the data warehouse again.
The example below illustrates how report caches work.
1. A user runs a report.the report runs against the data warehouse.The I-Server caches the result set and returns the result to the user.
2. A second user subsequently runs the same report. The I-Server searches the report Caches.The I-Server checks the following variables.
a) Are the report and any objects it contain unchanged since the cache is created.
b)For the prompted reports did the second user choose the same prompt answers as the first user.
c) Based on the cache property and security settings, is the second user allowed to access the first user’s cache.
d )Is the cache still active i.e. Is it not expired
If the answer to any of the variables is no, the cache is not valid, and the I-Server queries the data-warehouse. If the answer to all the variables is Yes the cache is valid and the I-Server retrieves the result set from cache
Document Caching :
Report service document can be cached to improve the system performance and maintain a low memory usage of the I-Server. Document caches are created on the run time or on schedule and behave in a similar to the report caches. At run time the document caches are created only in MSTR Web.
For example when you execute a prompted document in MSTR-Web, an XML document cache is generated. When you re-prompt the document, a new XML cache is generated with the data reflecting the new prompt answers.
You can configure the Document Caching properties at two different levels.
1. Project Level
2. Document Level.
Hope this helps you to get clear understanding of how caching create and works in MicroStrategy .
Happy learning !!!
Please provide your valuable comments if case I have missed anything.
Comments