From 3a3e25cd66f19b89dec18605635c61cb2ff0d2ee Mon Sep 17 00:00:00 2001
From: dugan <dugan@localhost>
Date: Fri, 04 Apr 2008 03:31:02 +0000
Subject: [PATCH] Performance improvement for when substring indexes move from defined to undefined.
---
opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/BufferManager.java | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/BufferManager.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/BufferManager.java
index 1835c05..3af10c5 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/BufferManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/BufferManager.java
@@ -147,11 +147,18 @@
KeyHashElement curElem = iter.next();
//Never flush undefined elements.
if(curElem.isDefined()) {
+ int oldSize = curElem.getMemorySize();
Index index = curElem.getIndex();
index.insert(null, new DatabaseEntry(curElem.getKey()),
curElem.getIDSet());
- memoryUsage -= TREEMAP_ENTRY_OVERHEAD + curElem.getMemorySize();
- iter.remove();
+ if(curElem.isDefined()) {
+ memoryUsage -= TREEMAP_ENTRY_OVERHEAD + curElem.getMemorySize();
+ iter.remove();
+ } else {
+ //Went undefined don't remove the element, just substract the
+ //memory size difference.
+ memoryUsage -= (oldSize - curElem.getMemorySize());
+ }
}
} else {
//Wrapped around, start at the first element.
--
Gitblit v1.10.0