From 5da36ad307e591539f9526efbc338ce8910289dd Mon Sep 17 00:00:00 2001 From: tejaskriya Date: Mon, 3 Feb 2025 13:22:56 +0530 Subject: [PATCH] HDDS-12159. Remove redundant seek for rocksDBs --- .../apache/hadoop/ozone/om/KeyManagerImpl.java | 16 +++++----------- .../hadoop/ozone/om/OmMetadataManagerImpl.java | 14 +++++--------- .../ozone/om/request/file/OMFileRequest.java | 8 ++------ 3 files changed, 12 insertions(+), 26 deletions(-) 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 8e3bbb47c3c4..21b0439d2d8d 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,17 @@ public List getPendingDeletionSubDirs(long volumeId, long bucketId, Table dirTable = metadataManager.getDirectoryTable(); try (TableIterator> - iterator = dirTable.iterator()) { - return gatherSubDirsWithIterator(parentInfo, numEntries, - seekDirInDB, countEntries, iterator); + iterator = dirTable.iterator(seekDirInDB)) { + return gatherSubDirsWithIterator(parentInfo, numEntries, countEntries, iterator); } } private List gatherSubDirsWithIterator(OmKeyInfo parentInfo, - long numEntries, String seekDirInDB, - long countEntries, - TableIterator> iterator) + long numEntries, long countEntries, + TableIterator> iterator) throws IOException { List directories = new ArrayList<>(); - iterator.seek(seekDirInDB); while (iterator.hasNext() && numEntries - countEntries > 0) { Table.KeyValue entry = iterator.next(); @@ -2130,9 +2126,7 @@ public List getPendingDeletionSubFiles(long volumeId, Table fileTable = metadataManager.getFileTable(); try (TableIterator> - iterator = fileTable.iterator()) { - - iterator.seek(seekFileInDB); + iterator = fileTable.iterator(seekFileInDB)) { while (iterator.hasNext() && numEntries - countEntries > 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();