diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/KeyManagerImpl.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/KeyManagerImpl.java index 4fe509d7e9cd..087181b9f0a0 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/KeyManagerImpl.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/KeyManagerImpl.java @@ -2081,21 +2081,18 @@ public DeleteKeysResult getPendingDeletionSubDirs(long volumeId, long bucketId, Table dirTable = metadataManager.getDirectoryTable(); try (TableIterator> - iterator = dirTable.iterator()) { - return gatherSubDirsWithIterator(parentInfo, - seekDirInDB, countEntries, iterator, remainingBufLimit); + iterator = dirTable.iterator(seekDirInDB)) { + return gatherSubDirsWithIterator(parentInfo, countEntries, iterator, remainingBufLimit); } } private DeleteKeysResult gatherSubDirsWithIterator(OmKeyInfo parentInfo, - String seekDirInDB, long countEntries, TableIterator> iterator, long remainingBufLimit) throws IOException { List directories = new ArrayList<>(); - iterator.seek(seekDirInDB); long consumedSize = 0; boolean processedSubDirs = false; @@ -2142,9 +2139,7 @@ public DeleteKeysResult getPendingDeletionSubFiles(long volumeId, Table fileTable = metadataManager.getFileTable(); try (TableIterator> - iterator = fileTable.iterator()) { - - iterator.seek(seekFileInDB); + iterator = fileTable.iterator(seekFileInDB)) { while (iterator.hasNext() && remainingBufLimit > 0) { Table.KeyValue entry = iterator.next(); diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OmMetadataManagerImpl.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OmMetadataManagerImpl.java index 8f4c070b76c6..2c562349ad6d 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OmMetadataManagerImpl.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OmMetadataManagerImpl.java @@ -1955,19 +1955,15 @@ public Set getMultipartUploadKeys( } } + // prefixed iterator will only iterate until keys match the prefix try (TableIterator> - iterator = getMultipartInfoTable().iterator()) { - iterator.seek(prefixKey); + iterator = getMultipartInfoTable().iterator(prefixKey)) { while (iterator.hasNext()) { KeyValue entry = iterator.next(); - if (entry.getKey().startsWith(prefixKey)) { - // If it is marked for abort, skip it. - if (!aborted.contains(entry.getKey())) { - response.add(entry.getKey()); - } - } else { - break; + // If it is marked for abort, skip it. + if (!aborted.contains(entry.getKey())) { + response.add(entry.getKey()); } } } diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMFileRequest.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMFileRequest.java index 8f2a768c5257..afcd721ea235 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMFileRequest.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMFileRequest.java @@ -906,9 +906,7 @@ private static boolean checkSubDirectoryExists(OmKeyInfo omKeyInfo, omKeyInfo.getObjectID(), ""); try (TableIterator> - iterator = dirTable.iterator()) { - - iterator.seek(seekDirInDB); + iterator = dirTable.iterator(seekDirInDB)) { if (iterator.hasNext()) { Table.KeyValue entry = iterator.next(); @@ -952,9 +950,7 @@ private static boolean checkSubFileExists(OmKeyInfo omKeyInfo, String seekFileInDB = metaMgr.getOzonePathKey(volumeId, bucketId, omKeyInfo.getObjectID(), ""); try (TableIterator> - iterator = fileTable.iterator()) { - - iterator.seek(seekFileInDB); + iterator = fileTable.iterator(seekFileInDB)) { if (iterator.hasNext()) { Table.KeyValue entry = iterator.next();