From 81d27a068e194169b632b5ec5f2f5249f232a049 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 27 Feb 2015 13:50:23 +0000
Subject: [PATCH] Code cleanup
---
opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/Importer.java | 113 ++++++++++++++++++++++++++++++++++----------------------
1 files changed, 69 insertions(+), 44 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/Importer.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/Importer.java
index e46f193..a7d502d 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/Importer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/Importer.java
@@ -30,6 +30,7 @@
import static org.opends.messages.JebMessages.*;
import static org.opends.server.admin.std.meta.LocalDBIndexCfgDefn.IndexType.*;
+import static org.opends.server.backends.jeb.IndexOutputBuffer.*;
import static org.opends.server.util.DynamicConstants.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
@@ -44,6 +45,7 @@
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.OutputStream;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.util.ArrayList;
@@ -226,11 +228,9 @@
new ConcurrentHashMap<IndexKey, BlockingQueue<IndexOutputBuffer>>();
/** Map of DB containers to index managers. Used to start phase 2. */
- private final List<IndexManager> indexMgrList =
- new LinkedList<IndexManager>();
+ private final List<IndexManager> indexMgrList = new LinkedList<IndexManager>();
/** Map of DB containers to DN-based index managers. Used to start phase 2. */
- private final List<IndexManager> DNIndexMgrList =
- new LinkedList<IndexManager>();
+ private final List<IndexManager> DNIndexMgrList = new LinkedList<IndexManager>();
/**
* Futures used to indicate when the index file writers are done flushing
@@ -709,11 +709,15 @@
{
if (index != null)
{
- int id = System.identityHashCode(index);
- idContainerMap.putIfAbsent(id, index);
+ idContainerMap.putIfAbsent(getIndexID(index), index);
}
}
+ private static int getIndexID(DatabaseContainer index)
+ {
+ return System.identityHashCode(index);
+ }
+
private Suffix getSuffix(EntryContainer entryContainer)
throws ConfigException, InitializationException
{
@@ -1729,9 +1733,9 @@
indexBuffer = getNewIndexBuffer(sizeNeeded);
indexBufferMap.put(indexKey, indexBuffer);
}
- int id = System.identityHashCode(container);
- indexBuffer.add(key, entryID, id, insert);
- return id;
+ int indexID = getIndexID(container);
+ indexBuffer.add(key, entryID, indexID, insert);
+ return indexID;
}
IndexOutputBuffer getNewIndexBuffer(int size) throws InterruptedException
@@ -1986,7 +1990,6 @@
ByteBuffer key = null;
ImportIDSet insertIDSet = null;
ImportIDSet deleteIDSet = null;
- Integer indexID = null;
if (isCanceled)
{
@@ -2005,6 +2008,7 @@
return null;
}
+ Integer indexID = null;
while (!bufferSet.isEmpty())
{
IndexInputBuffer b = bufferSet.pollFirst();
@@ -2028,7 +2032,7 @@
key = ByteBuffer.allocate(b.getKeyLen());
key.flip();
- b.getKey(key);
+ b.fetchKey(key);
b.mergeIDSet(insertIDSet);
b.mergeIDSet(deleteIDSet);
@@ -2062,7 +2066,7 @@
key = ByteBuffer.allocate(b.getKeyLen());
}
key.flip();
- b.getKey(key);
+ b.fetchKey(key);
b.mergeIDSet(insertIDSet);
b.mergeIDSet(deleteIDSet);
@@ -2077,7 +2081,7 @@
if (b.hasMoreData())
{
- b.getNextRecord();
+ b.fetchNextRecord();
bufferSet.add(b);
}
}
@@ -2303,17 +2307,18 @@
private void id2child(EntryID childID) throws DirectoryException
{
- ImportIDSet idSet;
if (parentID != null)
{
- if (!id2childTree.containsKey(parentID.getDatabaseEntry().getData()))
+ ImportIDSet idSet;
+ byte[] parentIDBytes = parentID.getDatabaseEntry().getData();
+ if (!id2childTree.containsKey(parentIDBytes))
{
idSet = new ImportIDSet(1, childLimit, childDoCount);
- id2childTree.put(parentID.getDatabaseEntry().getData(), idSet);
+ id2childTree.put(parentIDBytes, idSet);
}
else
{
- idSet = id2childTree.get(parentID.getDatabaseEntry().getData());
+ idSet = id2childTree.get(parentIDBytes);
}
idSet.addEntryID(childID);
if (id2childTree.size() > DN_STATE_CACHE_SIZE)
@@ -2350,14 +2355,15 @@
if (parentID != null)
{
ImportIDSet idSet;
- if (!id2subtreeTree.containsKey(parentID.getDatabaseEntry().getData()))
+ byte[] parentIDBytes = parentID.getDatabaseEntry().getData();
+ if (!id2subtreeTree.containsKey(parentIDBytes))
{
idSet = new ImportIDSet(1, subTreeLimit, subTreeDoCount);
- id2subtreeTree.put(parentID.getDatabaseEntry().getData(), idSet);
+ id2subtreeTree.put(parentIDBytes, idSet);
}
else
{
- idSet = id2subtreeTree.get(parentID.getDatabaseEntry().getData());
+ idSet = id2subtreeTree.get(parentIDBytes);
}
idSet.addEntryID(childID);
// TODO:
@@ -2372,14 +2378,16 @@
// Just ignore.
break;
}
- if (!id2subtreeTree.containsKey(nodeID.getDatabaseEntry().getData()))
+
+ byte[] nodeIDBytes = nodeID.getDatabaseEntry().getData();
+ if (!id2subtreeTree.containsKey(nodeIDBytes))
{
idSet = new ImportIDSet(1, subTreeLimit, subTreeDoCount);
- id2subtreeTree.put(nodeID.getDatabaseEntry().getData(), idSet);
+ id2subtreeTree.put(nodeIDBytes, idSet);
}
else
{
- idSet = id2subtreeTree.get(nodeID.getDatabaseEntry().getData());
+ idSet = id2subtreeTree.get(nodeIDBytes);
}
idSet.addEntryID(childID);
}
@@ -2568,7 +2576,7 @@
{
resetStreams();
- long id = 0;
+ long bufferID = 0;
long bufferLen = 0;
for (IndexOutputBuffer b : buffers)
{
@@ -2579,7 +2587,7 @@
else
{
b.setPosition(0);
- b.setID(id++);
+ b.setBufferID(bufferID++);
indexSortedSet.add(b);
}
}
@@ -2663,50 +2671,60 @@
{
insertKeyCount = 1;
insertByteStream.reset();
- PackedInteger.writeInt(tmpArray, 0, -1);
- insertByteStream.write(tmpArray, 0, 1);
+ writePackedInt(insertByteStream, -1);
}
- int insertSize = PackedInteger.getWriteIntLength(insertKeyCount);
- PackedInteger.writeInt(tmpArray, 0, insertKeyCount);
- bufferStream.write(tmpArray, 0, insertSize);
+
+ int insertSize = writePackedInt(bufferStream, insertKeyCount);
if (insertByteStream.size() > 0)
{
insertByteStream.writeTo(bufferStream);
}
- int deleteSize = PackedInteger.getWriteIntLength(deleteKeyCount);
- PackedInteger.writeInt(tmpArray, 0, deleteKeyCount);
- bufferStream.write(tmpArray, 0, deleteSize);
+
+ int deleteSize = writePackedInt(bufferStream, deleteKeyCount);
if (deleteByteStream.size() > 0)
{
deleteByteStream.writeTo(bufferStream);
}
- return insertSize + deleteSize;
+ return insertSize + insertByteStream.size() + deleteSize + deleteByteStream.size();
}
private int writeHeader(int indexID, int keySize) throws IOException
{
bufferStream.writeInt(indexID);
- int packedSize = PackedInteger.getWriteIntLength(keySize);
- PackedInteger.writeInt(tmpArray, 0, keySize);
- bufferStream.write(tmpArray, 0, packedSize);
- return packedSize;
+ return INT_SIZE + writePackedInt(bufferStream, keySize);
}
private int writeRecord(IndexOutputBuffer b) throws IOException
{
int keySize = b.getKeySize();
- int packedSize = writeHeader(b.getIndexID(), keySize);
+ int headerSize = writeHeader(b.getIndexID(), keySize);
b.writeKey(bufferStream);
- packedSize += writeByteStreams();
- return packedSize + keySize + insertByteStream.size() + deleteByteStream.size() + 4;
+ int bodySize = writeByteStreams();
+ return headerSize + keySize + bodySize;
}
private int writeRecord(byte[] k, int indexID) throws IOException
{
- int packedSize = writeHeader(indexID, k.length);
+ int keySize = k.length;
+ int headerSize = writeHeader(indexID, keySize);
bufferStream.write(k);
- packedSize += writeByteStreams();
- return packedSize + k.length + insertByteStream.size() + deleteByteStream.size() + 4;
+ int bodySize = writeByteStreams();
+ return headerSize + keySize + bodySize;
+ }
+
+ private int writePackedInt(OutputStream stream, int value) throws IOException
+ {
+ int writeSize = PackedInteger.getWriteIntLength(value);
+ PackedInteger.writeInt(tmpArray, 0, value);
+ stream.write(tmpArray, 0, writeSize);
+ return writeSize;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public String toString()
+ {
+ return getClass().getSimpleName() + "(" + indexMgr.getBufferFileName() + ": " + indexMgr.getBufferFile() + ")";
}
}
@@ -2894,6 +2912,13 @@
{
return numberOfBuffers;
}
+
+ /** {@inheritDoc} */
+ @Override
+ public String toString()
+ {
+ return getClass().getSimpleName() + "(" + bufferFileName + ": " + bufferFile + ")";
+ }
}
/**
--
Gitblit v1.10.0