FIFO Entry Cache

FIFO Entry Caches use a FIFO queue to keep track of the cached entries.

Entries that have been in the cache the longest are the most likely candidates for purging if space is needed. In contrast to other cache structures, the selection of entries to purge is not based on how frequently or recently the entries have been accessed. This requires significantly less locking (it will only be required when an entry is added or removed from the cache, rather than each time an entry is accessed). Cache sizing is based on the percentage of free memory within the JVM, such that if enough memory is free, then adding an entry to the cache will not require purging, but if more than a specified percentage of the available memory within the JVM is already consumed, then one or more entries will need to be removed in order to make room for a new entry. It is also possible to configure a maximum number of entries for the cache. If this is specified, then the number of entries will not be allowed to exceed this value, but it may not be possible to hold this many entries if the available memory fills up first. Other configurable parameters for this cache include the maximum length of time to block while waiting to acquire a lock, and a set of filters that may be used to define criteria for determining which entries are stored in the cache. If a filter list is provided, then only entries matching at least one of the given filters will be stored in the cache.

Parent

The FIFO Entry Cache object inherits from Entry Cache.

FIFO Entry Cache Properties

You can use configuration expressions to set property values at startup time. For details, see Property Value Substitution.

Basic Properties Advanced Properties

cache-level
enabled
exclude-filter
include-filter
max-entries
max-memory-percent

java-class
lock-timeout

Basic Properties

Use the --advanced option to access advanced properties.

cache-level

Synopsis

Specifies the cache level in the cache order if more than one instance of the cache is configured.

Default Value

None

Allowed Values

An integer.

Lower limit: 1.

Multi-valued

No

Required

Yes

Admin Action Required

None

Advanced

No

Read-Only

No

enabled

Synopsis

Indicates whether the Entry Cache is enabled.

Default Value

None

Allowed Values

true

false

Multi-valued

No

Required

Yes

Admin Action Required

None

Advanced

No

Read-Only

No

exclude-filter

Synopsis

The set of filters that define the entries that should be excluded from the cache.

Default Value

None

Allowed Values

A string.

Multi-valued

Yes

Required

No

Admin Action Required

None

Advanced

No

Read-Only

No

include-filter

Synopsis

The set of filters that define the entries that should be included in the cache.

Default Value

None

Allowed Values

A string.

Multi-valued

Yes

Required

No

Admin Action Required

None

Advanced

No

Read-Only

No

max-entries

Synopsis

Specifies the maximum number of entries that we will allow in the cache.

Default Value

2147483647

Allowed Values

An integer.

Lower limit: 0.

Multi-valued

No

Required

No

Admin Action Required

None

Advanced

No

Read-Only

No

max-memory-percent

Synopsis

Specifies the maximum percentage of JVM memory used by the server before the entry caches stops caching and begins purging itself.

Description

Very low settings such as 10 or 20 (percent) can prevent this entry cache from having enough space to hold any of the entries to cache, making it appear that the server is ignoring or skipping the entry cache entirely.

Default Value

90

Allowed Values

An integer.

Lower limit: 1.

Upper limit: 100.

Multi-valued

No

Required

No

Admin Action Required

None

Advanced

No

Read-Only

No

Advanced Properties

Use the --advanced option to access advanced properties.

java-class

Synopsis

Specifies the fully-qualified name of the Java class that provides the FIFO Entry Cache implementation.

Default Value

org.opends.server.extensions.FIFOEntryCache

Allowed Values

A Java class that extends or implements:

  • org.opends.server.api.EntryCache

Multi-valued

No

Required

Yes

Admin Action Required

The object must be disabled and re-enabled for changes to take effect.

Advanced

Yes

Read-Only

No

lock-timeout

Synopsis

Specifies the length of time to wait while attempting to acquire a read or write lock.

Default Value

2000.0ms

Allowed Values

Use "unlimited" or "-1" to indicate no limit.

Lower limit: 0 milliseconds.

Multi-valued

No

Required

No

Admin Action Required

None

Advanced

Yes

Read-Only

No