This is an automated email from the ASF dual-hosted git repository.
devmadhuu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 084c60d4fb9 HDDS-16845. Recon delta updates to om.db are never synced
and ignore configured write options. (#11468)
084c60d4fb9 is described below
commit 084c60d4fb977522d7af5077fcf160bb7ac5fd43
Author: Devesh Kumar Singh <[email protected]>
AuthorDate: Mon Oct 12 11:16:30 2026 +0530
HDDS-16845. Recon delta updates to om.db are never synced and ignore
configured write options. (#11468)
---
.../recon/spi/impl/OzoneManagerServiceProviderImpl.java | 13 ++++---------
.../recon/spi/impl/TestOzoneManagerServiceProviderImpl.java | 11 ++++++++++-
2 files changed, 14 insertions(+), 10 deletions(-)
diff --git
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/OzoneManagerServiceProviderImpl.java
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/OzoneManagerServiceProviderImpl.java
index 7453e7bcc63..9cc4d0e15bf 100644
---
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/OzoneManagerServiceProviderImpl.java
+++
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/OzoneManagerServiceProviderImpl.java
@@ -69,13 +69,11 @@
import org.apache.hadoop.hdds.recon.ReconConfigKeys;
import org.apache.hadoop.hdds.server.http.HttpConfig;
import org.apache.hadoop.hdds.utils.db.DBCheckpoint;
+import org.apache.hadoop.hdds.utils.db.DBStore;
import org.apache.hadoop.hdds.utils.db.RDBBatchOperation;
-import org.apache.hadoop.hdds.utils.db.RDBStore;
-import org.apache.hadoop.hdds.utils.db.RocksDatabase;
import org.apache.hadoop.hdds.utils.db.Table;
import org.apache.hadoop.hdds.utils.db.TableIterator;
import org.apache.hadoop.hdds.utils.db.managed.ManagedWriteBatch;
-import org.apache.hadoop.hdds.utils.db.managed.ManagedWriteOptions;
import org.apache.hadoop.hdfs.web.URLConnectionFactory;
import org.apache.hadoop.ozone.om.OMMetadataManager;
import org.apache.hadoop.ozone.om.helpers.DBUpdates;
@@ -656,8 +654,7 @@ ImmutablePair<Boolean, Long>
innerGetAndApplyDeltaUpdatesFromOM(long fromSequenc
reconSyncMetrics.incrDeltaFetchSuccess();
latestSequenceNumberOfOM = dbUpdates.getLatestSequenceNumber();
- RDBStore rocksDBStore = (RDBStore) omMetadataManager.getStore();
- final RocksDatabase rocksDB = rocksDBStore.getDb();
+ DBStore omDbStore = omMetadataManager.getStore();
numUpdates = dbUpdates.getData().size();
if (numUpdates > 0) {
metrics.incrNumUpdatesInDeltaTotal(numUpdates);
@@ -678,12 +675,10 @@ ImmutablePair<Boolean, Long>
innerGetAndApplyDeltaUpdatesFromOM(long fromSequenc
try (ManagedWriteBatch writeBatch = new ManagedWriteBatch(data)) {
// Events gets populated in events list in OMDBUpdatesHandler with
call back for put/delete/update
writeBatch.iterate(omdbUpdatesHandler);
- // Commit the OM DB transactions in recon rocks DB and sync here.
+ // Commit the OM DB transactions using the store's configured
write options.
try (RDBBatchOperation rdbBatchOperation =
RDBBatchOperation.newAtomicOperation(writeBatch)) {
- try (ManagedWriteOptions wOpts = new ManagedWriteOptions()) {
- rdbBatchOperation.commit(rocksDB, wOpts);
- }
+ omDbStore.commitBatchOperation(rdbBatchOperation);
}
}
}
diff --git
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/spi/impl/TestOzoneManagerServiceProviderImpl.java
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/spi/impl/TestOzoneManagerServiceProviderImpl.java
index de28008c710..97150b703f4 100644
---
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/spi/impl/TestOzoneManagerServiceProviderImpl.java
+++
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/spi/impl/TestOzoneManagerServiceProviderImpl.java
@@ -38,8 +38,10 @@
import static org.mockito.Mockito.anyString;
import static org.mockito.Mockito.doCallRealMethod;
import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -53,6 +55,7 @@
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.utils.db.DBCheckpoint;
+import org.apache.hadoop.hdds.utils.db.DBStore;
import org.apache.hadoop.hdds.utils.db.RDBStore;
import org.apache.hadoop.hdds.utils.db.RocksDatabase;
import org.apache.hadoop.hdds.utils.db.SequenceNumberNotFoundException;
@@ -355,13 +358,18 @@ public void testGetAndApplyDeltaUpdatesFromOM(
// OM Service Provider's Metadata Manager.
OMMetadataManager omMetadataManager =
initializeNewOmMetadataManager(dirOmMetadata);
+ ReconOMMetadataManager reconOMMetadataManager =
+ getTestReconOmMetadataManager(omMetadataManager, dirReconMetadata);
+ DBStore omDbStore = spy(reconOMMetadataManager.getStore());
+ ReconOMMetadataManager spiedReconOMMetadataManager =
spy(reconOMMetadataManager);
+ doReturn(omDbStore).when(spiedReconOMMetadataManager).getStore();
OzoneConfiguration withLimitConfiguration =
new OzoneConfiguration(configuration);
withLimitConfiguration.setLong(RECON_OM_DELTA_UPDATE_LIMIT, 10);
OzoneManagerServiceProviderImpl ozoneManagerServiceProvider =
new OzoneManagerServiceProviderImpl(configuration,
- getTestReconOmMetadataManager(omMetadataManager, dirReconMetadata),
+ spiedReconOMMetadataManager,
getMockTaskController(), new ReconUtils(),
getMockOzoneManagerClient(dbUpdatesWrapper),
reconContext, getMockTaskStatusUpdaterManager());
@@ -373,6 +381,7 @@ public void testGetAndApplyDeltaUpdatesFromOM(
assertEquals(4.0,
metrics.getAverageNumUpdatesInDeltaRequest(), 0.0);
assertEquals(1, metrics.getNumNonZeroDeltaRequests());
+ verify(omDbStore,
times(dbUpdatesWrapper.getData().size())).commitBatchOperation(any());
// In this method, we have to assert the "GET" path and the "APPLY" path.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]