druid/docs/content/configuration/caching.md

3.0 KiB

layout
doc_page

Caching

Caching can optionally be enabled on the broker and / or historical nodes. See the broker and historical configuration options for how to enable it for individual node types.

Druid uses a local in-memory cache by default, unless a diffrent type of cache is specified. Use the druid.cache.type configuration to set a different kind of cache.

Cache configuration

Cache settings are set globally, so the same configuration can be re-used for both broker and historical nodes, when defined in the common properties file.

Property Possible Values Description Default
druid.cache.type local, memcached, hybrid The type of cache to use for queries. See below of the configuration options for each cache type local

Local Cache

A simple in-memory LRU cache. Local cache resides in JVM heap memory, so if you enable it, make sure you increase heap size accordingly.

Property Description Default
druid.cache.sizeInBytes Maximum cache size in bytes. Zero disables caching. 0
druid.cache.initialSize Initial size of the hashtable backing the cache. 500000
druid.cache.logEvictionCount If non-zero, log cache eviction every logEvictionCount items. 0

Memcached

Uses memcached as cache backend. This allows all nodes to share the same cache.

Property Description Default
druid.cache.expiration Memcached expiration time. 2592000 (30 days)
druid.cache.timeout Maximum time in milliseconds to wait for a response from Memcached. 500
druid.cache.hosts Command separated list of Memcached hosts <host:port>. none
druid.cache.maxObjectSize Maximum object size in bytes for a Memcached object. 52428800 (50 MB)
druid.cache.memcachedPrefix Key prefix for all keys in Memcached. druid
druid.cache.numConnections Number of memcached connections to use. 1

Hybrid

Uses a combination of any two caches as a two-level L1 / L2 cache. This may be used to combine a local in-memory cache with a remote memcached cache.

Cache requests will first check L1 cache before checking L2. If there is an L1 miss and L2 hit, it will also populate L1.

Property Description Default
druid.cache.l1.type type of cache to use for L1 cache. See druid.cache.type configuration for valid types. local
druid.cache.l2.type type of cache to use for L2 cache. See druid.cache.type configuration for valid types. local
druid.cache.l1.* Any property valid for the given type of L1 cache can be set using this prefix. For instance, if you are using a local L1 cache, specify druid.cache.l1.sizeInBytes to set its size. defaults are the same as for the given cache type.
druid.cache.l2.* Prefix for L2 cache settings, see description for L1. defaults are the same as for the given cache type.