From 540ea316e77eb38f09a74b07365964c2a1161d8e Mon Sep 17 00:00:00 2001
From: Yannick Lecaillez <yannick.lecaillez@forgerock.com>
Date: Tue, 31 Mar 2015 16:02:26 +0000
Subject: [PATCH] OPENDJ-1199: Reduce memory/disk usage of JE backend (variable length encoding for EntryIDSet)
---
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VLVIndex.java | 19 ++++++++++++-------
1 files changed, 12 insertions(+), 7 deletions(-)
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 35efb01..62426db 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
@@ -28,9 +28,8 @@
import static org.opends.messages.JebMessages.*;
import static org.opends.messages.BackendMessages.*;
-import static org.opends.server.backends.pluggable.EntryIDSet.newDefinedSet;
-import static org.opends.server.util.StaticUtils.byteArrayToHexPlusAscii;
-import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
+import static org.opends.server.backends.pluggable.EntryIDSet.*;
+import static org.opends.server.util.StaticUtils.*;
import java.io.Closeable;
import java.util.Arrays;
@@ -54,6 +53,7 @@
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.meta.BackendVLVIndexCfgDefn.Scope;
import org.opends.server.admin.std.server.BackendVLVIndexCfg;
+import org.opends.server.backends.pluggable.State.IndexFlag;
import org.opends.server.backends.pluggable.spi.Cursor;
import org.opends.server.backends.pluggable.spi.ReadableTransaction;
import org.opends.server.backends.pluggable.spi.Storage;
@@ -136,7 +136,7 @@
this.sortOrder = new SortOrder(parseSortKeys(config.getSortOrder()));
this.state = state;
- this.trusted = state.getIndexTrustState(txn, this);
+ this.trusted = state.getIndexFlags(txn, getName()).contains(IndexFlag.TRUSTED);
if (!trusted && entryContainer.getHighestEntryID(txn).longValue() == 0)
{
/*
@@ -276,7 +276,7 @@
ccr.addMessage(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(getName()));
try
{
- state.putIndexTrustState(txn, this, false);
+ state.removeFlagsFromIndex(txn, getName(), IndexFlag.TRUSTED);
}
catch (final StorageRuntimeException de)
{
@@ -340,7 +340,11 @@
synchronized void setTrusted(final WriteableTransaction txn, final boolean trusted) throws StorageRuntimeException
{
this.trusted = trusted;
- state.putIndexTrustState(txn, this, trusted);
+ if ( trusted ) {
+ state.addFlagsToIndex(txn, getName(), IndexFlag.TRUSTED);
+ } else {
+ state.removeFlagsFromIndex(txn, getName(), IndexFlag.TRUSTED);
+ }
}
void addEntry(final IndexBuffer buffer, final EntryID entryID, final Entry entry) throws DirectoryException
@@ -635,7 +639,8 @@
}
}
- private long[] readRange(final Cursor cursor, final int count, final StringBuilder debugBuilder)
+ private long[] readRange(final Cursor<ByteString, ByteString> cursor, final int count,
+ final StringBuilder debugBuilder)
{
long[] selectedIDs = new long[count];
int selectedPos = 0;
--
Gitblit v1.10.0