mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

abobrov
26.32.2007 60b9d6cf6a4cffecb338c2f65538094461aa3c0d
- [Issue 2030] new configuration attribute to enforce entry compression:
allow for backend-compact-encoding property, enabled by default.
3 files modified
49 ■■■■ changed files
opends/resource/schema/02-config.ldif 5 ●●●●● patch | view | raw | blame | history
opends/src/admin/defn/org/opends/server/admin/std/FileSystemEntryCacheConfiguration.xml 32 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/extensions/FileSystemEntryCache.java 12 ●●●● patch | view | raw | blame | history
opends/resource/schema/02-config.ldif
@@ -2140,8 +2140,9 @@
  SUP ds-cfg-entry-cache STRUCTURAL MAY ( ds-cfg-max-entries $
  ds-cfg-max-memory-size $ ds-cfg-lock-timeout $ ds-cfg-exclude-filter $
  ds-cfg-include-filter $ ds-cfg-cache-directory $ ds-cfg-cache-type $
  ds-cfg-persistent-cache $ ds-cfg-database-cache-percent $
  ds-cfg-database-cache-size ) X-ORIGIN 'OpenDS Directory Server' )
  ds-cfg-persistent-cache $ ds-cfg-backend-compact-encoding $
  ds-cfg-database-cache-percent $ ds-cfg-database-cache-size )
  X-ORIGIN 'OpenDS Directory Server' )
objectClasses: ( 1.3.6.1.4.1.26027.1.2.114 NAME 'ds-cfg-plugin-root'
  SUP top AUXILIARY MAY ( ds-cfg-plugin-order-startup $
  ds-cfg-plugin-order-shutdown $ ds-cfg-plugin-order-post-connect $
opends/src/admin/defn/org/opends/server/admin/std/FileSystemEntryCacheConfiguration.xml
@@ -217,6 +217,38 @@
    </adm:profile>
  </adm:property>
  <adm:property name="backend-compact-encoding">
    <adm:synopsis>
      Indicates whether the cache should use a compact form when encoding
      cache entries by compressing the attribute descriptions and object
      class sets. Note that compression does not preserve user-supplied
      capitalization in the object class and attribute type names.
    </adm:synopsis>
    <adm:requires-admin-action>
      <adm:none>
        <adm:synopsis>
          Changing this property will only affect the encoding of the cache
          entries put in the cache after the change is made. It will not be
          retroactively applied to existing cache entries.
        </adm:synopsis>
      </adm:none>
    </adm:requires-admin-action>
    <adm:default-behavior>
      <adm:defined>
        <adm:value>true</adm:value>
      </adm:defined>
    </adm:default-behavior>
    <adm:syntax>
      <adm:boolean/>
    </adm:syntax>
    <adm:profile name="ldap">
      <ldap:attribute>
        <ldap:oid>1.3.6.1.4.1.26027.1.1.471</ldap:oid>
        <ldap:name>ds-cfg-backend-compact-encoding</ldap:name>
      </ldap:attribute>
    </adm:profile>
  </adm:property>
  <adm:property name="database-cache-percent">
    <adm:synopsis>
      The maximum memory usage for the internal JE cache as a percentage
opends/src/server/org/opends/server/extensions/FileSystemEntryCache.java
@@ -212,9 +212,8 @@
  private long persistentEntriesRestored = 0;
  // The configuration to use when encoding entries in the database.
  // TODO: make compression feature configurable.
  private static EntryEncodeConfig encodeConfig =
      new EntryEncodeConfig(true, false, false);
  private EntryEncodeConfig encodeConfig =
    new EntryEncodeConfig(true, false, false);
  /**
   * Creates a new instance of this entry cache.
@@ -1212,6 +1211,7 @@
    int                   newJECachePercent;
    long                  newJECacheSize;
    boolean               newPersistentCache;
    boolean               newCompactEncoding;
    String                newCacheType = DEFAULT_FSCACHE_TYPE;
    String                newCacheHome = DEFAULT_FSCACHE_HOME;
@@ -1238,6 +1238,9 @@
    // Check if this cache is persistent.
    newPersistentCache = configuration.isPersistentCache();
    // Check if this cache should use compact encoding.
    newCompactEncoding = configuration.isBackendCompactEncoding();
    switch (errorHandler.getConfigPhase())
    {
    case PHASE_INIT:
@@ -1331,6 +1334,9 @@
      maxAllowedMemory = newMaxAllowedMemory;
      persistentCache  = newPersistentCache;
      encodeConfig     = new EntryEncodeConfig(true,
        newCompactEncoding, newCompactEncoding);
      setLockTimeout(newLockTimeout);
      setIncludeFilters(newIncludeFilters);
      setExcludeFilters(newExcludeFilters);