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]

Reply via email to