Caching

Introduction to Caching in PowerOLAP^{®}

As a performance optimization, PowerOLAP^{®} uses the concept of caching within Cubes. Caching within PowerOLAP^{®} is the process of saving intermediate or calculated aggregates. This allows users to calculate aggregate values and then the next time either they or another user asks for that particular Aggregate, the value does not have to be computed from the source detail elements. The PowerOLAP^{®} application can simply access that Aggregate directly.

How does PowerOLAP^{®} do this and how does it decide what to Cache?

PowerOLAP^{®} uses a costing algorithm inside of the calculation engine. This costing algorithm determines how much effort or how much computation of time it takes to calculate an Aggregate. It does this by providing or assigning a cost weight to each calculation. The cost of an addition or a straight aggregation is a very small cost because it is simply adding two numbers together. The cost of performing a detail level formulated calculation can be much higher as it may need to do some complex logic and some complicated conditional checking.

PowerOLAP^{®} will roll up these values together and once this costing threshold is crossed, the values will be cached. By doing this, the next user who comes in and asks for that particular high level Aggregate point will simply be returned that point as opposed to all the computations (instead of computing or performing all the computations necessary to get to that particular intersection point of data being accessed).

Thus, users can take advantage of the fact that other users have cached certain values.

Please see the following topics: