From cd7c40541ea5f1c17a726f7880ce46df0a67d0d8 Mon Sep 17 00:00:00 2001
From: boli <boli@localhost>
Date: Tue, 15 Aug 2006 17:23:29 +0000
Subject: [PATCH] Added JE backend configuration option to specify the number of cleaner threads. Default value is 1
---
opends/resource/schema/02-config.ldif | 6 +++++-
opends/src/server/org/opends/server/backends/jeb/ConfigurableEnvironment.java | 15 +++++++++++++++
opends/src/server/org/opends/server/messages/JebMessages.java | 12 ++++++++++++
opends/resource/config/config.ldif | 1 +
4 files changed, 33 insertions(+), 1 deletions(-)
diff --git a/opends/resource/config/config.ldif b/opends/resource/config/config.ldif
index 52d2fa0..189c089 100644
--- a/opends/resource/config/config.ldif
+++ b/opends/resource/config/config.ldif
@@ -194,6 +194,7 @@
ds-cfg-database-txn-no-sync: false
ds-cfg-database-txn-write-no-sync: true
ds-cfg-database-run-cleaner: true
+ds-cfg-database-cleaner-num-threads: 1
ds-cfg-database-cleaner-min-utilization: 75
ds-cfg-database-evictor-lru-only: true
ds-cfg-database-evictor-nodes-per-scan: 10
diff --git a/opends/resource/schema/02-config.ldif b/opends/resource/schema/02-config.ldif
index 1567cc6..4f426af 100644
--- a/opends/resource/schema/02-config.ldif
+++ b/opends/resource/schema/02-config.ldif
@@ -970,6 +970,10 @@
attributeTypes: ( 1.3.6.1.4.1.26027.1.1.283
NAME 'ds-cfg-account-status-notification-type'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'OpenDS Directory Server' )
+attributeTypes: ( 1.3.6.1.4.1.26027.1.1.284
+ Name 'ds-cfg-database-cleaner-num-threads'
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE
+ X-ORIGIN 'OpenDS Directory Server' )
objectClasses: ( 1.3.6.1.4.1.26027.1.2.1
NAME 'ds-cfg-access-control-handler' SUP top STRUCTURAL
MUST ( cn $ ds-cfg-acl-handler-class $ ds-cfg-acl-handler-enabled )
@@ -1006,7 +1010,7 @@
ds-cfg-database-logging-file-handler-on $ ds-cfg-database-logging-level $
ds-cfg-database-checkpointer-bytes-interval $
ds-cfg-database-checkpointer-wakeup-interval $
- ds-cfg-database-lock-num-lock-tables )
+ ds-cfg-database-lock-num-lock-tables $ ds-cfg-database-cleaner-num-threads )
X-ORIGIN 'OpenDS Directory Server' )
objectClasses: ( 1.3.6.1.4.1.26027.1.2.8 NAME 'ds-cfg-je-index' SUP top
STRUCTURAL MUST ( ds-cfg-index-attribute $ ds-cfg-index-type )
diff --git a/opends/src/server/org/opends/server/backends/jeb/ConfigurableEnvironment.java b/opends/src/server/org/opends/server/backends/jeb/ConfigurableEnvironment.java
index 66c1d12..1636ae2 100644
--- a/opends/src/server/org/opends/server/backends/jeb/ConfigurableEnvironment.java
+++ b/opends/src/server/org/opends/server/backends/jeb/ConfigurableEnvironment.java
@@ -174,6 +174,13 @@
ConfigConstants.NAME_PREFIX_CFG + "database-lock-num-lock-tables";
+ /**
+ * The name of the attribute which configures the number threads
+ * allocated by the cleaner for log file processing.
+ */
+ public static final String ATTR_NUM_CLEANER_THREADS =
+ ConfigConstants.NAME_PREFIX_CFG + "database-cleaner-num-threads";
+
/**
* A map of JE property names to their associated configuration attribute.
@@ -202,6 +209,7 @@
private static final ConfigAttribute CONFIG_ATTR_CHECKPOINTER_BYTES_INTERVAL;
private static final ConfigAttribute CONFIG_ATTR_CHECKPOINTER_WAKEUP_INTERVAL;
private static final ConfigAttribute CONFIG_ATTR_NUM_LOCK_TABLES;
+ private static final ConfigAttribute CONFIG_ATTR_NUM_CLEANER_THREADS;
@@ -326,6 +334,11 @@
new IntegerConfigAttribute(ATTR_NUM_LOCK_TABLES, msg, false,
false, true, true, 1, true, 32767);
+ msg = getMessage(MSGID_CONFIG_DESCRIPTION_NUM_CLEANER_THREADS);
+ CONFIG_ATTR_NUM_CLEANER_THREADS =
+ new IntegerConfigAttribute(ATTR_NUM_CLEANER_THREADS, msg, false,
+ false, false, true, 1, false, 0);
+
// Register the parameters that have JE property names.
registerPropertyAttribute("je.maxMemoryPercent",
CONFIG_ATTR_CACHE_PERCENT);
@@ -351,6 +364,8 @@
CONFIG_ATTR_CHECKPOINTER_WAKEUP_INTERVAL);
registerPropertyAttribute("je.lock.nLockTables",
CONFIG_ATTR_NUM_LOCK_TABLES);
+ registerPropertyAttribute("je.cleaner.threads",
+ CONFIG_ATTR_NUM_CLEANER_THREADS);
// These parameters do not have JE property names.
configAttrList.add(CONFIG_ATTR_TXN_NO_SYNC);
diff --git a/opends/src/server/org/opends/server/messages/JebMessages.java b/opends/src/server/org/opends/server/messages/JebMessages.java
index 14f7414..f026eca 100644
--- a/opends/src/server/org/opends/server/messages/JebMessages.java
+++ b/opends/src/server/org/opends/server/messages/JebMessages.java
@@ -1213,6 +1213,14 @@
+ /**
+ * The message ID used to describe the attribute which configures
+ * the number of threads allocated by the cleaner for log file processing.
+ */
+ public static final int MSGID_CONFIG_DESCRIPTION_NUM_CLEANER_THREADS =
+ CATEGORY_MASK_CONFIG | SEVERITY_MASK_INFORMATIONAL | 125;
+
+
/**
@@ -1696,5 +1704,9 @@
"number of server worker threads.");
registerMessage(MSGID_JEB_IMPORT_ENVIRONMENT_CONFIG,
"Database environment properties: %s.");
+ registerMessage(MSGID_CONFIG_DESCRIPTION_NUM_CLEANER_THREADS,
+ "The number of threads allocated by the cleaner for log " +
+ "file processing. If the cleaner backlog becomes large, " +
+ "increase this number.");
}
}
--
Gitblit v1.10.0