Caffeine Cache Provider

Last Updated: Jul 2, 2019
documentation for the dotCMS Content Management System

The Caffeine cache provider is a dotCMS implementation of the Caffeine cache by Ben Manes. Caffeine is a local, memory-only cache. For more information on cache providers in dotCMS, please see the Cache Properties documentation.

What is Caffeine?

Caffeine is a local, high-performance, memory-only cache library, with features including but not limited to:

  • Automatic loading of entries into the cache, optionally asynchronously.
  • Size-based eviction when a maximum is exceeded based on frequency and recency.
  • Time-based expiration of entries, measured since last access or last write.
  • Asynchronous refresh when the first stale request for an entry occurs.
  • Writes propagated to an external resource

For more information about Caffeine, please see the Caffeine page on Github or the Caffeine user's guide.

Caffeine in dotCMS

A Caffeine cache provider is included with dotCMS, and is enabled by default for all cache regions in both Community and Enterprise editions. All customers may change the cache Configuration Properties (see below), and customers with an Enterprise license may change how the Caffeine cache provider is used in each cache region.

Configuration Properties

The following parameters in the configuration properties control the bahavior of the Caffeine cache. Please note that Caffeine does not use a segmented cache, so while some of these properties may be familiar in the context of other cache providers, there is no cache.concurrencylevel property.

Default Cache Region Size

The following parameter configures the default cache size (number of entries) of the Caffeine cache:

cache.default.size=1000

This parameter specifies the default cache size (number of entries), which will be used for any cache region which does not have a cache size set explicitly (see below).

Cache Region Sizes

In addition to the default cache settings, you can also specify the size (number of entries) of each cache region, giving you the flexibility to tune the cache for the specific design of your site. The following settings are the defaults, but may be modified by editing these properties:

cache.adminconfigpool.size=100
cache.blockdirectivecache.size=1000
cache.categorybykeycache.size=1000
cache.categorycache.size=1000
cache.categorychildrencache.size=1000
cache.categoryparentscache.size=1000
cache.companypool.size=10
cache.contentletcache.size=5000
cache.fileassetmetadatacache.size=200
cache.dotcmslayoutcache.size=1000
cache.dotcmsrolecache.size=1000
cache.dotcmsrolekeycache.size=1000
cache.dotcmsuserrolecache.size=1000
cache.fieldscache.size=1000
cache.filecache.size=1000
cache.foldercache.size=1000
cache.hostaliascache.size=1000
cache.hostcache.size=1000
cache.hostvariablescache.size=1000
cache.htmlpagecache.size=1000
cache.identifiercache.size=50000
cache.languagecacheimpl.size=1000
cache.navcache.size=1000
cache.parentpermissionablecache.size=10000
cache.permissioncache.size=50000
cache.plugincache.size=1000
cache.portletpool.size=100
cache.structurecache.size=500
cache.templatecache.size=500
cache.userdotcmscache.size=1000
cache.useremaildotcmscache.size=1000
cache.userproxycache.size=1000
cache.velocitycache.size=1000
cache.velocitymenucache.size=1000
cache.velocitymisscache.size=1000
cache.versioncache.size=50000
cache.versioninfocache.size=50000
cache.virtuallinkscache.size=1000
cache.workflowcache.size=1000
cache.workflowstepcache.size=1000
cache.workflowtaskcache.size=10000
cache.indiciescache.size=8
cache.publishingendpointcache.size=100
cache.workflowactioncache.size=10000
cache.logmappercache.size=10
cache.translatedquerycache.size=5000
cache.csscache.size=2500
cache.dotcmsrootrolescache.size=1000
cache.identifier404cache.size=1000
cache.fieldsvarcache.size=1000
cache.relationshipcachebyname.size=1000
cache.relationshipcachebyinode.size=1000
cache.propertycache.size=1000
cache.containercache.size=1000
cache.newnotificationcache.size=1000
cache.containerstructurecache.size=1000
cache.blockdirectivehtmlpagecache=1000
cache.pushedassetscache=5000
cache.ratingcache=1000
cache.velocityuservtlcache=500

Cache Chain Properties

The default cache chain includes the Caffeine cache provider by default:

cache.default.chain=com.dotmarketing.business.cache.provider.caffeine.CaffeineCache

Therefore you only need to add the Caffeine cache provider to the cache chain for any new cache chain properties you create for specific cache regions. To add the Caffeine cache provider to the cache chain property for a region, you must add com.dotmarketing.business.cache.provider.caffeine.CaffeineCache to the cache chain properties for the cache regions where you wish to use it. For example, the following property specifies a cache chain for the adminconfigpool cache region that uses only the Caffeine Cache:

cache.adminconfigpool.chain=com.dotmarketing.business.cache.provider.caffeine.CaffeineCache

For more information on how to configure cache regions to use the Caffeine Cache provider, please see the Cache Chaining documentation.

On this page

×

We Dig Feedback

Selected excerpt:

×