|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.opends.server.api.EntryCache<SoftReferenceEntryCacheCfg>
org.opends.server.extensions.SoftReferenceEntryCache
public class SoftReferenceEntryCache
This class defines a Directory Server entry cache that uses soft references to manage objects in a way that will allow them to be freed if the JVM is running low on memory.
Field Summary |
---|
Fields inherited from class org.opends.server.api.EntryCache |
---|
cacheHits, cacheMisses |
Constructor Summary | |
---|---|
SoftReferenceEntryCache()
Creates a new instance of this soft reference entry cache. |
Method Summary | |
---|---|
ConfigChangeResult |
applyConfigurationChange(SoftReferenceEntryCacheCfg configuration)
Applies the configuration changes to this change listener. |
void |
clear()
Removes all entries from the cache. |
void |
clearBackend(Backend backend)
Removes all entries from the cache that are associated with the provided backend. |
void |
clearSubtree(DN baseDN)
Removes all entries from the cache that are below the provided DN. |
boolean |
containsEntry(DN entryDN)
Indicates whether the entry cache currently contains the entry with the specified DN. |
void |
finalizeEntryCache()
Performs any necessary cleanup work (e.g., flushing all cached entries and releasing any other held resources) that should be performed when the server is to be shut down or the entry cache destroyed or replaced. |
java.lang.Long |
getCacheCount()
Retrieves the current number of entries stored within the cache. |
Entry |
getEntry(DN entryDN)
Retrieves the entry with the specified DN from the cache. |
DN |
getEntryDN(Backend backend,
long entryID)
Retrieves the entry DN for the entry with the specified ID on the specific backend from the cache. |
long |
getEntryID(DN entryDN)
Retrieves the entry ID for the entry with the specified DN from the cache. |
java.util.ArrayList<Attribute> |
getMonitorData()
Retrieves a set of attributes containing monitor data that should be returned to the client if the corresponding monitor entry is requested. |
void |
handleLowMemory()
Attempts to react to a scenario in which it is determined that the system is running low on available memory. |
void |
initializeEntryCache(SoftReferenceEntryCacheCfg configuration)
Initializes this entry cache implementation so that it will be available for storing and retrieving entries. |
boolean |
isConfigurationAcceptable(EntryCacheCfg configuration,
java.util.List<Message> unacceptableReasons)
Indicates whether the provided configuration is acceptable for this entry cache. |
boolean |
isConfigurationChangeAcceptable(SoftReferenceEntryCacheCfg configuration,
java.util.List<Message> unacceptableReasons)
Indicates whether the proposed change to the configuration is acceptable to this change listener. |
boolean |
processEntryCacheConfig(SoftReferenceEntryCacheCfg configuration,
boolean applyChanges,
EntryCacheCommon.ConfigErrorHandler errorHandler)
Parses the provided configuration and configure the entry cache. |
void |
putEntry(Entry entry,
Backend backend,
long entryID)
Stores the provided entry in the cache. |
boolean |
putEntryIfAbsent(Entry entry,
Backend backend,
long entryID)
Stores the provided entry in the cache only if it does not conflict with an entry that already exists. |
void |
removeEntry(DN entryDN)
Removes the specified entry from the cache. |
void |
run()
Operate in a loop, receiving notification of soft references that have been freed and removing the corresponding entries from the cache. |
Methods inherited from class org.opends.server.api.EntryCache |
---|
filtersAllowCaching, getCacheHits, getCacheMisses, getEntry, getEntry, getEntryCacheMonitor, getExcludeFilters, getIncludeFilters, getLockTimeout, setEntryCacheMonitor, setExcludeFilters, setIncludeFilters, setLockTimeout |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public SoftReferenceEntryCache()
initializeEntryCache
method.
Method Detail |
---|
public void initializeEntryCache(SoftReferenceEntryCacheCfg configuration) throws ConfigException, InitializationException
initializeEntryCache
in class EntryCache<SoftReferenceEntryCacheCfg>
configuration
- The configuration to use to initialize
the entry cache.
ConfigException
- If there is a problem with the provided
configuration entry that would prevent
this entry cache from being used.
InitializationException
- If a problem occurs during the
initialization process that is
not related to the
configuration.public void finalizeEntryCache()
finalizeEntryCache
in class EntryCache<SoftReferenceEntryCacheCfg>
public boolean containsEntry(DN entryDN)
containsEntry
in class EntryCache<SoftReferenceEntryCacheCfg>
entryDN
- The DN for which to make the determination.
true
if the entry cache currently contains the
entry with the specified DN, or false
if not.public Entry getEntry(DN entryDN)
getEntry
in class EntryCache<SoftReferenceEntryCacheCfg>
entryDN
- The DN of the entry to retrieve.
null
if it is not present.public long getEntryID(DN entryDN)
getEntryID
in class EntryCache<SoftReferenceEntryCacheCfg>
entryDN
- The DN of the entry for which to retrieve the
entry ID.
public DN getEntryDN(Backend backend, long entryID)
getEntryDN
in class EntryCache<SoftReferenceEntryCacheCfg>
backend
- The backend associated with the entry for
which to retrieve the entry DN.entryID
- The entry ID within the provided backend
for which to retrieve the entry DN.
null
if it is not present in the cache.public void putEntry(Entry entry, Backend backend, long entryID)
putEntry
in class EntryCache<SoftReferenceEntryCacheCfg>
entry
- The entry to store in the cache.backend
- The backend with which the entry is associated.entryID
- The entry ID within the provided backend that
uniquely identifies the specified entry.public boolean putEntryIfAbsent(Entry entry, Backend backend, long entryID)
putEntryIfAbsent
in class EntryCache<SoftReferenceEntryCacheCfg>
entry
- The entry to store in the cache.backend
- The backend with which the entry is associated.entryID
- The entry ID within the provided backend that
uniquely identifies the specified entry.
false
if an existing entry or some other problem
prevented the method from completing successfully, or
true
if there was no conflict and the entry was
either stored or the cache determined that this entry
should never be cached for some reason.public void removeEntry(DN entryDN)
removeEntry
in class EntryCache<SoftReferenceEntryCacheCfg>
entryDN
- The DN of the entry to remove from the cache.public void clear()
clear
in class EntryCache<SoftReferenceEntryCacheCfg>
public void clearBackend(Backend backend)
clearBackend
in class EntryCache<SoftReferenceEntryCacheCfg>
backend
- The backend for which to flush the associated
entries.public void clearSubtree(DN baseDN)
clearSubtree
in class EntryCache<SoftReferenceEntryCacheCfg>
baseDN
- The base DN below which all entries should be
flushed.public void handleLowMemory()
handleLowMemory
in class EntryCache<SoftReferenceEntryCacheCfg>
public boolean isConfigurationAcceptable(EntryCacheCfg configuration, java.util.List<Message> unacceptableReasons)
isConfigurationAcceptable
in class EntryCache<SoftReferenceEntryCacheCfg>
configuration
- The entry cache configuration for
which to make the determination.unacceptableReasons
- A list that may be used to hold the
reasons that the provided
configuration is not acceptable.
true
if the provided configuration is acceptable
for this entry cache, or false
if not.public boolean isConfigurationChangeAcceptable(SoftReferenceEntryCacheCfg configuration, java.util.List<Message> unacceptableReasons)
isConfigurationChangeAcceptable
in interface ConfigurationChangeListener<SoftReferenceEntryCacheCfg>
configuration
- The new configuration containing the changes.unacceptableReasons
- A list that can be used to hold messages about why the
provided configuration is not acceptable.
true
if the proposed change is
acceptable, or false
if it is not.public ConfigChangeResult applyConfigurationChange(SoftReferenceEntryCacheCfg configuration)
applyConfigurationChange
in interface ConfigurationChangeListener<SoftReferenceEntryCacheCfg>
configuration
- The new configuration containing the changes.
public boolean processEntryCacheConfig(SoftReferenceEntryCacheCfg configuration, boolean applyChanges, EntryCacheCommon.ConfigErrorHandler errorHandler)
configuration
- The new configuration containing the changes.applyChanges
- If true then take into account the new configuration.errorHandler
- An handler used to report errors.
true
if configuration is acceptable,
or false
otherwise.public void run()
run
in interface java.lang.Runnable
public java.util.ArrayList<Attribute> getMonitorData()
getMonitorData
in class EntryCache<SoftReferenceEntryCacheCfg>
public java.lang.Long getCacheCount()
getCacheCount
in class EntryCache<SoftReferenceEntryCacheCfg>
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |