Cache Computation

As the application ages and whenever more data is added, you may observe that the cache is incorrectly sized. Memory calculation of cache is also quite complex in TIBCO MDM. Using the auto compute option of the cache, auto cache calculation is suppressed depending on the capacities of caches.

By default, TIBCO MDM adds different types of overhead and factors in capacity calculation, however, the approximate capacity can be calculated using the following generic formula:
Capacity = Total number of objects exist in the database * number of entries maintained in cache per record
For example, ENTERPRISE cache object, assume five enterprises are available in the database and tibco MDM maintains two entries in cache per enterprise, the capacity for the ENTERPRISE cache object is 5*2 = 10.

By default, the Cache Calculation Suppression ( com.tibco.mdm.cache.autocompute.disable) property is set to false. If you change the value to true, the cache calculation is suppressed.

Cache Name Description
Enterprise Counts the number of enterprises, and derives capacity of the following caches:
  • ENTERPRISE, ORGANIZATION, HTTP, CONFIGDEFINITION, CONFIGDEFINITIONLIST, RULEENGINE, and RULEENGINEATTRIBUTEINFO
Member Counts the number of users and derives the capacity of the following caches:
  • MEMBER, MEMBERORG, WORKITEM, WORKITEMLOCK, WORKITEMPREFERENCES, and WORKITEMSUMMARY
  • CONFIGURATIONDOCUMENT, MASSUPDATE, MATCHEROUTPUT, RULEBASERESULTS, and PRODUCT
  • PRODUCT, RECORDBUNDLE, SEARCHCRITERION, SECURITYPERMISSIONS, andLOCALSUBCATALOG
Repository Counts the number of repositories and derives the capacity of the following caches:
  • CATALOG, SECUREDATTRIBUTEGROUP, ASSOCSCHEMES, CATALOGFORMATS, CATALOGEDITIONVALUE, and CATALOGEDITION
  • CATALOGINPUTMAP,OUTPUTMAPLIST, RELATEDMAPS, CLASSIFICATIONCODE, and CLASSIFICATIONCODEATTRIBUTE
  • CATALOGDECLARATION, RULEBASE, RELATIONSHIPMETADATA, and PRELOAD_STATUS
Event Assumes the minimum events to be stored to 2000 and derives the capacity of the following caches:
  • EVENT, EVENTDETAIL, PROCESS, MLXMLDOC, PROCESSSTATE, and PROCESSLOG
  • RECORDCOLLECTION, RECORDKEYLIST, and RECORDITEM
PoolSize Inquires the pool size of the workflow receiver and configures the following caches:
  • WORKITEMDOC and COMPUTEDSUMMARY
  • LOCAL except LOCALSUBCATALOG
After the cache size is calculated and when the caches are being created, the cache size configured through the CacheConfig.xml file is compared, and the higher value is used. Thus, the total memory allocation to the cache can be higher than what is configured through CacheConfig.xml. To avoid startup issues, when cache capacities are auto computed, the excess memory check is suppressed and the server allocates more memory than configured. To verify cache computation, the following message is generated in debug log:
“Autocompute enabled, excess memory allocation allowed.”
Note: RECORD cache are not included in the auto computation.