From 5d07ec161328a94de355aa4bf93918a2da5a8602 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 30 Apr 2015 14:20:06 +0000
Subject: [PATCH] OPENDJ-1801 (CR-6815) Revise usage of storage.open() and startImport()
---
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/ID2Count.java | 29 ++++++++++++++++++++++++++---
1 files changed, 26 insertions(+), 3 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/ID2Count.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/ID2Count.java
index 5259156..e922f95 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/ID2Count.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/ID2Count.java
@@ -31,6 +31,7 @@
import org.forgerock.util.promise.Function;
import org.forgerock.util.promise.NeverThrowsException;
import org.opends.server.backends.pluggable.spi.Cursor;
+import org.opends.server.backends.pluggable.spi.Importer;
import org.opends.server.backends.pluggable.spi.ReadableTransaction;
import org.opends.server.backends.pluggable.spi.TreeName;
import org.opends.server.backends.pluggable.spi.UpdateFunction;
@@ -90,8 +91,7 @@
private void addToCounter(WriteableTransaction txn, EntryID entryID, final long delta)
{
- final long bucket = (Thread.currentThread().getId() & (SHARD_COUNT - 1));
- final ByteSequence shardedKey = getKeyFromEntryIDAndBucket(entryID, bucket);
+ final ByteSequence shardedKey = getShardedKey(entryID);
txn.update(getName(), shardedKey, new UpdateFunction()
{
@Override
@@ -103,6 +103,30 @@
});
}
+ void importPut(Importer importer, EntryID entryID, long total)
+ {
+ Reject.ifTrue(entryID.longValue() >= TOTAL_COUNT_ENTRY_ID.longValue(), "EntryID overflow.");
+ importPut0(importer, entryID, total);
+ }
+
+ void importPutTotalCount(Importer importer, long total)
+ {
+ importPut0(importer, TOTAL_COUNT_ENTRY_ID, total);
+ }
+
+ private void importPut0(Importer importer, EntryID entryID, final long delta)
+ {
+ Reject.ifNull(importer, "importer must not be null");
+ final ByteSequence shardedKey = getShardedKey(entryID);
+ importer.put(getName(), shardedKey, ByteString.valueOf(delta));
+ }
+
+ private ByteSequence getShardedKey(EntryID entryID)
+ {
+ final long bucket = (Thread.currentThread().getId() & (SHARD_COUNT - 1));
+ return getKeyFromEntryIDAndBucket(entryID, bucket);
+ }
+
/**
* Get the counter value for the specified key
* @param txn The database transaction
@@ -168,5 +192,4 @@
return counterValue;
}
-
}
--
Gitblit v1.10.0