From 50b5f3c4c4d80598ea5761b987b183e3202cc47f Mon Sep 17 00:00:00 2001
From: dugan <dugan@localhost>
Date: Mon, 07 Apr 2008 13:51:03 +0000
Subject: [PATCH] Import performance commits:
---
opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/LongImportIDSet.java | 33 ++++++++++++++++++++++++++++-----
1 files changed, 28 insertions(+), 5 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/LongImportIDSet.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/LongImportIDSet.java
index d06bccb..cc4269b 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/LongImportIDSet.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/LongImportIDSet.java
@@ -58,6 +58,11 @@
//Boolean to keep track if the instance is defined or not.
boolean isDefined=true;
+
+ //Size of the undefines.
+ private long undefinedSize = 0;
+
+
static {
if(RuntimeInformation.is64Bit()) {
LONGS_OVERHEAD = LONGS_OVERHEAD_64;
@@ -99,6 +104,12 @@
isDefined = false;
}
+ /**
+ * {@inheritDoc}
+ */
+ public long getUndefinedSize() {
+ return undefinedSize;
+ }
/**
* {@inheritDoc}
@@ -115,7 +126,8 @@
/**
* {@inheritDoc}
*/
- public boolean merge(byte[] DBbytes, ImportIDSet importIdSet, int limit) {
+ public boolean merge(byte[] DBbytes, ImportIDSet importIdSet,
+ int limit, boolean maintainCount) {
boolean incrLimitCount=false;
boolean dbUndefined = ((DBbytes[0] & 0x80) == 0x80);
@@ -142,13 +154,21 @@
/**
* {@inheritDoc}
*/
- public void addEntryID(EntryID entryID, int limit) {
+ public void addEntryID(EntryID entryID, int limit, boolean maintainCount) {
if(!isDefined()) {
- return;
+ if(maintainCount) {
+ undefinedSize++;
+ }
+ return;
}
if(isDefined() && ((count + 1) > limit)) {
isDefined = false;
array = null;
+ if(maintainCount) {
+ undefinedSize = count + 1;
+ } else {
+ undefinedSize = Long.MAX_VALUE;
+ }
count = 0;
} else {
add(entryID.longValue());
@@ -160,8 +180,11 @@
* {@inheritDoc}
*/
public byte[] toDatabase() {
- if (isDefined()) return encode(null);
- else return JebFormat.entryIDUndefinedSizeToDatabase(Long.MAX_VALUE);
+ if (isDefined()) {
+ return encode(null);
+ } else {
+ return JebFormat.entryIDUndefinedSizeToDatabase(undefinedSize);
+ }
}
/**
--
Gitblit v1.10.0