From 6f1bea9c0164f4b1a7673c9f41d4aa69d2e688a9 Mon Sep 17 00:00:00 2001
From: Yannick Lecaillez <ylecaillez@forgerock.com>
Date: Wed, 27 Apr 2016 14:08:40 +0000
Subject: [PATCH] Fix: Allow to change PDB's commit policy without restart.
---
opendj-server-legacy/src/main/java/org/opends/server/backends/pdb/PDBStorage.java | 15 +++++++++------
1 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pdb/PDBStorage.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pdb/PDBStorage.java
index 7f41304..81b74bd 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pdb/PDBStorage.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pdb/PDBStorage.java
@@ -83,6 +83,7 @@
import com.persistit.Key;
import com.persistit.Persistit;
import com.persistit.Transaction;
+import com.persistit.Transaction.CommitPolicy;
import com.persistit.Value;
import com.persistit.Volume;
import com.persistit.VolumeSpecification;
@@ -295,7 +296,7 @@
{
txn.begin();
getNewExchange(treeName, true);
- txn.commit();
+ txn.commit(commitPolicy);
}
catch (PersistitException e)
{
@@ -315,7 +316,7 @@
txn.begin();
ex = getNewExchange(treeName, true);
ex.removeTree();
- txn.commit();
+ txn.commit(commitPolicy);
}
catch (PersistitException e)
{
@@ -701,6 +702,7 @@
private final ServerContext serverContext;
private final File backendDirectory;
+ private CommitPolicy commitPolicy;
private AccessMode accessMode;
private Persistit db;
private Volume volume;
@@ -732,7 +734,7 @@
{
final Configuration dbCfg = buildConfiguration(AccessMode.READ_WRITE);
getBufferPoolCfg(dbCfg).setMaximumMemory(IMPORT_DB_CACHE_SIZE);
- dbCfg.setCommitPolicy(SOFT);
+ commitPolicy = SOFT;
return dbCfg;
}
@@ -762,7 +764,7 @@
bufferPoolCfg.setMaximumMemory(memQuota.memPercentToBytes(config.getDBCachePercent()));
memQuota.acquireMemory(memQuota.memPercentToBytes(config.getDBCachePercent()));
}
- dbCfg.setCommitPolicy(config.isDBTxnNoSync() ? SOFT : GROUP);
+ commitPolicy = config.isDBTxnNoSync() ? SOFT : GROUP;
dbCfg.setJmxEnabled(false);
return dbCfg;
}
@@ -855,7 +857,7 @@
try (final StorageImpl storageImpl = newStorageImpl())
{
final T result = operation.run(storageImpl);
- txn.commit();
+ txn.commit(commitPolicy);
return result;
}
catch (final StorageRuntimeException e)
@@ -905,7 +907,7 @@
try (final StorageImpl storageImpl = newStorageImpl())
{
operation.run(storageImpl);
- txn.commit();
+ txn.commit(commitPolicy);
return;
}
catch (final StorageRuntimeException e)
@@ -1267,6 +1269,7 @@
}
registerMonitoredDirectory(cfg);
config = cfg;
+ commitPolicy = config.isDBTxnNoSync() ? SOFT : GROUP;
}
catch (Exception e)
{
--
Gitblit v1.10.0