This is an automated email from the ASF dual-hosted git repository. sammichen pushed a commit to branch ozone-0.6.0 in repository https://gitbox.apache.org/repos/asf/hadoop-ozone.git
commit b3139e80b3d8565100ca6c88357b8e4010e89776 Author: runzhiwang <[email protected]> AuthorDate: Wed Jul 15 00:20:16 2020 +0800 HDDS-3957. Fix mixed use of Longs.toByteArray and Ints.fromByteArray (#1199) (cherry picked from commit 6d979e49190a48fc1c43edc0ff2b410eae09381d) --- .../impl/TopNOrderedContainerDeletionChoosingPolicy.java | 2 +- .../ozone/container/keyvalue/KeyValueContainerData.java | 14 +++++++------- .../container/keyvalue/helpers/KeyValueContainerUtil.java | 3 +-- .../ozone/container/common/TestBlockDeletingService.java | 7 ++++--- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/impl/TopNOrderedContainerDeletionChoosingPolicy.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/impl/TopNOrderedContainerDeletionChoosingPolicy.java index 41fc267..2cee75c 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/impl/TopNOrderedContainerDeletionChoosingPolicy.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/impl/TopNOrderedContainerDeletionChoosingPolicy.java @@ -45,7 +45,7 @@ public class TopNOrderedContainerDeletionChoosingPolicy private static final Comparator<KeyValueContainerData> KEY_VALUE_CONTAINER_DATA_COMPARATOR = (KeyValueContainerData c1, KeyValueContainerData c2) -> - Integer.compare(c2.getNumPendingDeletionBlocks(), + Long.compare(c2.getNumPendingDeletionBlocks(), c1.getNumPendingDeletionBlocks()); @Override diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueContainerData.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueContainerData.java index 5698d72..68f01fb 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueContainerData.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueContainerData.java @@ -38,7 +38,7 @@ import org.yaml.snakeyaml.nodes.Tag; import java.io.File; import java.util.List; import java.util.Map; -import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicLong; import static java.lang.Math.max; import static org.apache.hadoop.ozone.OzoneConsts.CONTAINER_DB_TYPE_ROCKSDB; @@ -73,7 +73,7 @@ public class KeyValueContainerData extends ContainerData { /** * Number of pending deletion blocks in KeyValueContainer. */ - private final AtomicInteger numPendingDeletionBlocks; + private final AtomicLong numPendingDeletionBlocks; private long deleteTransactionId; @@ -98,7 +98,7 @@ public class KeyValueContainerData extends ContainerData { long size, String originPipelineId, String originNodeId) { super(ContainerProtos.ContainerType.KeyValueContainer, id, layOutVersion, size, originPipelineId, originNodeId); - this.numPendingDeletionBlocks = new AtomicInteger(0); + this.numPendingDeletionBlocks = new AtomicLong(0); this.deleteTransactionId = 0; } @@ -106,7 +106,7 @@ public class KeyValueContainerData extends ContainerData { super(source); Preconditions.checkArgument(source.getContainerType() == ContainerProtos.ContainerType.KeyValueContainer); - this.numPendingDeletionBlocks = new AtomicInteger(0); + this.numPendingDeletionBlocks = new AtomicLong(0); this.deleteTransactionId = 0; } @@ -188,7 +188,7 @@ public class KeyValueContainerData extends ContainerData { * * @param numBlocks increment number */ - public void incrPendingDeletionBlocks(int numBlocks) { + public void incrPendingDeletionBlocks(long numBlocks) { this.numPendingDeletionBlocks.addAndGet(numBlocks); } @@ -197,14 +197,14 @@ public class KeyValueContainerData extends ContainerData { * * @param numBlocks decrement number */ - public void decrPendingDeletionBlocks(int numBlocks) { + public void decrPendingDeletionBlocks(long numBlocks) { this.numPendingDeletionBlocks.addAndGet(-1 * numBlocks); } /** * Get the number of pending deletion blocks. */ - public int getNumPendingDeletionBlocks() { + public long getNumPendingDeletionBlocks() { return this.numPendingDeletionBlocks.get(); } diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/helpers/KeyValueContainerUtil.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/helpers/KeyValueContainerUtil.java index 2141bed..d5fea23 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/helpers/KeyValueContainerUtil.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/helpers/KeyValueContainerUtil.java @@ -23,7 +23,6 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; -import com.google.common.primitives.Ints; import com.google.common.primitives.Longs; import org.apache.hadoop.hdds.conf.ConfigurationSource; import org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos; @@ -171,7 +170,7 @@ public final class KeyValueContainerUtil { containerDB.getStore().get(DB_PENDING_DELETE_BLOCK_COUNT_KEY); if (pendingDeleteBlockCount != null) { kvContainerData.incrPendingDeletionBlocks( - Ints.fromByteArray(pendingDeleteBlockCount)); + Longs.fromByteArray(pendingDeleteBlockCount)); } else { // Set pending deleted block count. MetadataKeyFilters.KeyPrefixFilter filter = diff --git a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/TestBlockDeletingService.java b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/TestBlockDeletingService.java index b8843de..ba6999d 100644 --- a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/TestBlockDeletingService.java +++ b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/TestBlockDeletingService.java @@ -27,7 +27,6 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import com.google.common.collect.Lists; -import com.google.common.primitives.Ints; import com.google.common.primitives.Longs; import org.apache.commons.io.FileUtils; import org.apache.hadoop.hdds.StringUtils; @@ -180,7 +179,7 @@ public class TestBlockDeletingService { metadata.getStore().put(OzoneConsts.DB_CONTAINER_BYTES_USED_KEY, Longs.toByteArray(blockLength * numOfBlocksPerContainer)); metadata.getStore().put(DB_PENDING_DELETE_BLOCK_COUNT_KEY, - Ints.toByteArray(numOfBlocksPerContainer)); + Longs.toByteArray(numOfBlocksPerContainer)); } } } @@ -251,6 +250,8 @@ public class TestBlockDeletingService { // Ensure there are 3 blocks under deletion and 0 deleted blocks Assert.assertEquals(3, getUnderDeletionBlocksCount(meta)); + Assert.assertEquals(3, Longs.fromByteArray( + meta.getStore().get(DB_PENDING_DELETE_BLOCK_COUNT_KEY))); Assert.assertEquals(0, getDeletedBlocksCount(meta)); // An interval will delete 1 * 2 blocks @@ -269,7 +270,7 @@ public class TestBlockDeletingService { // Check finally DB counters. // Not checking bytes used, as handler is a mock call. - Assert.assertEquals(0, Ints.fromByteArray( + Assert.assertEquals(0, Longs.fromByteArray( meta.getStore().get(DB_PENDING_DELETE_BLOCK_COUNT_KEY))); Assert.assertEquals(0, Longs.fromByteArray( meta.getStore().get(DB_BLOCK_COUNT_KEY))); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
