From 7690cb21d051728c5b72a99a2c1cc50f8e907f8e Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Sat, 14 Mar 2015 00:48:34 +0000
Subject: [PATCH] OPENDJ-1848: simplify DatabaseContainer and Storage APIs
---
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/JECompressedSchema.java | 14 ---
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/RootContainer.java | 3
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/State.java | 6 -
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Index.java | 10 -
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/spi/Storage.java | 8 --
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java | 4 -
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/TracedStorage.java | 17 ----
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VLVIndex.java | 17 +--
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/ID2Entry.java | 6 -
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/spi/WriteableStorage.java | 8 --
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java | 57 +++-----------
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2URI.java | 8 -
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DatabaseContainer.java | 34 --------
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2ID.java | 7 -
opendj-server-legacy/src/main/java/org/opends/server/backends/persistit/PersistItStorage.java | 20 -----
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/NullIndex.java | 11 --
16 files changed, 35 insertions(+), 195 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/persistit/PersistItStorage.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/persistit/PersistItStorage.java
index 3789dc0..a7fb337 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/persistit/PersistItStorage.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/persistit/PersistItStorage.java
@@ -418,19 +418,6 @@
}
@Override
- public void truncateTree(final TreeName treeName)
- {
- try
- {
- getExchangeFromCache(treeName).removeAll();
- }
- catch (final PersistitException e)
- {
- throw new StorageRuntimeException(e);
- }
- }
-
- @Override
public boolean update(final TreeName treeName, final ByteSequence key, final UpdateFunction f)
{
try
@@ -565,13 +552,6 @@
DirectoryServer.deregisterAlertGenerator(this);
}
- /** {@inheritDoc} */
- @Override
- public void closeTree(final TreeName treeName)
- {
- // nothing to do, in persistit you close the volume itself
- }
-
private BufferPoolConfiguration getBufferPoolCfg()
{
return dbCfg.getBufferPoolMap().get(BUFFER_SIZE);
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java
index bc656b0..0f60dc7 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java
@@ -45,7 +45,6 @@
import org.forgerock.opendj.ldap.schema.MatchingRule;
import org.forgerock.opendj.ldap.spi.IndexQueryFactory;
import org.forgerock.opendj.ldap.spi.IndexingOptions;
-import org.forgerock.util.Utils;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.meta.BackendIndexCfgDefn.IndexType;
import org.opends.server.admin.std.server.BackendIndexCfg;
@@ -273,13 +272,10 @@
indexConfig.addChangeListener(this);
}
- /** Closes the attribute index. */
@Override
public void close()
{
- Utils.closeSilently(nameToIndexes.values());
indexConfig.removeChangeListener(this);
- // The entryContainer is responsible for closing the JE databases.
}
/**
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2ID.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2ID.java
index bf82939..a008590 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2ID.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2ID.java
@@ -30,7 +30,6 @@
import org.forgerock.opendj.ldap.ByteString;
import org.opends.server.backends.pluggable.spi.ReadableStorage;
-import org.opends.server.backends.pluggable.spi.Storage;
import org.opends.server.backends.pluggable.spi.StorageRuntimeException;
import org.opends.server.backends.pluggable.spi.TreeName;
import org.opends.server.backends.pluggable.spi.WriteableStorage;
@@ -49,14 +48,12 @@
* Create a DN2ID instance for the DN database in a given entryContainer.
*
* @param treeName The name of the DN database.
- * @param env The JE environment.
* @param entryContainer The entryContainer of the DN database.
* @throws StorageRuntimeException If an error occurs in the JE database.
*/
- DN2ID(TreeName treeName, Storage env, EntryContainer entryContainer)
- throws StorageRuntimeException
+ DN2ID(TreeName treeName, EntryContainer entryContainer) throws StorageRuntimeException
{
- super(treeName, env);
+ super(treeName);
prefixRDNComponents = entryContainer.getBaseDN().size();
}
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2URI.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2URI.java
index 20e33c4..2ddb29f 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2URI.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2URI.java
@@ -46,7 +46,6 @@
import org.forgerock.util.Pair;
import org.opends.server.backends.pluggable.spi.Cursor;
import org.opends.server.backends.pluggable.spi.ReadableStorage;
-import org.opends.server.backends.pluggable.spi.Storage;
import org.opends.server.backends.pluggable.spi.StorageRuntimeException;
import org.opends.server.backends.pluggable.spi.TreeName;
import org.opends.server.backends.pluggable.spi.WriteableStorage;
@@ -102,17 +101,14 @@
*
* @param treeName
* The name of the referral database.
- * @param storage
- * The JE environment.
* @param entryContainer
* The entryContainer of the DN database.
* @throws StorageRuntimeException
* If an error occurs in the JE database.
*/
- DN2URI(TreeName treeName, Storage storage, EntryContainer entryContainer)
- throws StorageRuntimeException
+ DN2URI(TreeName treeName, EntryContainer entryContainer) throws StorageRuntimeException
{
- super(treeName, storage);
+ super(treeName);
prefixRDNComponents = entryContainer.getBaseDN().size();
}
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DatabaseContainer.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DatabaseContainer.java
index 029ae64..dacfb17 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DatabaseContainer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DatabaseContainer.java
@@ -26,11 +26,8 @@
*/
package org.opends.server.backends.pluggable;
-import java.io.Closeable;
-
import org.opends.server.backends.pluggable.spi.Cursor;
import org.opends.server.backends.pluggable.spi.ReadableStorage;
-import org.opends.server.backends.pluggable.spi.Storage;
import org.opends.server.backends.pluggable.spi.StorageRuntimeException;
import org.opends.server.backends.pluggable.spi.TreeName;
import org.opends.server.backends.pluggable.spi.WriteableStorage;
@@ -39,23 +36,18 @@
* This class is a wrapper around the JE database object and provides basic
* read and write methods for entries.
*/
-abstract class DatabaseContainer implements Closeable
+abstract class DatabaseContainer
{
/** The name of the database within the entryContainer. */
private TreeName name;
- /** The reference to the JE Storage. */
- final Storage storage;
-
/**
* Create a new DatabaseContainer object.
*
* @param treeName The name of the entry database.
- * @param storage The JE Storage.
*/
- DatabaseContainer(TreeName treeName, Storage storage)
+ DatabaseContainer(TreeName treeName)
{
- this.storage = storage;
this.name = treeName;
}
@@ -75,28 +67,6 @@
}
/**
- * Flush any cached database information to disk and close the
- * database container.
- *
- * The database container should not be closed while other processes
- * acquired the container. The container should not be closed
- * while cursors handles into the database remain open, or
- * transactions that include operations on the database have not yet
- * been committed or aborted.
- *
- * The container may not be accessed again after this method is
- * called, regardless of the method's success or failure.
- *
- * @throws StorageRuntimeException if an error occurs.
- */
- @Override
- public synchronized void close() throws StorageRuntimeException
- {
- // FIXME: is this method needed?
- storage.closeTree(name);
- }
-
- /**
* Get the count of key/data pairs in the database in a JE database.
* This is a simple wrapper around the JE Database.count method.
* @param txn The JE transaction handle, or null if none.
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java
index eb0599a..698c897 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java
@@ -27,6 +27,7 @@
*/
package org.opends.server.backends.pluggable;
+import static org.forgerock.util.Utils.closeSilently;
import static org.opends.messages.JebMessages.*;
import static org.opends.server.backends.pluggable.JebFormat.*;
import static org.opends.server.core.DirectoryServer.*;
@@ -54,7 +55,6 @@
import org.forgerock.opendj.ldap.ByteStringBuilder;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.SearchScope;
-import org.forgerock.util.Utils;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.server.ConfigurationDeleteListener;
@@ -482,13 +482,13 @@
config.isCompactEncoding(),
rootContainer.getCompressedSchema());
- id2entry = new ID2Entry(getIndexName(ID2ENTRY_DATABASE_NAME), storage, entryDataConfig);
+ id2entry = new ID2Entry(getIndexName(ID2ENTRY_DATABASE_NAME), entryDataConfig);
id2entry.open(txn);
- dn2id = new DN2ID(getIndexName(DN2ID_DATABASE_NAME), storage, this);
+ dn2id = new DN2ID(getIndexName(DN2ID_DATABASE_NAME), this);
dn2id.open(txn);
- state = new State(getIndexName(STATE_DATABASE_NAME), storage);
+ state = new State(getIndexName(STATE_DATABASE_NAME));
state.open(txn);
if (config.isSubordinateIndexesEnabled())
@@ -501,11 +501,10 @@
// subordinate indexes will fail.
id2children = openNewNullIndex(txn, ID2CHILDREN_DATABASE_NAME, new ID2CIndexer());
id2subtree = openNewNullIndex(txn, ID2SUBTREE_DATABASE_NAME, new ID2SIndexer());
-
logger.info(NOTE_JEB_SUBORDINATE_INDEXES_DISABLED, backend.getBackendID());
}
- dn2uri = new DN2URI(getIndexName(REFERRAL_DATABASE_NAME), storage, this);
+ dn2uri = new DN2URI(getIndexName(REFERRAL_DATABASE_NAME), this);
dn2uri.open(txn);
for (String idx : config.listBackendIndexes())
@@ -546,8 +545,10 @@
private NullIndex openNewNullIndex(WriteableStorage txn, String indexId, Indexer indexer)
{
- final NullIndex index = new NullIndex(getIndexName(indexId), indexer, state, storage, txn, this);
+ final TreeName indexName = getIndexName(indexId);
+ final NullIndex index = new NullIndex(indexName, indexer, state, txn, this);
state.putIndexTrustState(txn, index, false);
+ txn.deleteTree(indexName);
index.open(txn); // No-op
return index;
}
@@ -560,20 +561,8 @@
@Override
public void close() throws StorageRuntimeException
{
- // Close core indexes.
- dn2id.close();
- id2entry.close();
- dn2uri.close();
- id2children.close();
- id2subtree.close();
- state.close();
-
- Utils.closeSilently(attrIndexMap.values());
-
- for (VLVIndex vlvIndex : vlvIndexMap.values())
- {
- vlvIndex.close();
- }
+ closeSilently(attrIndexMap.values());
+ closeSilently(vlvIndexMap.values());
// Deregister any listeners.
config.removePluggableChangeListener(this);
@@ -2831,8 +2820,6 @@
// The state database can not be removed individually.
return;
}
-
- database.close();
txn.deleteTree(database.getName());
if(database instanceof Index)
{
@@ -2880,13 +2867,6 @@
{
final List<DatabaseContainer> databases = new ArrayList<DatabaseContainer>();
listDatabases(databases);
-
- // close the containers.
- for(DatabaseContainer db : databases)
- {
- db.close();
- }
-
try
{
// Rename in transaction.
@@ -3008,12 +2988,8 @@
{
// Disabling subordinate indexes. Use a null index and ensure that
// future attempts to use the real indexes will fail.
- id2children.close();
id2children = openNewNullIndex(txn, ID2CHILDREN_DATABASE_NAME, new ID2CIndexer());
-
- id2subtree.close();
id2subtree = openNewNullIndex(txn, ID2SUBTREE_DATABASE_NAME, new ID2SIndexer());
-
logger.info(NOTE_JEB_SUBORDINATE_INDEXES_DISABLED, cfg.getBackendId());
}
}
@@ -3083,16 +3059,11 @@
{
final List<DatabaseContainer> databases = new ArrayList<DatabaseContainer>();
listDatabases(databases);
-
- for(DatabaseContainer db : databases)
- {
- db.close();
- }
try
{
for (DatabaseContainer db : databases)
{
- txn.truncateTree(db.getName());
+ txn.deleteTree(db.getName());
}
}
finally
@@ -3122,7 +3093,6 @@
void clearDatabase(WriteableStorage txn, DatabaseContainer database)
throws StorageRuntimeException
{
- database.close();
try
{
txn.deleteTree(database.getName());
@@ -3169,8 +3139,7 @@
private Index newIndex(WriteableStorage txn, String name, Indexer indexer)
{
- final Index index = new Index(getIndexName(name),
- storage, indexer, state, config.getIndexEntryLimit(), 0, true, txn, this);
+ final Index index = new Index(getIndexName(name), indexer, state, config.getIndexEntryLimit(), 0, true, txn, this);
index.open(txn);
if (!index.isTrusted())
{
@@ -3191,7 +3160,7 @@
Index newIndexForAttribute(WriteableStorage txn, TreeName indexName, Indexer indexer, int indexEntryLimit)
{
final int cursorEntryLimit = 100000;
- return new Index(indexName, storage, indexer, state, indexEntryLimit, cursorEntryLimit, false, txn, this);
+ return new Index(indexName, indexer, state, indexEntryLimit, cursorEntryLimit, false, txn, this);
}
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/ID2Entry.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/ID2Entry.java
index 875e543..9cd2d9e 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/ID2Entry.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/ID2Entry.java
@@ -45,7 +45,6 @@
import org.forgerock.opendj.ldap.DecodeException;
import org.opends.server.api.CompressedSchema;
import org.opends.server.backends.pluggable.spi.ReadableStorage;
-import org.opends.server.backends.pluggable.spi.Storage;
import org.opends.server.backends.pluggable.spi.StorageRuntimeException;
import org.opends.server.backends.pluggable.spi.TreeName;
import org.opends.server.backends.pluggable.spi.WriteableStorage;
@@ -225,16 +224,15 @@
* Create a new ID2Entry object.
*
* @param name The name of the entry database.
- * @param storage The JE Storage.
* @param dataConfig The desired compression and encryption options for data
* stored in the entry database.
* @param entryContainer The entryContainer of the entry database.
* @throws StorageRuntimeException If an error occurs in the JE database.
*
*/
- ID2Entry(TreeName name, Storage storage, DataConfig dataConfig) throws StorageRuntimeException
+ ID2Entry(TreeName name, DataConfig dataConfig) throws StorageRuntimeException
{
- super(name, storage);
+ super(name);
this.dataConfig = dataConfig;
}
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Index.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Index.java
index 8406d26..8b5b7d8 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Index.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Index.java
@@ -43,7 +43,6 @@
import org.opends.server.backends.pluggable.IndexBuffer.BufferedIndexValues;
import org.opends.server.backends.pluggable.spi.Cursor;
import org.opends.server.backends.pluggable.spi.ReadableStorage;
-import org.opends.server.backends.pluggable.spi.Storage;
import org.opends.server.backends.pluggable.spi.StorageRuntimeException;
import org.opends.server.backends.pluggable.spi.TreeName;
import org.opends.server.backends.pluggable.spi.WriteableStorage;
@@ -111,7 +110,6 @@
/**
* Create a new index object.
* @param name The name of the index database within the entryContainer.
- * @param storage The JE Storage
* @param indexer The indexer object to construct index keys from LDAP
* attribute values.
* @param state The state database to persist index state info.
@@ -124,12 +122,10 @@
* @param entryContainer The database entryContainer holding this index.
* @throws StorageRuntimeException If an error occurs in the JE database.
*/
- Index(TreeName name, Storage storage, Indexer indexer,
- State state, int indexEntryLimit, int cursorEntryLimit,
- boolean maintainCount, WriteableStorage txn, EntryContainer entryContainer)
- throws StorageRuntimeException
+ Index(TreeName name, Indexer indexer, State state, int indexEntryLimit, int cursorEntryLimit, boolean maintainCount,
+ WriteableStorage txn, EntryContainer entryContainer) throws StorageRuntimeException
{
- super(name, storage);
+ super(name);
this.indexer = indexer;
this.indexEntryLimit = indexEntryLimit;
this.cursorEntryLimit = cursorEntryLimit;
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/JECompressedSchema.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/JECompressedSchema.java
index c2b5602..06f3b20 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/JECompressedSchema.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/JECompressedSchema.java
@@ -100,20 +100,6 @@
load(txn);
}
-
-
- /**
- * Closes the databases and releases any resources held by this compressed
- * schema manager.
- */
- public void close()
- {
- storage.closeTree(adTreeName);
- storage.closeTree(ocTreeName);
-
- storage = null;
- }
-
/** {@inheritDoc} */
@Override
protected void storeAttribute(final byte[] encodedAttribute,
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/NullIndex.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/NullIndex.java
index 49b2f6d..2c9d460 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/NullIndex.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/NullIndex.java
@@ -31,7 +31,6 @@
import org.forgerock.opendj.ldap.ConditionResult;
import org.forgerock.opendj.ldap.spi.IndexingOptions;
import org.opends.server.backends.pluggable.spi.ReadableStorage;
-import org.opends.server.backends.pluggable.spi.Storage;
import org.opends.server.backends.pluggable.spi.StorageRuntimeException;
import org.opends.server.backends.pluggable.spi.TreeName;
import org.opends.server.backends.pluggable.spi.WriteableStorage;
@@ -45,10 +44,10 @@
final class NullIndex extends Index
{
- NullIndex(TreeName name, Indexer indexer, State state, Storage storage, WriteableStorage txn,
+ NullIndex(TreeName name, Indexer indexer, State state, WriteableStorage txn,
EntryContainer entryContainer) throws StorageRuntimeException
{
- super(name, storage, indexer, state, 0, 0, false, txn, entryContainer);
+ super(name, indexer, state, 0, 0, false, txn, entryContainer);
}
@Override
@@ -160,12 +159,6 @@
}
@Override
- public void close() throws StorageRuntimeException
- {
- // Do nothing.
- }
-
- @Override
long getRecordCount(ReadableStorage txn) throws StorageRuntimeException
{
return 0;
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/RootContainer.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/RootContainer.java
index f13de4c..41a28f1 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/RootContainer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/RootContainer.java
@@ -549,10 +549,7 @@
ec.exclusiveLock.unlock();
}
}
-
- compressedSchema.close();
config.removePluggableChangeListener(this);
-
if (storage != null)
{
storage.close();
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/State.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/State.java
index 3c5af85..2f61bd7 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/State.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/State.java
@@ -28,7 +28,6 @@
import org.forgerock.opendj.ldap.ByteString;
import org.opends.server.backends.pluggable.spi.ReadableStorage;
-import org.opends.server.backends.pluggable.spi.Storage;
import org.opends.server.backends.pluggable.spi.StorageRuntimeException;
import org.opends.server.backends.pluggable.spi.TreeName;
import org.opends.server.backends.pluggable.spi.WriteableStorage;
@@ -47,11 +46,10 @@
* Create a new State object.
*
* @param name The name of the entry database.
- * @param env The JE Storage.
*/
- State(TreeName name, Storage env)
+ State(TreeName name)
{
- super(name, env);
+ super(name);
}
/**
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/TracedStorage.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/TracedStorage.java
index 64679f0..2a5d22d 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/TracedStorage.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/TracedStorage.java
@@ -202,13 +202,6 @@
}
@Override
- public void truncateTree(final TreeName name)
- {
- txn.truncateTree(name);
- logger.trace("Storage.WriteableStorage.truncateTree(%s, %s)", backendId, name);
- }
-
- @Override
public boolean update(final TreeName name, final ByteSequence key, final UpdateFunction f)
{
final boolean isUpdated = txn.update(name, key, f);
@@ -239,16 +232,6 @@
}
@Override
- public void closeTree(final TreeName name)
- {
- storage.closeTree(name);
- if (logger.isTraceEnabled())
- {
- logger.trace("Storage.closeTree(%s, %s)", backendId, name);
- }
- }
-
- @Override
public File getDirectory()
{
return storage.getDirectory();
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VLVIndex.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VLVIndex.java
index 55b75fa..002a33e 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VLVIndex.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VLVIndex.java
@@ -29,6 +29,7 @@
import static org.opends.messages.JebMessages.*;
import static org.opends.server.util.StaticUtils.*;
+import java.io.Closeable;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
@@ -85,7 +86,7 @@
* to its own key.
*/
class VLVIndex extends DatabaseContainer
- implements ConfigurationChangeListener<BackendVLVIndexCfg>
+ implements ConfigurationChangeListener<BackendVLVIndexCfg>, Closeable
{
private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
@@ -113,6 +114,8 @@
private SearchFilter filter;
private SearchScope scope;
+ /** The storage associated with this index. */
+ private final Storage storage;
/**
* Create a new VLV vlvIndex object.
@@ -131,12 +134,13 @@
VLVIndex(BackendVLVIndexCfg config, State state, Storage storage, EntryContainer entryContainer, WriteableStorage txn)
throws StorageRuntimeException, ConfigException
{
- super(new TreeName(entryContainer.getDatabasePrefix(), "vlv." + config.getName()), storage);
+ super(new TreeName(entryContainer.getDatabasePrefix(), "vlv." + config.getName()));
this.config = config;
this.baseDN = config.getBaseDN();
this.scope = valueOf(config.getScope());
this.sortedSetCapacity = config.getMaxBlockSize();
+ this.storage = storage;
try
{
@@ -245,16 +249,9 @@
return bytes.toInt();
}
- /**
- * Close the VLV index.
- *
- * @throws StorageRuntimeException if a JE database error occurs while
- * closing the index.
- */
@Override
- public void close() throws StorageRuntimeException
+ public void close()
{
- super.close();
this.config.removeChangeListener(this);
}
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/spi/Storage.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/spi/Storage.java
index 0603289..780e90f 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/spi/Storage.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/spi/Storage.java
@@ -79,14 +79,6 @@
*/
void write(WriteOperation writeOperation) throws Exception;
- /**
- * Closes the tree identified by the provided name.
- *
- * @param treeName
- * the tree name
- */
- void closeTree(TreeName treeName);
-
/** {@inheritDoc} */
@Override
void close();
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/spi/WriteableStorage.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/spi/WriteableStorage.java
index a501872..fefc656 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/spi/WriteableStorage.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/spi/WriteableStorage.java
@@ -41,14 +41,6 @@
void openTree(TreeName name);
/**
- * Truncates the tree identified by the provided name. It removes all the records in the tree.
- *
- * @param name
- * the tree name
- */
- void truncateTree(TreeName name);
-
- /**
* Renames the tree from the old to the new name.
*
* @param oldName
--
Gitblit v1.10.0