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;
+ }
+ }
}
}
}