Skip to content

Commit a658802

Browse files
authored
HDDS-10783. Close SstFileReaderIterator in RocksDBCheckpointDiffer (#6616)
1 parent 78a7e7a commit a658802

File tree

1 file changed

+19
-18
lines changed

1 file changed

+19
-18
lines changed

hadoop-hdds/rocksdb-checkpoint-differ/src/main/java/org/apache/ozone/rocksdiff/RocksDBCheckpointDiffer.java

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@
4545
import org.apache.hadoop.hdds.utils.db.managed.ManagedReadOptions;
4646
import org.apache.hadoop.hdds.utils.db.managed.ManagedRocksIterator;
4747
import org.apache.hadoop.hdds.utils.db.managed.ManagedRocksDB;
48+
import org.apache.hadoop.hdds.utils.db.managed.ManagedSstFileReader;
49+
import org.apache.hadoop.hdds.utils.db.managed.ManagedSstFileReaderIterator;
4850
import org.apache.ozone.compaction.log.CompactionFileInfo;
4951
import org.apache.ozone.compaction.log.CompactionLogEntry;
5052
import org.apache.ozone.rocksdb.util.RdbUtil;
@@ -59,7 +61,6 @@
5961
import org.rocksdb.RocksDB;
6062
import org.rocksdb.RocksDBException;
6163
import org.rocksdb.SstFileReader;
62-
import org.rocksdb.SstFileReaderIterator;
6364
import org.rocksdb.TableProperties;
6465
import org.slf4j.Logger;
6566
import org.slf4j.LoggerFactory;
@@ -629,13 +630,12 @@ private long getSSTFileSummary(String filename)
629630
filename += SST_FILE_EXTENSION;
630631
}
631632

632-
try (
633-
ManagedOptions option = new ManagedOptions();
634-
SstFileReader reader = new SstFileReader(option)) {
633+
try (ManagedOptions option = new ManagedOptions();
634+
ManagedSstFileReader reader = ManagedSstFileReader.managed(new SstFileReader(option))) {
635635

636-
reader.open(getAbsoluteSstFilePath(filename));
636+
reader.get().open(getAbsoluteSstFilePath(filename));
637637

638-
TableProperties properties = reader.getTableProperties();
638+
TableProperties properties = reader.get().getTableProperties();
639639
if (LOG.isDebugEnabled()) {
640640
LOG.debug("{} has {} keys", filename, properties.getNumEntries());
641641
}
@@ -1575,18 +1575,19 @@ private CompactionFileInfo toFileInfo(String sstFile,
15751575
CompactionFileInfo.Builder fileInfoBuilder =
15761576
new CompactionFileInfo.Builder(fileName);
15771577

1578-
try (SstFileReader fileReader = new SstFileReader(options)) {
1579-
fileReader.open(sstFile);
1580-
String columnFamily = StringUtils.bytes2String(
1581-
fileReader.getTableProperties().getColumnFamilyName());
1582-
SstFileReaderIterator iterator = fileReader.newIterator(readOptions);
1583-
iterator.seekToFirst();
1584-
String startKey = StringUtils.bytes2String(iterator.key());
1585-
iterator.seekToLast();
1586-
String endKey = StringUtils.bytes2String(iterator.key());
1587-
fileInfoBuilder.setStartRange(startKey)
1588-
.setEndRange(endKey)
1589-
.setColumnFamily(columnFamily);
1578+
try (ManagedSstFileReader fileReader = ManagedSstFileReader.managed(new SstFileReader(options))) {
1579+
fileReader.get().open(sstFile);
1580+
String columnFamily = StringUtils.bytes2String(fileReader.get().getTableProperties().getColumnFamilyName());
1581+
try (ManagedSstFileReaderIterator iterator =
1582+
ManagedSstFileReaderIterator.managed(fileReader.get().newIterator(readOptions))) {
1583+
iterator.get().seekToFirst();
1584+
String startKey = StringUtils.bytes2String(iterator.get().key());
1585+
iterator.get().seekToLast();
1586+
String endKey = StringUtils.bytes2String(iterator.get().key());
1587+
fileInfoBuilder.setStartRange(startKey)
1588+
.setEndRange(endKey)
1589+
.setColumnFamily(columnFamily);
1590+
}
15901591
} catch (RocksDBException rocksDBException) {
15911592
// Ideally it should not happen. If it does just log the exception.
15921593
// And let the compaction complete without the exception.

0 commit comments

Comments
 (0)