From 18468f4caef824f2497e0008974df0aec5431fd4 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 19 Dec 2014 10:40:41 +0000
Subject: [PATCH] OPENDJ-1602 New pluggable storage based backend
---
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/persistit/PersistItStorage.java | 45 +++++++++++++++------------------------------
1 files changed, 15 insertions(+), 30 deletions(-)
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/persistit/PersistItStorage.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/persistit/PersistItStorage.java
index 01a5b2e..e11010b 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/persistit/PersistItStorage.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/persistit/PersistItStorage.java
@@ -31,8 +31,6 @@
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
import org.forgerock.opendj.ldap.ByteSequence;
import org.forgerock.opendj.ldap.ByteString;
@@ -46,7 +44,6 @@
import org.opends.server.backends.pluggable.spi.UpdateFunction;
import org.opends.server.backends.pluggable.spi.WriteOperation;
import org.opends.server.backends.pluggable.spi.WriteableStorage;
-import org.opends.server.types.DN;
import com.persistit.Exchange;
import com.persistit.Key;
@@ -70,7 +67,7 @@
@Override
public void createTree(TreeName treeName) {
try {
- final Tree tree = getVolume(treeName).getTree(treeName.toString(), true);
+ final Tree tree = volume.getTree(treeName.toString(), true);
trees.put(treeName, tree);
} catch (PersistitException e) {
throw new StorageRuntimeException(e);
@@ -239,7 +236,7 @@
@Override
public void truncateTree(TreeName treeName) {
try {
- getVolume(treeName).truncate();
+ volume.truncate();
} catch (PersistitException e) {
throw new StorageRuntimeException(e);
}
@@ -356,22 +353,16 @@
}
-
private File backendDirectory;
private PersistitBackendCfg config;
private Persistit db;
- private final ConcurrentMap<String, Volume> volumes = new ConcurrentHashMap<String, Volume>();
+ private Volume volume;
private Properties properties;
- private Volume getVolume(TreeName treeName) {
- return volumes.get(treeName.getBaseDN());
- }
-
@Override
- public void initialize(PersistitBackendCfg cfg)
- {
- this.config = cfg;
- this.backendDirectory = new File(getFileForPath(config.getDBDirectory()),
+ public void initialize(PersistitBackendCfg cfg) {
+ this.config = cfg;
+ this.backendDirectory = new File(getFileForPath(config.getDBDirectory()),
config.getBackendId());
properties = new Properties();
@@ -380,16 +371,13 @@
properties.setProperty("logfile", "${logpath}/dj_${timestamp}.log");
properties.setProperty("buffer.count.16384", "64K");
properties.setProperty("journalpath", "${datapath}/dj_journal");
- int i = 1;
- for (DN baseDN : config.getBaseDN()) {
- // TODO use VolumeSpecification Configuration.setVolumeList()?
- properties.setProperty("volume." + i++,
- "${datapath}/" + toSuffixName(baseDN.toString())
- + ",create,pageSize:16K"
- + ",initialSize:50M"
- + ",extensionSize:1M"
- + ",maximumSize:10G");
- }
+
+ properties.setProperty("volume.1",
+ "${datapath}/dj"
+ + ",create,pageSize:16K"
+ + ",initialSize:50M"
+ + ",extensionSize:1M"
+ + ",maximumSize:10G");
}
/**
@@ -404,10 +392,7 @@
try {
db = new Persistit(properties);
db.initialize();
- for (DN baseDN : config.getBaseDN()) {
- final String volumeName = toSuffixName(baseDN.toString());
- volumes.put(volumeName, db.loadVolume(volumeName));
- }
+ volume = db.loadVolume("dj");
} catch (PersistitException e) {
throw new StorageRuntimeException(e);
}
@@ -497,7 +482,7 @@
}
private Exchange getExchange0(TreeName treeName, boolean create) throws PersistitException {
- return db.getExchange(getVolume(treeName), treeName.toString(), create);
+ return db.getExchange(volume, treeName.toString(), create);
}
@Override
--
Gitblit v1.10.0