diff options
author | Håkon Hallingstad <hakon@verizonmedia.com> | 2020-02-25 21:00:31 +0100 |
---|---|---|
committer | Håkon Hallingstad <hakon@verizonmedia.com> | 2020-02-25 21:00:31 +0100 |
commit | 8021abb79fb5aeb6e76fe98e6f2de742f6161f6d (patch) | |
tree | 2a3802b590230039f6e6cd14503b990e29764c7b /service-monitor | |
parent | acaa910b4f09005deb48f34bbf2fe75fa4a29bb1 (diff) |
Disable service monitor cache
Diffstat (limited to 'service-monitor')
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() { |