diff options
author | Martin Polden <mpolden@mpolden.no> | 2019-05-22 15:42:56 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2019-05-23 09:03:28 +0200 |
commit | 6a1028b321791e48060a5305d855475caa2b0b58 (patch) | |
tree | 837286f8f962c0764de0ed13f196118744c89d95 /controller-api | |
parent | eae2b9349be3721f21dfb5e593f9f2a5fe93e948 (diff) |
Refresh routing policies on deploy (de)activation
Refreshing routing policies and performing the necessary DNS updates are
somewhat time sensitive, especially in manually deployed environments, hence it
makes sense that this should be done as early as possible.
After introducing queuing of name service requests in #9224 it became obvious
that the asynchronous behaviour of `RoutingPolicyMaintainer` is no longer
needed. Because name service requests are now executed asynchronously by
default, we can refresh policies during deployment (de)activation without
worrying about DNS service failures or rate limits.
Benefits of this change:
- Reduces worst-case DNS propagation time by 5 minutes.
- We no longer need to update *all* routing policies in the system when
refreshing policies. This both reduces number of queued name service
requests and distributes them over a longer duration.
- Implementation is simplified since the system-wide dimension disappears.
- Fetching of load balancers from config servers conincides with deployment
and are thus spread over a longer duration.
Diffstat (limited to 'controller-api')
-rw-r--r-- | controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ConfigServer.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ConfigServer.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ConfigServer.java index bcad82a23c1..43ae29ee922 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ConfigServer.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ConfigServer.java @@ -1,11 +1,12 @@ // Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.controller.api.integration.configserver; +import com.yahoo.config.provision.ApplicationId; +import com.yahoo.config.provision.zone.ZoneId; import com.yahoo.vespa.hosted.controller.api.application.v4.model.DeployOptions; import com.yahoo.vespa.hosted.controller.api.application.v4.model.EndpointStatus; import com.yahoo.vespa.hosted.controller.api.identifiers.DeploymentId; import com.yahoo.vespa.hosted.controller.api.identifiers.Hostname; -import com.yahoo.config.provision.zone.ZoneId; import com.yahoo.vespa.serviceview.bindings.ApplicationView; import java.io.IOException; @@ -76,4 +77,7 @@ public interface ConfigServer { /** Get all load balancers in given zone */ List<LoadBalancer> getLoadBalancers(ZoneId zone); + /** Get all load balancers for application in given zone */ + List<LoadBalancer> getLoadBalancers(ApplicationId application, ZoneId zone); + } |