diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueContainerMetadataInspector.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueContainerMetadataInspector.java index 13388e943c8d..e1064039efe5 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueContainerMetadataInspector.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueContainerMetadataInspector.java @@ -17,6 +17,7 @@ package org.apache.hadoop.ozone.container.keyvalue; +import static org.apache.hadoop.hdds.utils.db.Table.KeyValueIterator.Type.VALUE_ONLY; import static org.apache.hadoop.ozone.container.keyvalue.helpers.KeyValueContainerUtil.isSameSchemaVersion; import com.fasterxml.jackson.databind.JsonNode; @@ -35,7 +36,6 @@ import org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.DeletedBlocksTransaction; import org.apache.hadoop.hdds.server.JsonUtils; import org.apache.hadoop.hdds.utils.db.Table; -import org.apache.hadoop.hdds.utils.db.TableIterator; import org.apache.hadoop.ozone.OzoneConsts; import org.apache.hadoop.ozone.container.common.helpers.BlockData; import org.apache.hadoop.ozone.container.common.impl.ContainerData; @@ -500,8 +500,7 @@ static PendingDelete countPendingDeletesSchemaV2( Table delTxTable = schemaTwoStore.getDeleteTransactionTable(); - try (TableIterator> iterator = delTxTable.iterator()) { + try (Table.KeyValueIterator iterator = delTxTable.iterator(VALUE_ONLY)) { while (iterator.hasNext()) { DeletedBlocksTransaction txn = iterator.next().getValue(); final List localIDs = txn.getLocalIDList(); @@ -544,11 +543,8 @@ static PendingDelete countPendingDeletesSchemaV3( KeyValueContainerData containerData) throws IOException { long pendingDeleteBlockCountTotal = 0; long pendingDeleteBytes = 0; - try ( - TableIterator> - iter = store.getDeleteTransactionTable() - .iterator(containerData.containerPrefix())) { + try (Table.KeyValueIterator iter + = store.getDeleteTransactionTable().iterator(containerData.containerPrefix(), VALUE_ONLY)) { while (iter.hasNext()) { DeletedBlocksTransaction delTx = iter.next().getValue(); final List localIDs = delTx.getLocalIDList(); diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/statemachine/background/BlockDeletingTask.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/statemachine/background/BlockDeletingTask.java index 37d3b9175dfd..411aab97b186 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/statemachine/background/BlockDeletingTask.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/statemachine/background/BlockDeletingTask.java @@ -17,6 +17,7 @@ package org.apache.hadoop.ozone.container.keyvalue.statemachine.background; +import static org.apache.hadoop.hdds.utils.db.Table.KeyValueIterator.Type.VALUE_ONLY; import static org.apache.hadoop.ozone.OzoneConsts.SCHEMA_V1; import static org.apache.hadoop.ozone.OzoneConsts.SCHEMA_V2; import static org.apache.hadoop.ozone.OzoneConsts.SCHEMA_V3; @@ -39,7 +40,6 @@ import org.apache.hadoop.hdds.utils.MetadataKeyFilters.KeyPrefixFilter; import org.apache.hadoop.hdds.utils.db.BatchOperation; import org.apache.hadoop.hdds.utils.db.Table; -import org.apache.hadoop.hdds.utils.db.TableIterator; import org.apache.hadoop.ozone.container.common.helpers.BlockData; import org.apache.hadoop.ozone.container.common.helpers.BlockDeletingServiceMetrics; import org.apache.hadoop.ozone.container.common.impl.BlockDeletingService; @@ -277,9 +277,7 @@ public ContainerBackgroundTaskResult deleteViaSchema2( Table deleteTxns = ((DeleteTransactionStore) meta.getStore()) .getDeleteTransactionTable(); - try (TableIterator> - iterator = deleteTxns.iterator()) { + try (Table.KeyValueIterator iterator = deleteTxns.iterator(VALUE_ONLY)) { return deleteViaTransactionStore( iterator, meta, container, dataDir, startTime, schema2Deleter); @@ -298,9 +296,8 @@ public ContainerBackgroundTaskResult deleteViaSchema3( Table deleteTxns = ((DeleteTransactionStore) meta.getStore()) .getDeleteTransactionTable(); - try (TableIterator> - iterator = deleteTxns.iterator(containerData.containerPrefix())) { + try (Table.KeyValueIterator iterator + = deleteTxns.iterator(containerData.containerPrefix(), VALUE_ONLY)) { return deleteViaTransactionStore( iterator, meta, container, dataDir, startTime, schema3Deleter); @@ -308,8 +305,7 @@ public ContainerBackgroundTaskResult deleteViaSchema3( } private ContainerBackgroundTaskResult deleteViaTransactionStore( - TableIterator> - iter, DBHandle meta, Container container, File dataDir, + Table.KeyValueIterator iter, DBHandle meta, Container container, File dataDir, long startTime, Deleter deleter) throws IOException { ContainerBackgroundTaskResult crr = new ContainerBackgroundTaskResult(); if (!checkDataDir(dataDir)) { diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/AbstractDatanodeStore.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/AbstractDatanodeStore.java index 2d849ef10299..7e55a0199492 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/AbstractDatanodeStore.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/AbstractDatanodeStore.java @@ -30,7 +30,6 @@ import org.apache.hadoop.hdds.utils.db.DBStore; import org.apache.hadoop.hdds.utils.db.DBStoreBuilder; import org.apache.hadoop.hdds.utils.db.Table; -import org.apache.hadoop.hdds.utils.db.TableIterator; import org.apache.hadoop.hdds.utils.db.managed.ManagedDBOptions; import org.apache.hadoop.ozone.container.common.helpers.BlockData; import org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList; @@ -208,9 +207,7 @@ public static class KeyValueBlockIterator implements private static final Logger LOG = LoggerFactory.getLogger( KeyValueBlockIterator.class); - private final TableIterator> - blockIterator; + private final Table.KeyValueIterator blockIterator; private static final KeyPrefixFilter DEFAULT_BLOCK_FILTER = MetadataKeyFilters.getUnprefixedKeyFilter(); private final KeyPrefixFilter blockFilter; @@ -221,9 +218,7 @@ public static class KeyValueBlockIterator implements * KeyValueBlockIterator to iterate unprefixed blocks in a container. * @param iterator - The underlying iterator to apply the block filter to. */ - KeyValueBlockIterator(long containerID, - TableIterator> - iterator) { + KeyValueBlockIterator(long containerID, Table.KeyValueIterator iterator) { this.containerID = containerID; this.blockIterator = iterator; this.blockFilter = DEFAULT_BLOCK_FILTER; @@ -235,8 +230,7 @@ public static class KeyValueBlockIterator implements * @param filter - Block filter, filter to be applied for blocks */ KeyValueBlockIterator(long containerID, - TableIterator> - iterator, KeyPrefixFilter filter) { + Table.KeyValueIterator iterator, KeyPrefixFilter filter) { this.containerID = containerID; this.blockIterator = iterator; this.blockFilter = filter; @@ -313,8 +307,7 @@ public static class KeyValueBlockLocalIdIterator implements private static final Logger LOG = LoggerFactory.getLogger( KeyValueBlockLocalIdIterator.class); - private final TableIterator> blockLocalIdIterator; + private final Table.KeyValueIterator blockLocalIdIterator; private final KeyPrefixFilter localIdFilter; private Long nextLocalId; private final long containerID; @@ -325,8 +318,7 @@ public static class KeyValueBlockLocalIdIterator implements * @param filter - BlockLocalId filter to be applied for block localIds. */ KeyValueBlockLocalIdIterator(long containerID, - TableIterator> - iterator, KeyPrefixFilter filter) { + Table.KeyValueIterator iterator, KeyPrefixFilter filter) { this.containerID = containerID; this.blockLocalIdIterator = iterator; this.localIdFilter = filter; diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/ozoneimpl/OzoneContainer.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/ozoneimpl/OzoneContainer.java index cf1da771a2c5..4448d127ef5f 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/ozoneimpl/OzoneContainer.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/ozoneimpl/OzoneContainer.java @@ -17,6 +17,7 @@ package org.apache.hadoop.ozone.container.ozoneimpl; +import static org.apache.hadoop.hdds.utils.db.Table.KeyValueIterator.Type.KEY_ONLY; import static org.apache.hadoop.ozone.OzoneConfigKeys.OZONE_BLOCK_DELETING_SERVICE_TIMEOUT; import static org.apache.hadoop.ozone.OzoneConfigKeys.OZONE_BLOCK_DELETING_SERVICE_TIMEOUT_DEFAULT; import static org.apache.hadoop.ozone.OzoneConfigKeys.OZONE_BLOCK_DELETING_SERVICE_WORKERS; @@ -65,7 +66,6 @@ import org.apache.hadoop.hdds.utils.HddsServerUtil; import org.apache.hadoop.hdds.utils.IOUtils; import org.apache.hadoop.hdds.utils.db.Table; -import org.apache.hadoop.hdds.utils.db.TableIterator; import org.apache.hadoop.ozone.HddsDatanodeService; import org.apache.hadoop.ozone.container.common.DatanodeLayoutStorage; import org.apache.hadoop.ozone.container.common.helpers.ContainerMetrics; @@ -346,8 +346,7 @@ public void buildContainerSet() throws IOException { for (Thread volumeThread : volumeThreads) { volumeThread.join(); } - try (TableIterator> itr = - containerSet.getContainerIdsTable().iterator()) { + try (Table.KeyValueIterator itr = containerSet.getContainerIdsTable().iterator(KEY_ONLY)) { final Map containerIds = new HashMap<>(); while (itr.hasNext()) { containerIds.put(itr.next().getKey(), 0L); 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 dc942892bfa9..698c9f2de0ec 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 @@ -59,13 +59,13 @@ import org.apache.hadoop.hdds.conf.ReconfigurationHandler; import org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos; import org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos; +import org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.DeletedBlocksTransaction; import org.apache.hadoop.hdds.scm.ScmConfigKeys; import org.apache.hadoop.hdds.utils.BackgroundService; import org.apache.hadoop.hdds.utils.MetadataKeyFilters.KeyPrefixFilter; import org.apache.hadoop.hdds.utils.db.BatchOperation; import org.apache.hadoop.hdds.utils.db.CodecBuffer; import org.apache.hadoop.hdds.utils.db.Table; -import org.apache.hadoop.hdds.utils.db.TableIterator; import org.apache.hadoop.ozone.common.Checksum; import org.apache.hadoop.ozone.common.ChunkBuffer; import org.apache.hadoop.ozone.container.ContainerTestHelper; @@ -371,9 +371,7 @@ private int getUnderDeletionBlocksCount(DBHandle meta, DatanodeStore ds = meta.getStore(); DatanodeStoreSchemaTwoImpl dnStoreTwoImpl = (DatanodeStoreSchemaTwoImpl) ds; - try ( - TableIterator> + try (Table.KeyValueIterator iter = dnStoreTwoImpl.getDeleteTransactionTable().iterator()) { while (iter.hasNext()) { StorageContainerDatanodeProtocolProtos.DeletedBlocksTransaction @@ -387,9 +385,7 @@ private int getUnderDeletionBlocksCount(DBHandle meta, DatanodeStore ds = meta.getStore(); DatanodeStoreSchemaThreeImpl dnStoreThreeImpl = (DatanodeStoreSchemaThreeImpl) ds; - try ( - TableIterator> + try (Table.KeyValueIterator iter = dnStoreThreeImpl.getDeleteTransactionTable() .iterator(data.containerPrefix())) { while (iter.hasNext()) { diff --git a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/RDBTable.java b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/RDBTable.java index 361edb8032b1..13c042032e3b 100644 --- a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/RDBTable.java +++ b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/RDBTable.java @@ -91,7 +91,7 @@ public void putWithBatch(BatchOperation batch, byte[] key, byte[] value) { @Override public boolean isEmpty() throws RocksDatabaseException { - try (KeyValueIterator keyIter = iterator((byte[]) null, KeyValueIterator.Type.NEITHER)) { + try (KeyValueIterator keyIter = iterator((byte[])null, KeyValueIterator.Type.NEITHER)) { keyIter.seekToFirst(); return !keyIter.hasNext(); } diff --git a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/Table.java b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/Table.java index d96012974faf..383fcb055ff5 100644 --- a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/Table.java +++ b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/Table.java @@ -142,9 +142,9 @@ default VALUE getReadCopy(KEY key) throws RocksDatabaseException, CodecException */ void deleteRange(KEY beginKey, KEY endKey) throws RocksDatabaseException, CodecException; - /** The same as iterator(null). */ + /** The same as iterator(null, KEY_AND_VALUE). */ default KeyValueIterator iterator() throws RocksDatabaseException, CodecException { - return iterator(null); + return iterator(null, KeyValueIterator.Type.KEY_AND_VALUE); } /** The same as iterator(prefix, KEY_AND_VALUE). */ @@ -152,6 +152,12 @@ default KeyValueIterator iterator(KEY prefix) throws RocksDatabaseEx return iterator(prefix, KeyValueIterator.Type.KEY_AND_VALUE); } + /** The same as iterator(null, type). */ + default KeyValueIterator iterator(KeyValueIterator.Type type) + throws RocksDatabaseException, CodecException { + return iterator(null, type); + } + /** * Iterate the elements in this table. * diff --git a/hadoop-hdds/framework/src/test/java/org/apache/hadoop/hdds/utils/db/TestTypedTable.java b/hadoop-hdds/framework/src/test/java/org/apache/hadoop/hdds/utils/db/TestTypedTable.java index 84e3ddb6356a..8f49944bf6ff 100644 --- a/hadoop-hdds/framework/src/test/java/org/apache/hadoop/hdds/utils/db/TestTypedTable.java +++ b/hadoop-hdds/framework/src/test/java/org/apache/hadoop/hdds/utils/db/TestTypedTable.java @@ -156,10 +156,10 @@ public void testContainerIDvsLong() throws Exception { // test iterator type try (TypedTable longTable = newTypedTable( 1, LongCodec.get(), StringCodec.get()); - Table.KeyValueIterator neither = longTable.iterator(null, NEITHER); - Table.KeyValueIterator keyOnly = longTable.iterator(null, KEY_ONLY); - Table.KeyValueIterator valueOnly = longTable.iterator(null, VALUE_ONLY); - Table.KeyValueIterator keyAndValue = longTable.iterator(null, KEY_AND_VALUE)) { + Table.KeyValueIterator neither = longTable.iterator(NEITHER); + Table.KeyValueIterator keyOnly = longTable.iterator(KEY_ONLY); + Table.KeyValueIterator valueOnly = longTable.iterator(VALUE_ONLY); + Table.KeyValueIterator keyAndValue = longTable.iterator(KEY_AND_VALUE)) { while (keyAndValue.hasNext()) { final Table.KeyValue keyValue = keyAndValue.next(); final Long expectedKey = Objects.requireNonNull(keyValue.getKey()); diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/DeletedBlockLogImpl.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/DeletedBlockLogImpl.java index 76c54d8817d9..3d4509b9d87f 100644 --- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/DeletedBlockLogImpl.java +++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/DeletedBlockLogImpl.java @@ -57,7 +57,6 @@ import org.apache.hadoop.hdds.server.events.EventHandler; import org.apache.hadoop.hdds.server.events.EventPublisher; import org.apache.hadoop.hdds.utils.db.Table; -import org.apache.hadoop.hdds.utils.db.TableIterator; import org.apache.hadoop.ozone.protocol.commands.SCMCommand; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -137,8 +136,7 @@ public List getFailedTransactions(int count, lock.lock(); try { final List failedTXs = Lists.newArrayList(); - try (TableIterator> iter = + try (Table.KeyValueIterator iter = deletedBlockLogStateManager.getReadOnlyIterator()) { if (count == LIST_ALL_FAILED_TRANSACTIONS) { while (iter.hasNext()) { @@ -245,8 +243,7 @@ public int getNumOfValidTransactions() throws IOException { lock.lock(); try { final AtomicInteger num = new AtomicInteger(0); - try (TableIterator> iter = + try (Table.KeyValueIterator iter = deletedBlockLogStateManager.getReadOnlyIterator()) { while (iter.hasNext()) { DeletedBlocksTransaction delTX = iter.next().getValue(); @@ -394,8 +391,7 @@ public DatanodeDeletedBlockTransactions getTransactions( scmCommandTimeoutMs); DatanodeDeletedBlockTransactions transactions = new DatanodeDeletedBlockTransactions(); - try (TableIterator> iter = + try (Table.KeyValueIterator iter = deletedBlockLogStateManager.getReadOnlyIterator()) { if (lastProcessedTransactionId != -1) { iter.seek(lastProcessedTransactionId); diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/DeletedBlockLogStateManager.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/DeletedBlockLogStateManager.java index 46c2291e330e..398fc47ec918 100644 --- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/DeletedBlockLogStateManager.java +++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/DeletedBlockLogStateManager.java @@ -22,8 +22,6 @@ import org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.DeletedBlocksTransaction; import org.apache.hadoop.hdds.scm.metadata.Replicate; import org.apache.hadoop.hdds.utils.db.Table; -import org.apache.hadoop.hdds.utils.db.Table.KeyValue; -import org.apache.hadoop.hdds.utils.db.TableIterator; /** * DeletedBlockLogStateManager interface to @@ -46,8 +44,7 @@ void increaseRetryCountOfTransactionInDB(ArrayList txIDs) int resetRetryCountOfTransactionInDB(ArrayList txIDs) throws IOException; - TableIterator> getReadOnlyIterator() + Table.KeyValueIterator getReadOnlyIterator() throws IOException; void onFlush(); diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/DeletedBlockLogStateManagerImpl.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/DeletedBlockLogStateManagerImpl.java index b824c932d272..fd5c39e79e65 100644 --- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/DeletedBlockLogStateManagerImpl.java +++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/DeletedBlockLogStateManagerImpl.java @@ -36,7 +36,6 @@ import org.apache.hadoop.hdds.utils.db.CodecException; import org.apache.hadoop.hdds.utils.db.RocksDatabaseException; import org.apache.hadoop.hdds.utils.db.Table; -import org.apache.hadoop.hdds.utils.db.TableIterator; import org.apache.hadoop.hdds.utils.db.TypedTable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -68,14 +67,11 @@ public DeletedBlockLogStateManagerImpl(ConfigurationSource conf, } @Override - public TableIterator> getReadOnlyIterator() throws IOException { - return new TableIterator>() { - - private TableIterator> iter = - deletedTable.iterator(); + public Table.KeyValueIterator getReadOnlyIterator() + throws IOException { + return new Table.KeyValueIterator() { + + private final Table.KeyValueIterator iter = deletedTable.iterator(); private TypedTable.KeyValue nextTx; { diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerStateManagerImpl.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerStateManagerImpl.java index 34864b705191..d8c7f34a04fe 100644 --- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerStateManagerImpl.java +++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerStateManagerImpl.java @@ -31,6 +31,7 @@ import static org.apache.hadoop.hdds.protocol.proto.HddsProtos.LifeCycleState.QUASI_CLOSED; import static org.apache.hadoop.hdds.scm.ScmConfigKeys.OZONE_SCM_CONTAINER_LOCK_STRIPE_SIZE; import static org.apache.hadoop.hdds.scm.ScmConfigKeys.OZONE_SCM_CONTAINER_LOCK_STRIPE_SIZE_DEFAULT; +import static org.apache.hadoop.hdds.utils.db.Table.KeyValueIterator.Type.VALUE_ONLY; import com.google.common.util.concurrent.Striped; import java.io.IOException; @@ -64,8 +65,6 @@ import org.apache.hadoop.hdds.scm.pipeline.PipelineManager; import org.apache.hadoop.hdds.scm.pipeline.PipelineNotFoundException; import org.apache.hadoop.hdds.utils.db.Table; -import org.apache.hadoop.hdds.utils.db.Table.KeyValue; -import org.apache.hadoop.hdds.utils.db.TableIterator; import org.apache.hadoop.ozone.common.statemachine.InvalidStateTransitionException; import org.apache.hadoop.ozone.common.statemachine.StateMachine; import org.apache.ratis.util.AutoCloseableLock; @@ -234,9 +233,7 @@ private long getConfiguredContainerSize(final Configuration conf) { * @throws IOException in case of error while loading the containers */ private void initialize() throws IOException { - try (TableIterator> iterator = - containerStore.iterator()) { + try (Table.KeyValueIterator iterator = containerStore.iterator(VALUE_ONLY)) { while (iterator.hasNext()) { final ContainerInfo container = iterator.next().getValue(); diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/SequenceIdGenerator.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/SequenceIdGenerator.java index 03cd49cebbd8..296a86047918 100644 --- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/SequenceIdGenerator.java +++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/SequenceIdGenerator.java @@ -20,6 +20,7 @@ import static org.apache.hadoop.hdds.protocol.proto.SCMRatisProtocol.RequestType.SEQUENCE_ID; import static org.apache.hadoop.hdds.scm.ScmConfigKeys.OZONE_SCM_SEQUENCE_ID_BATCH_SIZE; import static org.apache.hadoop.hdds.scm.ScmConfigKeys.OZONE_SCM_SEQUENCE_ID_BATCH_SIZE_DEFAULT; +import static org.apache.hadoop.hdds.utils.db.Table.KeyValueIterator.Type.VALUE_ONLY; import com.google.common.base.Preconditions; import java.io.IOException; @@ -42,8 +43,6 @@ import org.apache.hadoop.hdds.scm.metadata.SCMMetadataStore; import org.apache.hadoop.hdds.utils.UniqueId; import org.apache.hadoop.hdds.utils.db.Table; -import org.apache.hadoop.hdds.utils.db.Table.KeyValue; -import org.apache.hadoop.hdds.utils.db.TableIterator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -276,8 +275,7 @@ public void reinitialize(Table seqIdTable) } private void initialize() throws IOException { - try (TableIterator> - iterator = sequenceIdTable.iterator()) { + try (Table.KeyValueIterator iterator = sequenceIdTable.iterator()) { while (iterator.hasNext()) { Table.KeyValue kv = iterator.next(); @@ -368,9 +366,8 @@ public static void upgradeToSequenceId(SCMMetadataStore scmMetadataStore) // upgrade containerId if (sequenceIdTable.get(CONTAINER_ID) == null) { long largestContainerId = 0; - try (TableIterator> iterator = - scmMetadataStore.getContainerTable().iterator()) { + try (Table.KeyValueIterator iterator = + scmMetadataStore.getContainerTable().iterator(VALUE_ONLY)) { while (iterator.hasNext()) { ContainerInfo containerInfo = iterator.next().getValue(); largestContainerId = @@ -395,9 +392,8 @@ public static void upgradeToCertificateSequenceId( // Start from ID 2. // ID 1 - root certificate, ID 2 - first SCM certificate. long largestCertId = BigInteger.ONE.add(BigInteger.ONE).longValueExact(); - try (TableIterator> iterator = - scmMetadataStore.getValidSCMCertsTable().iterator()) { + try (Table.KeyValueIterator iterator = + scmMetadataStore.getValidSCMCertsTable().iterator(VALUE_ONLY)) { while (iterator.hasNext()) { X509Certificate cert = iterator.next().getValue(); largestCertId = Long.max(cert.getSerialNumber().longValueExact(), @@ -405,9 +401,8 @@ public static void upgradeToCertificateSequenceId( } } - try (TableIterator> iterator = - scmMetadataStore.getValidCertsTable().iterator()) { + try (Table.KeyValueIterator iterator = + scmMetadataStore.getValidCertsTable().iterator(VALUE_ONLY)) { while (iterator.hasNext()) { X509Certificate cert = iterator.next().getValue(); largestCertId = Long.max( diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/pipeline/PipelineStateManagerImpl.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/pipeline/PipelineStateManagerImpl.java index 28d213567c75..170ce61f2a21 100644 --- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/pipeline/PipelineStateManagerImpl.java +++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/pipeline/PipelineStateManagerImpl.java @@ -17,6 +17,8 @@ package org.apache.hadoop.hdds.scm.pipeline; +import static org.apache.hadoop.hdds.utils.db.Table.KeyValueIterator.Type.VALUE_ONLY; + import com.google.common.base.Preconditions; import java.io.IOException; import java.util.Collection; @@ -33,7 +35,6 @@ import org.apache.hadoop.hdds.scm.metadata.DBTransactionBuffer; import org.apache.hadoop.hdds.scm.node.NodeManager; import org.apache.hadoop.hdds.utils.db.Table; -import org.apache.hadoop.hdds.utils.db.TableIterator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -75,9 +76,7 @@ private void initialize() throws IOException { LOG.info("No pipeline exists in current db"); return; } - try (TableIterator> iterator = - pipelineStore.iterator()) { + try (Table.KeyValueIterator iterator = pipelineStore.iterator(VALUE_ONLY)) { while (iterator.hasNext()) { Pipeline pipeline = iterator.next().getValue(); pipelineStateMap.addPipeline(pipeline); diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMCertStore.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMCertStore.java index a54cd1e4fa89..58b7e315a5bb 100644 --- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMCertStore.java +++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMCertStore.java @@ -37,7 +37,6 @@ import org.apache.hadoop.hdds.security.x509.certificate.authority.CertificateStore; import org.apache.hadoop.hdds.utils.db.BatchOperation; import org.apache.hadoop.hdds.utils.db.Table; -import org.apache.hadoop.hdds.utils.db.TableIterator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -135,8 +134,7 @@ private List addExpiredCertsToBeRemoved( BatchOperation batchOperation, Table certTable) throws IOException { List removedCerts = new ArrayList<>(); - try (TableIterator> certsIterator = certTable.iterator()) { + try (Table.KeyValueIterator certsIterator = certTable.iterator()) { Date now = new Date(); while (certsIterator.hasNext()) { Table.KeyValue certEntry = diff --git a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/block/TestDeletedBlockLog.java b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/block/TestDeletedBlockLog.java index 59607591be9f..0f15c9aa3651 100644 --- a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/block/TestDeletedBlockLog.java +++ b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/block/TestDeletedBlockLog.java @@ -75,7 +75,6 @@ import org.apache.hadoop.hdds.scm.server.SCMConfigurator; import org.apache.hadoop.hdds.scm.server.StorageContainerManager; import org.apache.hadoop.hdds.utils.db.Table; -import org.apache.hadoop.hdds.utils.db.TableIterator; import org.apache.hadoop.ozone.protocol.commands.CommandStatus; import org.apache.hadoop.ozone.protocol.commands.DeleteBlocksCommand; import org.apache.hadoop.ozone.protocol.commands.SCMCommand; @@ -782,8 +781,7 @@ public void testRandomOperateTransactions() throws Exception { blocks = new ArrayList<>(); } else { // verify the number of added and committed. - try (TableIterator> iter = + try (Table.KeyValueIterator iter = scm.getScmMetadataStore().getDeletedBlocksTXTable().iterator()) { AtomicInteger count = new AtomicInteger(); iter.forEachRemaining((keyValue) -> count.incrementAndGet()); diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/service/QuotaRepairTask.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/service/QuotaRepairTask.java index 965fa3dbd047..9f1a27e9ff9f 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/service/QuotaRepairTask.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/service/QuotaRepairTask.java @@ -241,7 +241,7 @@ private void prepareAllBucketInfo( return; } try (Table.KeyValueIterator iterator - = metadataManager.getBucketTable().iterator(null, VALUE_ONLY)) { + = metadataManager.getBucketTable().iterator(VALUE_ONLY)) { while (iterator.hasNext()) { Table.KeyValue entry = iterator.next(); OmBucketInfo bucketInfo = entry.getValue(); @@ -353,7 +353,7 @@ private void recalculateUsages( int count = 0; long startTime = Time.monotonicNow(); try (Table.KeyValueIterator keyIter - = table.iterator(null, haveValue ? KEY_AND_VALUE : KEY_ONLY)) { + = table.iterator(haveValue ? KEY_AND_VALUE : KEY_ONLY)) { while (keyIter.hasNext()) { count++; kvList.add(keyIter.next());