Oracle® Business Intelligence Enterprise Edition Deployment Guide > Clustering, Load Balancing, and Failover in Oracle Business Intelligence >
About the Cluster-Aware Cache
The Oracle BI Server maintains a local, disk-based cache of query result sets called the query cache. The query cache allows a BI Server to potentially satisfy many query requests without accessing back-end databases. This reduction in communication costs can dramatically decrease query response time. Query cache entries become obsolete as updates occur on the back-end databases and must be purged periodically. For more information on the query cache, refer to the Oracle Business Intelligence Server Administration Guide.
In a clustered environment, Oracle BI Servers can be configured to access a shared cache that is referred to as the cluster-aware cache. This cluster-aware cache, residing on a shared file system storage device, stores seeding and purging events as well as the result sets associated with the seeding events. The seeding and purging events are sorted by time and stored on the shared storage as a logical event queue. Individual BI Server nodes push to and pull from the logical event queue.
Figure 2. Cluster-Aware Caching
Figure 2 shows three BI Server nodes sharing a global cache. The cluster-aware cache stores seeding or purging events held in a logical event queue. The arrows from Node 2 and Node 3 to the shared cache show BI Server Node 2 pushing a seeding event to the queue and BI Server Node 3 pushing a purging event to the queue. The arrows from the shared storage to each BI Server node show each node pulling from the common location. This occurs on a periodic basis and allows participating BI Server nodes to obtain updates to the logical event queue made by other BI Servers.
A BI Server node processes a seeding or purging event locally first in its caching system. It then pushes the event to the global cache on the shared storage. During the push event, the active BI Server node locks the logical event queue on the shared storage and then pushes in the seeding or purging event. In the case of conflict between seeding and purging, for example, one node wants to seed a query and another node wants to purge the same query, the event that comes in last will win.
The logical event queue in the global cache on the shared storage is composed of seeding and purging events from individual BI Server nodes. The queue is sorted according to the timestamp of the events. Hence, clocks on all BI Server nodes participating in cluster must be synchronized.
Each BI Server node polls the global cache on a periodic basis for new cache entries. This polling frequency is configurable. A snapshot of the queued logical events on the shared storage are pulled back to the node and a local logical event queue is constructed and then processed.
NOTE: The process of populating or purging seeded caches across all BI Server nodes that participate in the cluster does not occur in real time, and the elapse of the process is affected by multiple factors, such as the predefined polling interval, network bandwidth, and CPU loads.
As the query cache result set tends to get large, network bandwidth may pose a constraint. Therefore, the following must be chosen carefully:
- The set of cache that qualify for seeded cache
- The time interval for BI nodes to pick up seeded caches from shared storage (to avoid network congestion)
The cluster-aware cache parameters are configured in the NQSConfig.INI file for each BI Server node that participate in the cluster. For more information about configuring these parameters, see Setting Parameters in the NQClusterConfig.INI File.
A seeding or purging procedure is submitted to a specific BI Server node, as described in the chapter on query caching in the Oracle Business Intelligence Server Administration Guide. If that BI Server is a node in a BI cluster and the global cache parameters have been defined in BI Server configuration files, the seeding or purging events are propagated across all BI Server nodes that participate in the same clustered environment.