GridCache Issues
GridCache is a repository on the Broker that is cached by Drivers and Engines (This is the GridCache Global mode). The Driver or Engine writes to the GridCache and then the Broker caches them automatically to the Server and propagates the changes so the file appears local to Drivers and Engines. When the cache is changed, the Manager sends invalidation messages in the heartbeat messages to the Engines and Drivers.
For more information about GridCache, see the GridServer Developer’s Guide.
Timeout Issues
Messages similar to the following are caused by timeouts accessing GridCache:
com.livecluster.util.threadpool.TimeoutException: Thread DefaultPool-91: sun.net.www.protocol.http.HttpURLConnection:http://chialseg45:8000/livecluster/gridcache/?query=1/
You can increase GridCache client read and write timeout at Admin > System Admin > Manager Configuration > Cache.
Eviction of Cache Entries
There is an eviction process which removes entries from the cache when they expire. A message similar to the following appears in logs:
Finer: [GridCache] Evicting stale entries from the cache
A Time To Live value is configured in the cache schema; the default is -1, meaning entries never expire. In the case of a Global Cache, if an entry has expired, it is removed, and hence removed from all of the locally cached copies. Note that when a schema changes, the changes only apply to regions created after that schema change. The changes do not affect existing regions using the schema.
In addition, there is also a Keep Alive time associated with the cache, set in the cache schema. This specifies how long the locally cached copies of the region remain on the client once there are no longer any local references to the cache. References are decremented when you call close() on the cache or the Cache reference is garbage collected. The default is 60 seconds.
Client Runs Out of GridCache Space
If the in-memory cache size is exceeded, information is pushed to disk (except for .NET Drivers or CPP Drivers, which do not support disk-based cache.) If the disk cache size is exceeded, older entries from the disk cache are removed to make way for new entries.
For example, if the Engine has run out of space for the GridCache messages similar to the following appear:
Fine: [GridCache] Pushing GridCacheRegion::trade_10985 out of the cache
To prevent this, you can increase the cache sizes. For Engines, the Disk Cache Size and Memory Cache Size settings are in the Engine Configuration. For Drivers, they are the DSCacheMaxMemInMB and DSCacheMaxDiskInMB properties in the driver.properties file.