Cache Sizing
Posted: Mon Mar 29, 2010 12:56 pm
I was wondering if someone can confirm exactly what the cache sizes are specifically around the ObjectCacheSizeLimit settings. Am I correct in assuming that"
1) The PersistentDatabase.ObjectCacheSizeLimit setting in the INI sets the memory used to cache the physical database in memory on the database server node. This is there to reduce the number of disk reads.
2) The JadeServer.ObjectCacheSizeLimit is used to cache the working set of objects being used by server applications or server execution methods.
3) The JadeClient.ObjectCacheSizeLimit is used to cache the working set of objects being used by the client nodes (app server's, or fat clients.)
I would assume that if a user requests an object, either the caches in 2 or 3 above are checked, then if the object is not found, the cache in 1 above is checked. If the object is still not found, then it is read from disk.
With that understanding, if the users are doing the majority of the work in a system (thin client) and there is only one application server, would the recommendation be to have a larger server cache (ie increase the setting in 1 above) or to have a large cache in the application server (3 above.)
If the cache specified in 1 above is larger than 3, I would assume that the any requests for an object from the application server would require the object to be send through TCP or shared memory to the application server, potentially resulting in more network / shared memory traffic. However if the cache in 3 is larger than the cache in 1, then the application server would have a larger cache hit rate, while any server applications or server execution methods would have a lower cache hit rate as the server and persistent database caches (2,3) would contain less objects.
Thanks
Torrie
1) The PersistentDatabase.ObjectCacheSizeLimit setting in the INI sets the memory used to cache the physical database in memory on the database server node. This is there to reduce the number of disk reads.
2) The JadeServer.ObjectCacheSizeLimit is used to cache the working set of objects being used by server applications or server execution methods.
3) The JadeClient.ObjectCacheSizeLimit is used to cache the working set of objects being used by the client nodes (app server's, or fat clients.)
I would assume that if a user requests an object, either the caches in 2 or 3 above are checked, then if the object is not found, the cache in 1 above is checked. If the object is still not found, then it is read from disk.
With that understanding, if the users are doing the majority of the work in a system (thin client) and there is only one application server, would the recommendation be to have a larger server cache (ie increase the setting in 1 above) or to have a large cache in the application server (3 above.)
If the cache specified in 1 above is larger than 3, I would assume that the any requests for an object from the application server would require the object to be send through TCP or shared memory to the application server, potentially resulting in more network / shared memory traffic. However if the cache in 3 is larger than the cache in 1, then the application server would have a larger cache hit rate, while any server applications or server execution methods would have a lower cache hit rate as the server and persistent database caches (2,3) would contain less objects.
Thanks
Torrie