aboutsummaryrefslogtreecommitdiffstats
path: root/service-monitor
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@verizonmedia.com>2020-02-25 21:00:31 +0100
committerHåkon Hallingstad <hakon@verizonmedia.com>2020-02-25 21:00:31 +0100
commit8021abb79fb5aeb6e76fe98e6f2de742f6161f6d (patch)
tree2a3802b590230039f6e6cd14503b990e29764c7b /service-monitor
parentacaa910b4f09005deb48f34bbf2fe75fa4a29bb1 (diff)
Disable service monitor cache
Diffstat (limited to 'service-monitor')
-rw-r--r--service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceModelCache.java8
-rw-r--r--service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceMonitorImpl.java14
-rw-r--r--service-monitor/src/test/java/com/yahoo/vespa/service/model/ServiceModelCacheTest.java2
3 files changed, 14 insertions, 10 deletions
diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceModelCache.java b/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceModelCache.java
index c50f5e6c2d5..1b37555a554 100644
--- a/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceModelCache.java
+++ b/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceModelCache.java
@@ -17,6 +17,7 @@ public class ServiceModelCache implements Supplier<ServiceModel> {
private final Supplier<ServiceModel> expensiveSupplier;
private final Timer timer;
+ private final boolean useCache;
private volatile ServiceModel snapshot;
private boolean updatePossiblyInProgress = false;
@@ -24,13 +25,18 @@ public class ServiceModelCache implements Supplier<ServiceModel> {
private final Object updateMonitor = new Object();
private long snapshotMillis;
- public ServiceModelCache(Supplier<ServiceModel> expensiveSupplier, Timer timer) {
+ public ServiceModelCache(Supplier<ServiceModel> expensiveSupplier, Timer timer, boolean useCache) {
this.expensiveSupplier = expensiveSupplier;
this.timer = timer;
+ this.useCache = useCache;
}
@Override
public ServiceModel get() {
+ if (!useCache) {
+ return expensiveSupplier.get();
+ }
+
if (snapshot == null) {
synchronized (updateMonitor) {
if (snapshot == null) {
diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceMonitorImpl.java b/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceMonitorImpl.java
index 0a40555036c..67b4e890c29 100644
--- a/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceMonitorImpl.java
+++ b/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceMonitorImpl.java
@@ -5,16 +5,12 @@ import com.google.inject.Inject;
import com.yahoo.config.provision.Zone;
import com.yahoo.jdisc.Metric;
import com.yahoo.jdisc.Timer;
-import com.yahoo.vespa.applicationmodel.ApplicationInstance;
-import com.yahoo.vespa.applicationmodel.ApplicationInstanceReference;
+import com.yahoo.vespa.flags.FlagSource;
+import com.yahoo.vespa.flags.Flags;
import com.yahoo.vespa.service.duper.DuperModelManager;
-import com.yahoo.vespa.service.health.HealthMonitorManager;
import com.yahoo.vespa.service.manager.UnionMonitorManager;
import com.yahoo.vespa.service.monitor.ServiceModel;
import com.yahoo.vespa.service.monitor.ServiceMonitor;
-import com.yahoo.vespa.service.slobrok.SlobrokMonitorManagerImpl;
-
-import java.util.Map;
public class ServiceMonitorImpl implements ServiceMonitor {
@@ -25,7 +21,8 @@ public class ServiceMonitorImpl implements ServiceMonitor {
UnionMonitorManager monitorManager,
Metric metric,
Timer timer,
- Zone zone) {
+ Zone zone,
+ FlagSource flagSource) {
duperModelManager.registerListener(monitorManager);
ServiceModelProvider uncachedServiceModelProvider = new ServiceModelProvider(
@@ -34,7 +31,8 @@ public class ServiceMonitorImpl implements ServiceMonitor {
duperModelManager,
new ModelGenerator(),
zone);
- serviceModelProvider = new ServiceModelCache(uncachedServiceModelProvider, timer);
+ boolean cache = Flags.SERVICE_MODEL_CACHE.bindTo(flagSource).value();
+ serviceModelProvider = new ServiceModelCache(uncachedServiceModelProvider, timer, cache);
}
@Override
diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/model/ServiceModelCacheTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/model/ServiceModelCacheTest.java
index 2d6921df374..c2314be1e0f 100644
--- a/service-monitor/src/test/java/com/yahoo/vespa/service/model/ServiceModelCacheTest.java
+++ b/service-monitor/src/test/java/com/yahoo/vespa/service/model/ServiceModelCacheTest.java
@@ -18,7 +18,7 @@ public class ServiceModelCacheTest {
@SuppressWarnings("unchecked")
private final Supplier<ServiceModel> rawSupplier = mock(Supplier.class);
private final Timer timer = mock(Timer.class);
- private final ServiceModelCache cache = new ServiceModelCache(rawSupplier, timer);
+ private final ServiceModelCache cache = new ServiceModelCache(rawSupplier, timer, true);
@Test
public void sanityCheck() {