From d7983b7e6eef579bc5f86cefa6932fecc7aec7bd Mon Sep 17 00:00:00 2001
From: abobrov <abobrov@localhost>
Date: Tue, 04 Sep 2007 16:01:28 +0000
Subject: [PATCH] entry cache cleanup: - remove obsolete methods, fields and messages. - aggregate filters evaluation for config phases. - simplify filters evaluation and error reporting. - use a single set of filter messages.
---
opends/src/server/org/opends/server/extensions/FileSystemEntryCache.java | 127 +++---------------------------------------
1 files changed, 10 insertions(+), 117 deletions(-)
diff --git a/opends/src/server/org/opends/server/extensions/FileSystemEntryCache.java b/opends/src/server/org/opends/server/extensions/FileSystemEntryCache.java
index 3f92627..97442f3 100644
--- a/opends/src/server/org/opends/server/extensions/FileSystemEntryCache.java
+++ b/opends/src/server/org/opends/server/extensions/FileSystemEntryCache.java
@@ -129,26 +129,17 @@
private static final FilePermission CACHE_HOME_PERMISSIONS =
new FilePermission(0700);
- // The DN of the configuration entry for this entry cache.
- private DN configEntryDN;
-
// The maximum amount of space in bytes that can be consumed in the filesystem
// before we need to start purging entries.
private long maxAllowedMemory;
// The maximum number of entries that may be held in the cache.
- // Atomic for additional safely and in case we decide to push
+ // Atomic for additional safety and in case we decide to push
// some locks further down later. Does not inhere in additional
// overhead, via blocking on synchronization primitive, on most
// modern platforms being implemented via cpu instruction set.
private AtomicLong maxEntries;
- // The maximum percentage of memory dedicated to JE cache.
- private int jeCachePercent;
-
- // The maximum amount of memory in bytes dedicated to JE cache.
- private long jeCacheSize;
-
// The entry cache home folder to host db environment.
private String cacheHome;
@@ -209,7 +200,7 @@
// The configuration to use when encoding entries in the database.
private EntryEncodeConfig encodeConfig =
- new EntryEncodeConfig(true, false, false);
+ new EntryEncodeConfig(true, true, true);
// JE native properties to configuration attributes map.
private HashMap<String, String> configAttrMap =
@@ -242,7 +233,6 @@
registeredConfiguration = configuration;
configuration.addFileSystemChangeListener (this);
- configEntryDN = configuration.dn();
// Read and apply configuration.
boolean applyChanges = true;
@@ -1064,98 +1054,6 @@
}
/**
- * Makes a best-effort attempt to apply the configuration contained in the
- * provided entry. Information about the result of this processing should be
- * added to the provided message list. Information should always be added to
- * this list if a configuration change could not be applied. If detailed
- * results are requested, then information about the changes applied
- * successfully (and optionally about parameters that were not changed) should
- * also be included.
- *
- * @param configuration The entry containing the new configuration to
- * apply for this component.
- * @param detailedResults Indicates whether detailed information about the
- * processing should be added to the list.
- *
- * @return Information about the result of the configuration update.
- */
- public ConfigChangeResult applyNewConfiguration(
- FileSystemEntryCacheCfg configuration,
- boolean detailedResults
- )
- {
- // Store the current value to detect changes.
- long prevLockTimeout = getLockTimeout();
- long prevMaxEntries = maxEntries.longValue();
- Set<SearchFilter> prevIncludeFilters = getIncludeFilters();
- Set<SearchFilter> prevExcludeFilters = getExcludeFilters();
- long prevMaxAllowedMemory = maxAllowedMemory;
- int prevJECachePercent = jeCachePercent;
- long prevJECacheSize = jeCacheSize;
- boolean prevPersistentCache = persistentCache;
-
- // Activate the new configuration.
- ConfigChangeResult changeResult = applyConfigurationChange(configuration);
-
- // Add detailed messages if needed.
- ResultCode resultCode = changeResult.getResultCode();
- boolean configIsAcceptable = (resultCode == ResultCode.SUCCESS);
- if (detailedResults && configIsAcceptable)
- {
- if (maxEntries.longValue() != prevMaxEntries)
- {
- changeResult.addMessage(
- INFO_FSCACHE_UPDATED_MAX_ENTRIES.get(maxEntries));
- }
-
- if (getLockTimeout() != prevLockTimeout)
- {
- changeResult.addMessage(
- INFO_FSCACHE_UPDATED_LOCK_TIMEOUT.get(getLockTimeout()));
- }
-
- if (!getIncludeFilters().equals(prevIncludeFilters))
- {
- changeResult.addMessage(
- INFO_FSCACHE_UPDATED_INCLUDE_FILTERS.get());
- }
-
- if (!getExcludeFilters().equals(prevExcludeFilters))
- {
- changeResult.addMessage(
- INFO_FSCACHE_UPDATED_EXCLUDE_FILTERS.get());
- }
-
- if (maxAllowedMemory != prevMaxAllowedMemory)
- {
- changeResult.addMessage(
- INFO_FSCACHE_UPDATED_MAX_MEMORY_SIZE.get(maxAllowedMemory));
- }
-
- if (jeCachePercent != prevJECachePercent)
- {
- changeResult.addMessage(
- INFO_FSCACHE_UPDATED_JE_MEMORY_PCT.get(jeCachePercent));
- }
-
- if (jeCacheSize != prevJECacheSize)
- {
- changeResult.addMessage(
- INFO_FSCACHE_UPDATED_JE_MEMORY_SIZE.get(jeCacheSize));
- }
-
- if (persistentCache != prevPersistentCache)
- {
- changeResult.addMessage(
- INFO_FSCACHE_UPDATED_IS_PERSISTENT.get(
- String.valueOf(persistentCache)));
- }
- }
-
- return changeResult;
- }
-
- /**
* Parses the provided configuration and configure the entry cache.
*
* @param configuration The new configuration containing the changes.
@@ -1231,17 +1129,15 @@
newIncludeFilters = EntryCacheCommon.getFilters(
configuration.getIncludeFilter(),
- ERR_FIFOCACHE_INVALID_INCLUDE_FILTER,
- WARN_FIFOCACHE_CANNOT_DECODE_ANY_INCLUDE_FILTERS,
+ ERR_CACHE_INVALID_INCLUDE_FILTER,
errorHandler,
- configEntryDN
+ newConfigEntryDN
);
newExcludeFilters = EntryCacheCommon.getFilters (
configuration.getExcludeFilter(),
- WARN_FIFOCACHE_CANNOT_DECODE_EXCLUDE_FILTER,
- WARN_FIFOCACHE_CANNOT_DECODE_ANY_EXCLUDE_FILTERS,
+ ERR_CACHE_INVALID_EXCLUDE_FILTER,
errorHandler,
- configEntryDN
+ newConfigEntryDN
);
// JE configuration properties.
try {
@@ -1287,17 +1183,15 @@
case PHASE_APPLY: // error ID codes
newIncludeFilters = EntryCacheCommon.getFilters (
configuration.getIncludeFilter(),
- ERR_FIFOCACHE_INVALID_INCLUDE_FILTER,
- null,
+ ERR_CACHE_INVALID_INCLUDE_FILTER,
errorHandler,
- configEntryDN
+ newConfigEntryDN
);
newExcludeFilters = EntryCacheCommon.getFilters (
configuration.getExcludeFilter(),
- ERR_FIFOCACHE_INVALID_EXCLUDE_FILTER,
- null,
+ ERR_CACHE_INVALID_EXCLUDE_FILTER,
errorHandler,
- configEntryDN
+ newConfigEntryDN
);
// Iterate through native JE properties.
try {
@@ -1414,7 +1308,6 @@
break;
}
- configEntryDN = newConfigEntryDN;
maxEntries = new AtomicLong(newMaxEntries);
maxAllowedMemory = newMaxAllowedMemory;
persistentCache = newPersistentCache;
--
Gitblit v1.10.0