diff options
2 files changed, 31 insertions, 0 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ApplicationMetaDataGarbageCollector.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ApplicationMetaDataGarbageCollector.java new file mode 100644 index 00000000000..9fa3b91f633 --- /dev/null +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ApplicationMetaDataGarbageCollector.java @@ -0,0 +1,29 @@ +package com.yahoo.vespa.hosted.controller.maintenance; + +import com.yahoo.vespa.hosted.controller.Controller; + +import java.time.Duration; +import java.util.logging.Level; +import java.util.logging.Logger; + +public class ApplicationMetaDataGarbageCollector extends ControllerMaintainer { + + private static final Logger log = Logger.getLogger(ApplicationMetaDataGarbageCollector.class.getName()); + + public ApplicationMetaDataGarbageCollector(Controller controller, Duration interval) { + super(controller, interval); + } + + @Override + protected boolean maintain() { + try { + controller().applications().applicationStore().pruneMeta(controller().clock().instant().minus(Duration.ofDays(365))); + return true; + } + catch (Exception e) { + log.log(Level.WARNING, "Exception pruning old application meta data", e); + return false; + } + } + +} diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ControllerMaintenance.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ControllerMaintenance.java index 336dc5ddd04..0e72a1b42a7 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ControllerMaintenance.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ControllerMaintenance.java @@ -44,6 +44,7 @@ public class ControllerMaintenance extends AbstractComponent { private final RotationStatusUpdater rotationStatusUpdater; private final ResourceTagMaintainer resourceTagMaintainer; private final SystemRoutingPolicyMaintainer systemRoutingPolicyMaintainer; + private final ApplicationMetaDataGarbageCollector applicationMetaDataGarbageCollector; @Inject @SuppressWarnings("unused") // instantiated by Dependency Injection @@ -73,6 +74,7 @@ public class ControllerMaintenance extends AbstractComponent { rotationStatusUpdater = new RotationStatusUpdater(controller, maintenanceInterval); resourceTagMaintainer = new ResourceTagMaintainer(controller, Duration.ofMinutes(30), controller.serviceRegistry().resourceTagger()); systemRoutingPolicyMaintainer = new SystemRoutingPolicyMaintainer(controller, Duration.ofMinutes(10)); + applicationMetaDataGarbageCollector = new ApplicationMetaDataGarbageCollector(controller, Duration.ofHours(12)); } public Upgrader upgrader() { return upgrader; } |