capistrant commented on code in PR #18844:
URL: https://github.com/apache/druid/pull/18844#discussion_r2682760488


##########
server/src/main/java/org/apache/druid/segment/metadata/SqlCompactionStateStorage.java:
##########
@@ -94,140 +76,93 @@ public PersistedCompactionStateManager(
     this.connector = connector;
   }
 
-  @LifecycleStart
-  public void start()
-  {
-  }
-
-  @LifecycleStop
-  public void stop()
-  {
-  }
-
-  @VisibleForTesting
-  PersistedCompactionStateManager()
-  {
-    this.dbTables = null;
-    this.jsonMapper = null;
-    this.deterministicMapper = null;
-    this.connector = null;
-  }
-
   @Override
-  public void persistCompactionState(
+  public void upsertCompactionState(
       final String dataSource,
-      final Map<String, CompactionState> fingerprintToStateMap,
+      final String fingerprint,
+      final CompactionState compactionState,
       final DateTime updateTime
   )
   {
-    if (fingerprintToStateMap.isEmpty()) {
+    if (compactionState == null || fingerprint == null || 
fingerprint.isEmpty()) {
       return;
     }
 
-    final Lock lock = datasourceLocks.get(dataSource);
-    lock.lock();
     try {
       connector.retryWithHandle(handle -> {
-        // Fetch already existing compaction state fingerprints
-        final Set<String> existingFingerprints = getExistingFingerprints(
-            handle,
-            fingerprintToStateMap.keySet()
-        );
+        // Check if the fingerprint already exists
+        final boolean fingerprintExists = isExistingFingerprint(handle, 
fingerprint);
+        final String now = updateTime.toString();
 
-        if (!existingFingerprints.isEmpty()) {
+        if (fingerprintExists) {
+          // Fingerprint exists - update the used flag
           log.info(
-              "Found already existing compaction state in the DB for 
dataSource[%s]. Fingerprints: %s.",
-              dataSource,
-              existingFingerprints
+              "Found already existing compaction state in DB for 
fingerprint[%s] in dataSource[%s].",
+              fingerprint,
+              dataSource
           );
-          String setFingerprintsUsedSql = StringUtils.format(
+          String updateSql = StringUtils.format(

Review Comment:
   ya this was a big oversight and woulda been tons of useless update queries



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to