You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sh...@apache.org on 2018/03/06 18:56:22 UTC
lucene-solr:master: SOLR-11066: Renamed the internal
ScheduledTriggers.ScheduledTrigger inner class to TriggerWrapper to avoid
confusion with the ScheduledTrigger added in this issue
Repository: lucene-solr
Updated Branches:
refs/heads/master be11f56bb -> 8b9a1adba
SOLR-11066: Renamed the internal ScheduledTriggers.ScheduledTrigger inner class to TriggerWrapper to avoid confusion with the ScheduledTrigger added in this issue
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/8b9a1adb
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/8b9a1adb
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/8b9a1adb
Branch: refs/heads/master
Commit: 8b9a1adbae20309b4bda1583ad08bf7978b4323a
Parents: be11f56
Author: Shalin Shekhar Mangar <sh...@apache.org>
Authored: Wed Mar 7 00:25:51 2018 +0530
Committer: Shalin Shekhar Mangar <sh...@apache.org>
Committed: Wed Mar 7 00:26:03 2018 +0530
----------------------------------------------------------------------
.../cloud/autoscaling/ScheduledTriggers.java | 60 ++++++++++----------
1 file changed, 30 insertions(+), 30 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8b9a1adb/solr/core/src/java/org/apache/solr/cloud/autoscaling/ScheduledTriggers.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/ScheduledTriggers.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/ScheduledTriggers.java
index 0f2b705..b46fd58 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/ScheduledTriggers.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/ScheduledTriggers.java
@@ -87,7 +87,7 @@ public class ScheduledTriggers implements Closeable {
DEFAULT_PROPERTIES.put(ACTION_THROTTLE_PERIOD_SECONDS, DEFAULT_ACTION_THROTTLE_PERIOD_SECONDS);
}
- private final Map<String, ScheduledTrigger> scheduledTriggers = new ConcurrentHashMap<>();
+ private final Map<String, TriggerWrapper> scheduledTriggerWrappers = new ConcurrentHashMap<>();
/**
* Thread pool for scheduling the triggers
@@ -157,10 +157,10 @@ public class ScheduledTriggers implements Closeable {
case TRIGGER_SCHEDULE_DELAY_SECONDS:
triggerDelay.set(((Number) newProps.get(key)).intValue());
synchronized (this) {
- scheduledTriggers.forEach((s, scheduledTrigger) -> {
- if (scheduledTrigger.scheduledFuture.cancel(false)) {
- scheduledTrigger.scheduledFuture = scheduledThreadPoolExecutor.scheduleWithFixedDelay(
- scheduledTrigger, 0,
+ scheduledTriggerWrappers.forEach((s, triggerWrapper) -> {
+ if (triggerWrapper.scheduledFuture.cancel(false)) {
+ triggerWrapper.scheduledFuture = scheduledThreadPoolExecutor.scheduleWithFixedDelay(
+ triggerWrapper, 0,
cloudManager.getTimeSource().convertDelay(TimeUnit.SECONDS, triggerDelay.get(), TimeUnit.MILLISECONDS),
TimeUnit.MILLISECONDS);
} else {
@@ -198,9 +198,9 @@ public class ScheduledTriggers implements Closeable {
if (isClosed) {
throw new AlreadyClosedException("ScheduledTriggers has been closed and cannot be used anymore");
}
- ScheduledTrigger st;
+ TriggerWrapper st;
try {
- st = new ScheduledTrigger(newTrigger, cloudManager, queueStats);
+ st = new TriggerWrapper(newTrigger, cloudManager, queueStats);
} catch (Exception e) {
if (isClosed) {
throw new AlreadyClosedException("ScheduledTriggers has been closed and cannot be used anymore");
@@ -212,9 +212,9 @@ public class ScheduledTriggers implements Closeable {
}
return;
}
- ScheduledTrigger scheduledTrigger = st;
+ TriggerWrapper triggerWrapper = st;
- ScheduledTrigger old = scheduledTriggers.putIfAbsent(newTrigger.getName(), scheduledTrigger);
+ TriggerWrapper old = scheduledTriggerWrappers.putIfAbsent(newTrigger.getName(), triggerWrapper);
if (old != null) {
if (old.trigger.equals(newTrigger)) {
// the trigger wasn't actually modified so we do nothing
@@ -222,8 +222,8 @@ public class ScheduledTriggers implements Closeable {
}
IOUtils.closeQuietly(old);
newTrigger.restoreState(old.trigger);
- scheduledTrigger.setReplay(false);
- scheduledTriggers.replace(newTrigger.getName(), scheduledTrigger);
+ triggerWrapper.setReplay(false);
+ scheduledTriggerWrappers.replace(newTrigger.getName(), triggerWrapper);
}
newTrigger.setProcessor(event -> {
if (cloudManager.isClosed()) {
@@ -232,7 +232,7 @@ public class ScheduledTriggers implements Closeable {
listeners.fireListeners(event.getSource(), event, TriggerEventProcessorStage.ABORTED, msg);
return false;
}
- ScheduledTrigger scheduledSource = scheduledTriggers.get(event.getSource());
+ TriggerWrapper scheduledSource = scheduledTriggerWrappers.get(event.getSource());
if (scheduledSource == null) {
String msg = String.format(Locale.ROOT, "Ignoring autoscaling event %s because the source trigger: %s doesn't exist.", event.toString(), event.getSource());
listeners.fireListeners(event.getSource(), event, TriggerEventProcessorStage.FAILED, msg);
@@ -272,7 +272,7 @@ public class ScheduledTriggers implements Closeable {
if (replaying) {
enqueued = false;
} else {
- enqueued = scheduledTrigger.enqueue(event);
+ enqueued = triggerWrapper.enqueue(event);
}
// fire STARTED event listeners after enqueuing the event is successful
listeners.fireListeners(event.getSource(), event, TriggerEventProcessorStage.STARTED);
@@ -310,7 +310,7 @@ public class ScheduledTriggers implements Closeable {
listeners.fireListeners(event.getSource(), event, TriggerEventProcessorStage.AFTER_ACTION, action.getName(), actionContext);
}
if (enqueued) {
- TriggerEvent ev = scheduledTrigger.dequeue();
+ TriggerEvent ev = triggerWrapper.dequeue();
assert ev.getId().equals(event.getId());
}
listeners.fireListeners(event.getSource(), event, TriggerEventProcessorStage.SUCCEEDED);
@@ -327,9 +327,9 @@ public class ScheduledTriggers implements Closeable {
});
} else {
if (enqueued) {
- TriggerEvent ev = scheduledTrigger.dequeue();
+ TriggerEvent ev = triggerWrapper.dequeue();
if (!ev.getId().equals(event.getId())) {
- throw new RuntimeException("Wrong event dequeued, queue of " + scheduledTrigger.trigger.getName()
+ throw new RuntimeException("Wrong event dequeued, queue of " + triggerWrapper.trigger.getName()
+ " is broken! Expected event=" + event + " but got " + ev);
}
}
@@ -346,7 +346,7 @@ public class ScheduledTriggers implements Closeable {
}
});
newTrigger.init(); // mark as ready for scheduling
- scheduledTrigger.scheduledFuture = scheduledThreadPoolExecutor.scheduleWithFixedDelay(scheduledTrigger, 0,
+ triggerWrapper.scheduledFuture = scheduledThreadPoolExecutor.scheduleWithFixedDelay(triggerWrapper, 0,
cloudManager.getTimeSource().convertDelay(TimeUnit.SECONDS, triggerDelay.get(), TimeUnit.MILLISECONDS),
TimeUnit.MILLISECONDS);
}
@@ -357,9 +357,9 @@ public class ScheduledTriggers implements Closeable {
*/
public synchronized void pauseTriggers() {
if (log.isDebugEnabled()) {
- log.debug("Pausing all triggers: {}", scheduledTriggers.keySet());
+ log.debug("Pausing all triggers: {}", scheduledTriggerWrappers.keySet());
}
- scheduledTriggers.forEach((s, scheduledTrigger) -> scheduledTrigger.scheduledFuture.cancel(false));
+ scheduledTriggerWrappers.forEach((s, triggerWrapper) -> triggerWrapper.scheduledFuture.cancel(false));
}
/**
@@ -368,10 +368,10 @@ public class ScheduledTriggers implements Closeable {
* @lucene.internal
*/
public synchronized void resumeTriggers(long afterDelayMillis) {
- scheduledTriggers.forEach((s, scheduledTrigger) -> {
- if (scheduledTrigger.scheduledFuture.isCancelled()) {
+ scheduledTriggerWrappers.forEach((s, triggerWrapper) -> {
+ if (triggerWrapper.scheduledFuture.isCancelled()) {
log.debug("Resuming trigger: {} after {}ms", s, afterDelayMillis);
- scheduledTrigger.scheduledFuture = scheduledThreadPoolExecutor.scheduleWithFixedDelay(scheduledTrigger, afterDelayMillis,
+ triggerWrapper.scheduledFuture = scheduledThreadPoolExecutor.scheduleWithFixedDelay(triggerWrapper, afterDelayMillis,
cloudManager.getTimeSource().convertDelay(TimeUnit.SECONDS, triggerDelay.get(), TimeUnit.MILLISECONDS), TimeUnit.MILLISECONDS);
}
});
@@ -454,7 +454,7 @@ public class ScheduledTriggers implements Closeable {
* @param triggerName the name of the trigger to be removed
*/
public synchronized void remove(String triggerName) {
- ScheduledTrigger removed = scheduledTriggers.remove(triggerName);
+ TriggerWrapper removed = scheduledTriggerWrappers.remove(triggerName);
IOUtils.closeQuietly(removed);
removeTriggerZKData(triggerName);
}
@@ -478,7 +478,7 @@ public class ScheduledTriggers implements Closeable {
* @return an unmodifiable set of names of all triggers being managed by this class
*/
public synchronized Set<String> getScheduledTriggerNames() {
- return Collections.unmodifiableSet(new HashSet<>(scheduledTriggers.keySet())); // shallow copy
+ return Collections.unmodifiableSet(new HashSet<>(scheduledTriggerWrappers.keySet())); // shallow copy
}
@Override
@@ -486,10 +486,10 @@ public class ScheduledTriggers implements Closeable {
synchronized (this) {
// mark that we are closed
isClosed = true;
- for (ScheduledTrigger scheduledTrigger : scheduledTriggers.values()) {
- IOUtils.closeQuietly(scheduledTrigger);
+ for (TriggerWrapper triggerWrapper : scheduledTriggerWrappers.values()) {
+ IOUtils.closeQuietly(triggerWrapper);
}
- scheduledTriggers.clear();
+ scheduledTriggerWrappers.clear();
}
// shutdown and interrupt all running tasks because there's no longer any
// guarantee about cluster state
@@ -498,14 +498,14 @@ public class ScheduledTriggers implements Closeable {
listeners.close();
}
- private class ScheduledTrigger implements Runnable, Closeable {
+ private class TriggerWrapper implements Runnable, Closeable {
AutoScaling.Trigger trigger;
ScheduledFuture<?> scheduledFuture;
TriggerEventQueue queue;
boolean replay;
volatile boolean isClosed;
- ScheduledTrigger(AutoScaling.Trigger trigger, SolrCloudManager cloudManager, Stats stats) throws IOException {
+ TriggerWrapper(AutoScaling.Trigger trigger, SolrCloudManager cloudManager, Stats stats) throws IOException {
this.trigger = trigger;
this.queue = new TriggerEventQueue(cloudManager, trigger.getName(), stats);
this.replay = true;
@@ -545,7 +545,7 @@ public class ScheduledTriggers implements Closeable {
// to change the schedule delay, we can safely cancel the old scheduled task
// and create another one with the new delay without worrying about concurrent
// execution of the same trigger instance
- synchronized (ScheduledTrigger.this) {
+ synchronized (TriggerWrapper.this) {
// replay accumulated events on first run, if any
if (replay) {
TriggerEvent event;