From c55ad7c550a887b411d5ddc57ce6bd89822b02e2 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 18 Feb 2015 17:21:56 +0000
Subject: [PATCH] Improved importLDIF code.
---
opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/Importer.java | 108 +++++++++++----------
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java | 23 +---
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java | 130 +++++++++++++------------
3 files changed, 129 insertions(+), 132 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 eec3412..c31ebfc 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
@@ -678,9 +678,8 @@
*/
private void generateIndexID(Suffix suffix)
{
- for (Map.Entry<AttributeType, AttributeIndex> mapEntry : suffix.getAttrIndexMap().entrySet())
+ for (AttributeIndex attributeIndex : suffix.getAttrIndexMap().values())
{
- AttributeIndex attributeIndex = mapEntry.getValue();
putInIdContainerMap(attributeIndex.getEqualityIndex());
putInIdContainerMap(attributeIndex.getPresenceIndex());
putInIdContainerMap(attributeIndex.getSubstringIndex());
@@ -1444,6 +1443,7 @@
processEntry(entry, suffix);
}
flushIndexBuffers();
+ return null;
}
catch (Exception e)
{
@@ -1451,7 +1451,6 @@
isCanceled = true;
throw e;
}
- return null;
}
void processEntry(Entry entry, Suffix suffix)
@@ -1498,7 +1497,7 @@
for (Map.Entry<AttributeType, AttributeIndex> mapEntry : suffix.getAttrIndexMap().entrySet())
{
AttributeType attributeType = mapEntry.getKey();
- fillIndexKey(suffix, mapEntry, entry, attributeType, entryID);
+ fillIndexKey(suffix, mapEntry.getValue(), entry, attributeType, entryID);
}
}
@@ -1533,6 +1532,7 @@
private final Map<IndexKey, IndexOutputBuffer> indexBufferMap = new HashMap<IndexKey, IndexOutputBuffer>();
private final Set<ByteString> insertKeySet = new HashSet<ByteString>();
private final EntryInformation entryInfo = new EntryInformation();
+ private final IndexKey dnIndexKey = new IndexKey(dnType, ImportIndexType.DN, 1);
private DatabaseEntry keyEntry = new DatabaseEntry();
private DatabaseEntry valEntry = new DatabaseEntry();
@@ -1559,6 +1559,7 @@
processEntry(entry, entryID, suffix);
}
flushIndexBuffers();
+ return null;
}
catch (Exception e)
{
@@ -1566,7 +1567,6 @@
isCanceled = true;
throw e;
}
- return null;
}
void processEntry(Entry entry, EntryID entryID, Suffix suffix)
@@ -1625,16 +1625,14 @@
AttributeType attributeType = mapEntry.getKey();
if (entry.hasAttribute(attributeType))
{
- fillIndexKey(suffix, mapEntry, entry, attributeType, entryID);
+ fillIndexKey(suffix, mapEntry.getValue(), entry, attributeType, entryID);
}
}
}
- void fillIndexKey(Suffix suffix, Map.Entry<AttributeType, AttributeIndex> mapEntry, Entry entry,
- AttributeType attrType, EntryID entryID)
- throws DatabaseException, InterruptedException, DirectoryException, JebException
+ void fillIndexKey(Suffix suffix, AttributeIndex attrIndex, Entry entry, AttributeType attrType, EntryID entryID)
+ throws DatabaseException, InterruptedException, DirectoryException, JebException
{
- final AttributeIndex attrIndex = mapEntry.getValue();
final IndexingOptions options = attrIndex.getIndexingOptions();
processAttribute(attrIndex.getEqualityIndex(), ImportIndexType.EQUALITY, entry, attrType, entryID, options);
@@ -1694,20 +1692,20 @@
void flushIndexBuffers() throws InterruptedException, ExecutionException
{
- Set<Map.Entry<IndexKey, IndexOutputBuffer>> set = indexBufferMap.entrySet();
- Iterator<Map.Entry<IndexKey, IndexOutputBuffer>> setIterator = set.iterator();
- while (setIterator.hasNext())
+ final ArrayList<Future<Void>> futures = new ArrayList<Future<Void>>();
+ Iterator<Map.Entry<IndexKey, IndexOutputBuffer>> it = indexBufferMap.entrySet().iterator();
+ while (it.hasNext())
{
- Map.Entry<IndexKey, IndexOutputBuffer> e = setIterator.next();
+ Map.Entry<IndexKey, IndexOutputBuffer> e = it.next();
IndexKey indexKey = e.getKey();
IndexOutputBuffer indexBuffer = e.getValue();
- setIterator.remove();
+ it.remove();
indexBuffer.setComparator(indexComparator);
indexBuffer.setIndexKey(indexKey);
indexBuffer.discard();
- Future<Void> future = bufferSortService.submit(new SortTask(indexBuffer));
- future.get();
+ futures.add(bufferSortService.submit(new SortTask(indexBuffer)));
}
+ getAll(futures);
}
int processKey(DatabaseContainer container, byte[] key, EntryID entryID,
@@ -1764,8 +1762,7 @@
{
DN2ID dn2id = suffix.getDN2ID();
byte[] dnBytes = JebFormat.dnToDNKey(dn, suffix.getBaseDN().size());
- IndexKey indexKey = new IndexKey(dnType, ImportIndexType.DN, 1);
- int id = processKey(dn2id, dnBytes, entryID, indexComparator, indexKey, true);
+ int id = processKey(dn2id, dnBytes, entryID, indexComparator, dnIndexKey, true);
idECMap.putIfAbsent(id, suffix.getEntryContainer());
}
@@ -2090,6 +2087,7 @@
addToDB(insertIDSet, deleteIDSet, indexID);
}
}
+ return null;
}
catch (Exception e)
{
@@ -2100,7 +2098,6 @@
{
endWriteTask();
}
- return null;
}
private void addToDB(ImportIDSet insertSet, ImportIDSet deleteSet,
@@ -2521,6 +2518,7 @@
break;
}
}
+ return null;
}
catch (IOException e)
{
@@ -2534,7 +2532,6 @@
close(bufferStream, bufferIndexStream);
indexMgr.setBufferInfo(bufferCount, indexMgr.getBufferFile().length());
}
- return null;
}
private long writeIndexBuffer(IndexOutputBuffer indexBuffer) throws IOException
@@ -2740,11 +2737,12 @@
return null;
}
indexBuffer.sort();
- if (!indexKeyQueueMap.containsKey(indexBuffer.getIndexKey()))
+ final IndexKey indexKey = indexBuffer.getIndexKey();
+ if (!indexKeyQueueMap.containsKey(indexKey))
{
- createIndexWriterTask(indexBuffer.getIndexKey());
+ createIndexWriterTask(indexKey);
}
- indexKeyQueueMap.get(indexBuffer.getIndexKey()).add(indexBuffer);
+ indexKeyQueueMap.get(indexKey).add(indexBuffer);
return null;
}
@@ -3051,6 +3049,7 @@
entriesProcessed.getAndIncrement();
}
flushIndexBuffers();
+ return null;
}
catch (Exception e)
{
@@ -3063,7 +3062,6 @@
{
close(cursor);
}
- return null;
}
/**
@@ -3133,7 +3131,7 @@
}
if (mode == RebuildMode.ALL || vlvIndexes.isEmpty())
{
- vlvIndexes.addAll(new LinkedList<VLVIndex>(entryContainer.getVLVIndexes()));
+ vlvIndexes.addAll(entryContainer.getVLVIndexes());
}
break;
@@ -3223,16 +3221,16 @@
}
}
- private void fillIndexMap(final AttributeType attrType, final Index partialAttrIndex,
+ private void fillIndexMap(final AttributeType attrType, final Index index,
final ImportIndexType importIndexType, final boolean onlyDegraded)
{
- if (partialAttrIndex != null
- && (!onlyDegraded || !partialAttrIndex.isTrusted())
- && (!rebuildConfig.isClearDegradedState() || partialAttrIndex.getRecordCount() == 0))
+ if (index != null
+ && (!onlyDegraded || !index.isTrusted())
+ && (!rebuildConfig.isClearDegradedState() || index.getRecordCount() == 0))
{
- putInIdContainerMap(partialAttrIndex);
- final IndexKey indexKey = new IndexKey(attrType, importIndexType, partialAttrIndex.getIndexEntryLimit());
- indexMap.put(indexKey, partialAttrIndex);
+ putInIdContainerMap(index);
+ final IndexKey key = new IndexKey(attrType, importIndexType, index.getIndexEntryLimit());
+ indexMap.put(key, index);
}
}
@@ -3299,14 +3297,7 @@
ec.getID2Children().setTrusted(null, trusted);
ec.getID2Subtree().setTrusted(null, trusted);
}
- if (!indexMap.isEmpty())
- {
- for (Map.Entry<IndexKey, Index> mapEntry : indexMap.entrySet())
- {
- Index index = mapEntry.getValue();
- index.setTrusted(null, trusted);
- }
- }
+ setTrusted(indexMap.values(), trusted);
if (!vlvIndexes.isEmpty())
{
for (VLVIndex vlvIndex : vlvIndexes)
@@ -3318,13 +3309,7 @@
{
for (Collection<Index> subIndexes : extensibleIndexMap.values())
{
- if (subIndexes != null)
- {
- for (Index subIndex : subIndexes)
- {
- subIndex.setTrusted(null, trusted);
- }
- }
+ setTrusted(subIndexes, trusted);
}
}
}
@@ -3334,6 +3319,17 @@
}
}
+ private void setTrusted(Collection<Index> indexes, boolean trusted)
+ {
+ if (indexes != null && !indexes.isEmpty())
+ {
+ for (Index index : indexes)
+ {
+ index.setTrusted(null, trusted);
+ }
+ }
+ }
+
private void phaseOne() throws DatabaseException, InterruptedException,
ExecutionException
{
@@ -3612,8 +3608,7 @@
AttributeIndex attributeIndex = entryContainer.getAttributeIndex(attrType);
IndexingOptions options = attributeIndex.getIndexingOptions();
Index index = mapEntry.getValue();
- processAttribute(index, entry, entryID, options,
- new IndexKey(attrType, key.getIndexType(), index.getIndexEntryLimit()));
+ processAttribute(index, entry, entryID, options, key);
}
}
}
@@ -4046,7 +4041,7 @@
* multiple suffix index elements into a single queue and/or maps based on
* both attribute type and index type (ie., cn.equality, sn.equality,...).
*/
- public class IndexKey
+ public static class IndexKey
{
private final AttributeType attributeType;
@@ -4150,6 +4145,17 @@
{
return entryLimit;
}
+
+ /** {@inheritDoc} */
+ @Override
+ public String toString()
+ {
+ return getClass().getSimpleName()
+ + "(attributeType=" + attributeType
+ + ", indexType=" + indexType
+ + ", entryLimit=" + entryLimit
+ + ")";
+ }
}
/**
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java
index b1eb8f8..376e990 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java
@@ -3163,33 +3163,20 @@
/**
* Clear the contents for a database from disk.
*
+ * @param txn The database transaction
* @param database The database to clear.
* @throws StorageRuntimeException if a JE database error occurs.
*/
- public void clearDatabase(final DatabaseContainer database) throws StorageRuntimeException
+ public void clearDatabase(WriteableStorage txn, DatabaseContainer database) throws StorageRuntimeException
{
database.close();
try
{
- storage.write(new WriteOperation()
- {
- @Override
- public void run(WriteableStorage txn) throws Exception
- {
- try
- {
- txn.deleteTree(database.getName());
- }
- finally
- {
- database.open(txn);
- }
- }
- });
+ txn.deleteTree(database.getName());
}
- catch (Exception e)
+ finally
{
- throw new StorageRuntimeException(e);
+ database.open(txn);
}
if(logger.isTraceEnabled())
{
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java
index 1b40aef..214bb71 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java
@@ -670,9 +670,8 @@
*/
private void generateIndexID(Suffix suffix)
{
- for (Map.Entry<AttributeType, AttributeIndex> mapEntry : suffix.getAttrIndexMap().entrySet())
+ for (AttributeIndex attributeIndex : suffix.getAttrIndexMap().values())
{
- AttributeIndex attributeIndex = mapEntry.getValue();
putInIdContainerMap(attributeIndex.getEqualityIndex());
putInIdContainerMap(attributeIndex.getPresenceIndex());
putInIdContainerMap(attributeIndex.getSubstringIndex());
@@ -1398,6 +1397,7 @@
processEntry(entry, suffix);
}
flushIndexBuffers();
+ return null;
}
catch (Exception e)
{
@@ -1405,7 +1405,6 @@
isCanceled = true;
throw e;
}
- return null;
}
void processEntry(Entry entry, Suffix suffix)
@@ -1452,7 +1451,7 @@
for (Map.Entry<AttributeType, AttributeIndex> mapEntry : suffix.getAttrIndexMap().entrySet())
{
AttributeType attributeType = mapEntry.getKey();
- fillIndexKey(suffix, mapEntry, entry, attributeType, entryID);
+ fillIndexKey(suffix, mapEntry.getValue(), entry, attributeType, entryID);
}
}
@@ -1488,6 +1487,7 @@
private final Map<IndexKey, IndexOutputBuffer> indexBufferMap = new HashMap<IndexKey, IndexOutputBuffer>();
private final Set<ByteString> insertKeySet = new HashSet<ByteString>();
private final EntryInformation entryInfo = new EntryInformation();
+ private final IndexKey dnIndexKey = new IndexKey(dnType, ImportIndexType.DN, 1);
public ImportTask(final WriteableStorage txn)
{
@@ -1517,6 +1517,7 @@
processEntry(entry, entryID, suffix);
}
flushIndexBuffers();
+ return null;
}
catch (Exception e)
{
@@ -1524,7 +1525,6 @@
isCanceled = true;
throw e;
}
- return null;
}
void processEntry(Entry entry, EntryID entryID, Suffix suffix)
@@ -1583,16 +1583,14 @@
AttributeType attributeType = mapEntry.getKey();
if (entry.hasAttribute(attributeType))
{
- fillIndexKey(suffix, mapEntry, entry, attributeType, entryID);
+ fillIndexKey(suffix, mapEntry.getValue(), entry, attributeType, entryID);
}
}
}
- void fillIndexKey(Suffix suffix, Map.Entry<AttributeType, AttributeIndex> mapEntry, Entry entry,
- AttributeType attrType, EntryID entryID)
- throws InterruptedException, DirectoryException, StorageRuntimeException
+ void fillIndexKey(Suffix suffix, AttributeIndex attrIndex, Entry entry, AttributeType attrType, EntryID entryID)
+ throws InterruptedException, DirectoryException, StorageRuntimeException
{
- final AttributeIndex attrIndex = mapEntry.getValue();
final IndexingOptions options = attrIndex.getIndexingOptions();
processAttribute(attrIndex.getEqualityIndex(), ImportIndexType.EQUALITY, entry, attrType, entryID, options);
@@ -1655,20 +1653,20 @@
void flushIndexBuffers() throws InterruptedException, ExecutionException
{
- Set<Map.Entry<IndexKey, IndexOutputBuffer>> set = indexBufferMap.entrySet();
- Iterator<Map.Entry<IndexKey, IndexOutputBuffer>> setIterator = set.iterator();
- while (setIterator.hasNext())
+ final ArrayList<Future<Void>> futures = new ArrayList<Future<Void>>();
+ Iterator<Map.Entry<IndexKey, IndexOutputBuffer>> it = indexBufferMap.entrySet().iterator();
+ while (it.hasNext())
{
- Map.Entry<IndexKey, IndexOutputBuffer> e = setIterator.next();
+ Map.Entry<IndexKey, IndexOutputBuffer> e = it.next();
IndexKey indexKey = e.getKey();
IndexOutputBuffer indexBuffer = e.getValue();
- setIterator.remove();
+ it.remove();
indexBuffer.setComparator(indexComparator);
indexBuffer.setIndexKey(indexKey);
indexBuffer.discard();
- Future<Void> future = bufferSortService.submit(new SortTask(indexBuffer));
- future.get();
+ futures.add(bufferSortService.submit(new SortTask(indexBuffer)));
}
+ getAll(futures);
}
int processKey(DatabaseContainer container, ByteString key, EntryID entryID,
@@ -1725,8 +1723,7 @@
{
DN2ID dn2id = suffix.getDN2ID();
ByteString dnBytes = JebFormat.dnToDNKey(dn, suffix.getBaseDN().size());
- IndexKey indexKey = new IndexKey(dnType, ImportIndexType.DN, 1);
- int id = processKey(dn2id, dnBytes, entryID, indexComparator, indexKey, true);
+ int id = processKey(dn2id, dnBytes, entryID, indexComparator, dnIndexKey, true);
idECMap.putIfAbsent(id, suffix.getEntryContainer());
}
@@ -2048,6 +2045,7 @@
addToDB(insertIDSet, deleteIDSet, indexID);
}
}
+ return null;
}
catch (Exception e)
{
@@ -2058,7 +2056,6 @@
{
endWriteTask();
}
- return null;
}
private void addToDB(ImportIDSet insertSet, ImportIDSet deleteSet, int indexID) throws DirectoryException
@@ -2391,7 +2388,6 @@
private final ByteArrayOutputStream deleteByteStream = new ByteArrayOutputStream(2 * bufferSize);
private final DataOutputStream bufferStream;
private final DataOutputStream bufferIndexStream;
- private final byte[] tmpArray = new byte[8];
private final TreeSet<IndexOutputBuffer> indexSortedSet = new TreeSet<IndexOutputBuffer>();
private int insertKeyCount, deleteKeyCount;
private int bufferCount;
@@ -2466,6 +2462,7 @@
break;
}
}
+ return null;
}
catch (IOException e)
{
@@ -2479,7 +2476,6 @@
close(bufferStream, bufferIndexStream);
indexMgr.setBufferInfo(bufferCount, indexMgr.getBufferFile().length());
}
- return null;
}
private long writeIndexBuffer(IndexOutputBuffer indexBuffer) throws IOException
@@ -2680,11 +2676,12 @@
return null;
}
indexBuffer.sort();
- if (!indexKeyQueueMap.containsKey(indexBuffer.getIndexKey()))
+ final IndexKey indexKey = indexBuffer.getIndexKey();
+ if (!indexKeyQueueMap.containsKey(indexKey))
{
- createIndexWriterTask(indexBuffer.getIndexKey());
+ createIndexWriterTask(indexKey);
}
- indexKeyQueueMap.get(indexBuffer.getIndexKey()).add(indexBuffer);
+ indexKeyQueueMap.get(indexKey).add(indexBuffer);
return null;
}
@@ -2989,6 +2986,7 @@
entriesProcessed.getAndIncrement();
}
flushIndexBuffers();
+ return null;
}
catch (Exception e)
{
@@ -3001,7 +2999,6 @@
{
close(cursor);
}
- return null;
}
/**
@@ -3028,7 +3025,7 @@
// If not in a 'clear degraded state' operation,
// need to rebuild the indexes.
setRebuildListIndexesTrusted(false);
- clearIndexes(true);
+ clearIndexes(txn, true);
phaseOne();
if (isCanceled)
{
@@ -3072,7 +3069,7 @@
}
if (mode == RebuildMode.ALL || vlvIndexes.isEmpty())
{
- vlvIndexes.addAll(new LinkedList<VLVIndex>(entryContainer.getVLVIndexes()));
+ vlvIndexes.addAll(entryContainer.getVLVIndexes());
}
break;
@@ -3161,44 +3158,43 @@
}
}
- private void fillIndexMap(final AttributeType attrType, final Index partialAttrIndex,
+ private void fillIndexMap(final AttributeType attrType, final Index index,
final ImportIndexType importIndexType, final boolean onlyDegraded)
{
- if (partialAttrIndex != null
- && (!onlyDegraded || !partialAttrIndex.isTrusted())
- && (!rebuildConfig.isClearDegradedState() || partialAttrIndex.getRecordCount(txn) == 0))
+ if (index != null && (!onlyDegraded || !index.isTrusted())
+ && (!rebuildConfig.isClearDegradedState() || index.getRecordCount(txn) == 0))
{
- putInIdContainerMap(partialAttrIndex);
- final IndexKey indexKey = new IndexKey(attrType, importIndexType, partialAttrIndex.getIndexEntryLimit());
- indexMap.put(indexKey, partialAttrIndex);
+ putInIdContainerMap(index);
+ final IndexKey key = new IndexKey(attrType, importIndexType, index.getIndexEntryLimit());
+ indexMap.put(key, index);
}
}
- private void clearIndexes(boolean onlyDegraded) throws StorageRuntimeException
+ private void clearIndexes(WriteableStorage txn, boolean onlyDegraded) throws StorageRuntimeException
{
// Clears all the entry's container databases which are containing the indexes
if (!onlyDegraded)
{
// dn2uri does not have a trusted status.
- entryContainer.clearDatabase(entryContainer.getDN2URI());
+ entryContainer.clearDatabase(txn, entryContainer.getDN2URI());
}
if (!onlyDegraded
|| !entryContainer.getID2Children().isTrusted()
|| !entryContainer.getID2Subtree().isTrusted())
{
- entryContainer.clearDatabase(entryContainer.getDN2ID());
- entryContainer.clearDatabase(entryContainer.getID2Children());
- entryContainer.clearDatabase(entryContainer.getID2Subtree());
+ entryContainer.clearDatabase(txn, entryContainer.getDN2ID());
+ entryContainer.clearDatabase(txn, entryContainer.getID2Children());
+ entryContainer.clearDatabase(txn, entryContainer.getID2Subtree());
}
if (!indexMap.isEmpty())
{
- for (final Map.Entry<IndexKey, Index> mapEntry : indexMap.entrySet())
+ for (final Index index : indexMap.values())
{
- if (!onlyDegraded || !mapEntry.getValue().isTrusted())
+ if (!onlyDegraded || !index.isTrusted())
{
- entryContainer.clearDatabase(mapEntry.getValue());
+ entryContainer.clearDatabase(txn, index);
}
}
}
@@ -3211,7 +3207,7 @@
{
for (final Index subIndex : subIndexes)
{
- entryContainer.clearDatabase(subIndex);
+ entryContainer.clearDatabase(txn, subIndex);
}
}
}
@@ -3221,7 +3217,7 @@
{
if (!onlyDegraded || !vlvIndex.isTrusted())
{
- entryContainer.clearDatabase(vlvIndex);
+ entryContainer.clearDatabase(txn, vlvIndex);
}
}
}
@@ -3236,14 +3232,7 @@
ec.getID2Children().setTrusted(txn, trusted);
ec.getID2Subtree().setTrusted(txn, trusted);
}
- if (!indexMap.isEmpty())
- {
- for (Map.Entry<IndexKey, Index> mapEntry : indexMap.entrySet())
- {
- Index index = mapEntry.getValue();
- index.setTrusted(txn, trusted);
- }
- }
+ setTrusted(indexMap.values(), trusted);
if (!vlvIndexes.isEmpty())
{
for (VLVIndex vlvIndex : vlvIndexes)
@@ -3255,13 +3244,7 @@
{
for (Collection<Index> subIndexes : extensibleIndexMap.values())
{
- if (subIndexes != null)
- {
- for (Index subIndex : subIndexes)
- {
- subIndex.setTrusted(txn, trusted);
- }
- }
+ setTrusted(subIndexes, trusted);
}
}
}
@@ -3271,6 +3254,17 @@
}
}
+ private void setTrusted(final Collection<Index> indexes, boolean trusted)
+ {
+ if (indexes != null && !indexes.isEmpty())
+ {
+ for (Index index : indexes)
+ {
+ index.setTrusted(txn, trusted);
+ }
+ }
+ }
+
private void phaseOne() throws StorageRuntimeException, InterruptedException,
ExecutionException
{
@@ -3549,8 +3543,7 @@
AttributeIndex attributeIndex = entryContainer.getAttributeIndex(attrType);
IndexingOptions options = attributeIndex.getIndexingOptions();
Index index = mapEntry.getValue();
- processAttribute(index, entry, entryID, options,
- new IndexKey(attrType, key.getIndexType(), index.getIndexEntryLimit()));
+ processAttribute(index, entry, entryID, options, key);
}
}
}
@@ -3823,7 +3816,7 @@
* multiple suffix index elements into a single queue and/or maps based on
* both attribute type and index type (ie., cn.equality, sn.equality,...).
*/
- public class IndexKey
+ public static class IndexKey
{
private final AttributeType attributeType;
@@ -3927,6 +3920,17 @@
{
return entryLimit;
}
+
+ /** {@inheritDoc} */
+ @Override
+ public String toString()
+ {
+ return getClass().getSimpleName()
+ + "(attributeType=" + attributeType
+ + ", indexType=" + indexType
+ + ", entryLimit=" + entryLimit
+ + ")";
+ }
}
/**
--
Gitblit v1.10.0