This is an automated email from the ASF dual-hosted git repository.

fatehsingh pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git


The following commit(s) were added to refs/heads/master by this push:
     new 24a47ce8a RANGER-5319: Add sleep for passive tagsync to avoid cpu 
usage (#664)
24a47ce8a is described below

commit 24a47ce8a96005a12a8bf9d8b1f09a48a2b8ed94
Author: Fateh Singh <[email protected]>
AuthorDate: Fri Sep 12 11:10:04 2025 -0700

    RANGER-5319: Add sleep for passive tagsync to avoid cpu usage (#664)
---
 .../org/apache/ranger/tagsync/process/TagSyncConfig.java     |  9 +++++++++
 .../ranger/tagsync/sink/tagadmin/TagAdminRESTSink.java       | 12 ++++++++++++
 .../apache/ranger/tagsync/source/atlas/AtlasTagSource.java   | 12 ++++++++++++
 3 files changed, 33 insertions(+)

diff --git 
a/tagsync/src/main/java/org/apache/ranger/tagsync/process/TagSyncConfig.java 
b/tagsync/src/main/java/org/apache/ranger/tagsync/process/TagSyncConfig.java
index a4c211d88..26aff8a8f 100644
--- a/tagsync/src/main/java/org/apache/ranger/tagsync/process/TagSyncConfig.java
+++ b/tagsync/src/main/java/org/apache/ranger/tagsync/process/TagSyncConfig.java
@@ -80,6 +80,7 @@ public class TagSyncConfig extends Configuration {
     private static final long 
DEFAULT_TAGSYNC_ATLASREST_SOURCE_DOWNLOAD_INTERVAL   = 900000;
     private static final long 
DEFAULT_TAGSYNC_FILESOURCE_MOD_TIME_CHECK_INTERVAL   = 60000;
     private static final long 
DEFAULT_TAGSYNC_SOURCE_RETRY_INITIALIZATION_INTERVAL = 10000;
+    private static final long DEFAULT_TAGSYNC_HA_PASSIVE_SLEEP_INTERVAL        
    = 5000;
     private static final String AUTH_TYPE                 = 
"hadoop.security.authentication";
     private static final String NAME_RULES                = 
"hadoop.security.auth_to_local";
     private static final String TAGSYNC_KERBEROS_PRICIPAL = 
"ranger.tagsync.kerberos.principal";
@@ -194,6 +195,14 @@ public static synchronized boolean 
isTagSyncServiceActive() {
         return 
TagSyncHAInitializerImpl.getInstance(TagSyncConfig.getInstance()).isActive();
     }
 
+    public boolean isTagSyncHAEnabled() {
+        return this.getBoolean(TAGSYNC_SERVER_HA_ENABLED_PARAM, false);
+    }
+
+    public static long getTagSyncHAPassiveSleepInterval() {
+        return DEFAULT_TAGSYNC_HA_PASSIVE_SLEEP_INTERVAL;
+    }
+
     public static String getTagsyncKeyStoreType(Properties prop) {
         return prop.getProperty(TAGSYNC_KEYSTORE_TYPE_PROP);
     }
diff --git 
a/tagsync/src/main/java/org/apache/ranger/tagsync/sink/tagadmin/TagAdminRESTSink.java
 
b/tagsync/src/main/java/org/apache/ranger/tagsync/sink/tagadmin/TagAdminRESTSink.java
index a0c44d9d9..5472a5c30 100644
--- 
a/tagsync/src/main/java/org/apache/ranger/tagsync/sink/tagadmin/TagAdminRESTSink.java
+++ 
b/tagsync/src/main/java/org/apache/ranger/tagsync/sink/tagadmin/TagAdminRESTSink.java
@@ -180,6 +180,18 @@ public void run() {
 
                     return;
                 }
+            } else {
+                // Only sleep when HA is enabled, similar to user sync
+                if (TagSyncConfig.getInstance().isTagSyncHAEnabled()) {
+                    try {
+                        long sleepInterval = 
TagSyncConfig.getTagSyncHAPassiveSleepInterval();
+                        LOG.debug("Sleeping for [{}] milliSeconds as this 
server is running in passive mode", sleepInterval);
+                        Thread.sleep(sleepInterval);
+                    } catch (InterruptedException interrupted) {
+                        LOG.error("Interrupted..: ", interrupted);
+                        return;
+                    }
+                }
             }
         }
     }
diff --git 
a/tagsync/src/main/java/org/apache/ranger/tagsync/source/atlas/AtlasTagSource.java
 
b/tagsync/src/main/java/org/apache/ranger/tagsync/source/atlas/AtlasTagSource.java
index 2116fbab1..c4438ce64 100644
--- 
a/tagsync/src/main/java/org/apache/ranger/tagsync/source/atlas/AtlasTagSource.java
+++ 
b/tagsync/src/main/java/org/apache/ranger/tagsync/source/atlas/AtlasTagSource.java
@@ -231,6 +231,18 @@ public void run() {
                             return;
                         }
                     }
+                } else {
+                    // Only sleep when HA is enabled, similar to user sync
+                    if (TagSyncConfig.getInstance().isTagSyncHAEnabled()) {
+                        try {
+                            long sleepInterval = 
TagSyncConfig.getTagSyncHAPassiveSleepInterval();
+                            LOG.debug("Sleeping for [{}] milliSeconds as this 
server is running in passive mode", sleepInterval);
+                            Thread.sleep(sleepInterval);
+                        } catch (InterruptedException interrupted) {
+                            LOG.error("Interrupted: ", interrupted);
+                            return;
+                        }
+                    }
                 }
             }
         }

Reply via email to