Configuration Guide

     Previous  Next    Open TOC in new window    View as PDF - New Window  Get Adobe Reader - New Window
Content starts here

Enabling the Engine Tier Cache

The following sections describe how to enable the engine tier cache for improved performance with SIP-aware load balancers:

 


Overview of Engine Tier Caching

As described in Overview of the WebLogic SIP Server Architecture, in the default WebLogic SIP Server configuration the engine tier cluster is stateless. A separate data tier cluster manages call state data in one or more partitions, and engine tier servers fetch and write data in the data tier as necessary. Engines can write call state data to multiple replicas in each partition to provide automatic failover should a data tier replica going offline.

WebLogic SIP Server version 3.0 also provides the option for engine tier servers to cache a portion of the call state data locally, as well as in the data tier. When a local cache is used, an engine tier server first checks its local cache for existing call state data. If the cache contains the required data, and the local copy of the data is up-to-date (compared to the data tier copy), the engine locks the call state in the data tier but reads directly from its cache. This improves response time performance for the request, because the engine does not have to retrieve the call state data from a data tier server.

The engine tier cache stores only the call state data that has been most recently used by engine tier servers. Call state data is moved into an engine's local cache as necessary in order to respond to client requests or to refresh out-of-date data. If the cache is full when a new call state must be written to the cache, the least-recently accessed call state entry is first removed from the cache. The size of the engine tier cache is not configurable.

Using a local cache is most beneficial when a SIP-aware load balancer manages requests to the engine tier cluster. With a SIP-aware load balancer, all of the requests for an established call are directed to the same engine tier server, which improves the effectiveness of the cache. If you do not use a SIP-aware load balancer, the effectiveness of the cache is limited, because subsequent requests for the same call may be distributed to different engine tier severs (having different cache contents).

 


Configuring Engine Tier Caching

To enable partial caching of call state data in the engine tier, specify the engine-call-state-cache-enabled element in sipserver.xml:

<engine-call-state-cache-enabled>true</engine-call-state-cache-enabled>

Engine tier caching is disabled by default. When you enable the cache, the cache size is fixed at a maximum of 250 call states. The size of the engine tier cache is not configurable.

 


Monitoring and Tuning Cache Performance

SipPerformanceRuntime monitors the behavior of the engine tier cache. Table 7-1 describes the MBean attributes.

Table 7-1 SipPerformanceRuntime Attribute Summary
Attribute
Description
cacheRequests
Tracks the total number of requests for session data items.
cacheHits
This attribute is incremented each time a request for session data results in a version of that data being found in the engine tier server's local cache. Note that this counter is incremented even if the cached data is out-of-date and needs to be updated with data from the data tier.
cacheValidHits
This attribute is incremented each time a request for session data is fully satisfied by a cached version of the data.

When enabled, the size of the cache is fixed at 250 call states. Because the cache consumes memory, you may need to modify the JVM settings used to run engine tier servers to meet your performance goals. Cached call states are maintained in the tenured store of the garbage collector. Use the following strategies when tuning JVM parameters for engine tier nodes with caching enabled:


  Back to Top       Previous  Next