# # Cache keys: The 64 to 128 bit string key of the Value.get64BitHash of the expression and the valid bindings # for it, plust one character of "T" or "F" to represent if expression is variable definition. We # do not keep the full key since collisions are unlikely and would unnecessarily burden the cache, # especially for large expressions, the size of which can be large compared to the small data we # are storing. # Cache values: List of expression guidance for the given expression, bindings and # whether it's variable definition appian.cacheattributes.cacheName=expressionGuidance # Not a distributed cache # Cache algorithm is LIRS appian.cacheattributes.MemoryCacheName=com.appiancorp.cache.JavaCachingSystemLirs # Maximum number of objects that the cache should hold: 500 # Imagining 25 designers simultaneously editing 25 design objects each with 20 expressions on it. # 2 ~30 character strings + 1 10 character string + 4 integers = 1248 bytes * 10 per list on average * 500 lists + 500 128 bit cache keys ~= 6 MB # For safety, we will cap it at 6MB and 500 entries appian.cacheattributes.MaxObjects=500 appian.cacheattributes.MaxCacheSizeBytes=6304000 # Background memory shrinkage (active eviction) [When MemoryShrinker is enabled, determine how often the thread should be triggered to shrink the cache and what the maxIdle time is for an element] # Run shrinker every hour. Entries are generally valid for a designer's editing session and then once they get # replicated via the IAReplicator. This generally happens within a minute of object save. appian.cacheattributes.ShrinkerIntervalSeconds=3600 appian.cacheattributes.MaxMemoryIdleTimeSeconds=600