From ff24232c35db8b684d5ba165eba219d855b02666 Mon Sep 17 00:00:00 2001
From: dugan <dugan@localhost>
Date: Wed, 16 Sep 2009 21:11:23 +0000
Subject: [PATCH] Correct importing LDIF with large numbers of subtrees using small JVM heaps (128MB-512MB). Also, turn cleaner thread off.
---
opendj-sdk/opends/src/server/org/opends/server/backends/jeb/Index.java | 10 ++++------
1 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/Index.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/Index.java
index 5756655..cbbd7a3 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/Index.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/Index.java
@@ -115,6 +115,8 @@
//Thread local area to store per thread cursors.
private final ThreadLocal<Cursor> curLocal = new ThreadLocal<Cursor>();
+ private final ImportIDSet newImportIDSet = new ImportIDSet(indexEntryLimit,
+ indexEntryLimit, maintainCount);
/**
* Create a new index object.
@@ -312,12 +314,9 @@
private void
deleteKey(DatabaseEntry key, ImportIDSet importIdSet,
DatabaseEntry data) throws DatabaseException {
-
- ImportIDSet newImportIDSet=null;
OperationStatus status = read(null, key, data, LockMode.RMW);
if(status == OperationStatus.SUCCESS) {
- newImportIDSet = new ImportIDSet(data.getData().length/8,
- indexEntryLimit, maintainCount);
+ newImportIDSet.clear(false);
newImportIDSet.remove(data.getData(), importIdSet);
if(newImportIDSet.isDefined() && (newImportIDSet.size() == 0))
{
@@ -340,8 +339,7 @@
DatabaseEntry data) throws DatabaseException {
OperationStatus status = read(null, key, data, LockMode.RMW);
if(status == OperationStatus.SUCCESS) {
- ImportIDSet newImportIDSet = new ImportIDSet(data.getData().length/8,
- indexEntryLimit, maintainCount);
+ newImportIDSet.clear(false);
if (newImportIDSet.merge(data.getData(), importIdSet))
{
entryLimitExceededCount++;
--
Gitblit v1.10.0