Pages

Wednesday, July 6, 2011

Tuning WebSphere Application Server Dynamic Cache Service (Dynacache) and Data Replication Service (DRS) for replication


If you want to improve the consistency & performance of your WebSphere Application Server DistributedMap replicated cache please follow these best practices

Dynacache Tuning
1. Change replication type of the replication domain to either NOT_SHARED or PUSH depending on your replication needs. NOT_SHARED scales better than PUSH because it only replicates invalidations not cache data.
2. Ensure that the API calls that are putting objects in the cache are NOT overriding the sharing type of the replication domain
3. Set the following as JVM custom properties or as properties on your servlet/object cache instance to reduce redundant DRS traffic, improve performance & force creation of cache instances
  • com.ibm.ws.cache.CacheConfig.filterLRUInvalidation = true
  • com.ibm.ws.cache.CacheConfig.filterTimeOutInvalidation = true   
  • com.ibm.ws.cache.CacheConfig.filterInactivityInvalidation= true                  * requires a relatively recent APAR. check with support
  • com.ibm.ws.cache.CacheConfig.ignoreValueInInvalidationEvent = true
  • com.ibm.ws.cache.CacheConfig.useServerClassLoader = true
  • com.ibm.ws.cache.CacheConfig.createCacheAtServerStartup = true            * since WAS v7
4. [Optional] In the PUSH replication mode to eliminate the bootstrap of cache data,  the application code that gets an instance of distributedMap should call distributedMap.setDRSBootstrap(false). Please note this will prevent the synchronization of cache instance across JVMs in the replication domain at server startup.

Data Replication Service (DRS) Tuning
Configure DRS to use its own threadpool     *default since 7.0.0.15

High Availability Manager (HAManager) & Data Consistency Services (DCS) Tuning 
http://www-01.ibm.com/support/docview.wss?uid=swg21251873

HAManager Protocol Versions
Bump up the lower level wire format (IBM_CS_WIRE_FORMAT_VERSION core group custom property) and the high availability manager (IBM_CS_HAM_PROTOCOL_VERSION core group custom property)  coregroup protocol versions to the latest one supported. See the following article in the Infocenter. New protocol versions are added to the product if new messages, or new algorithms are required to support new product features, or to improve core group performance. Please note that because the new messages, or new algorithm might not be compatible with the existing messages or algorithm, a new protocol might not be able to interoperate with the old version of the protocol.

Please also revisit my earlier FAQ  and technote on cache replication 
Please also read this olden goldie on Dynacache and DRS Best Practices.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.