summaryrefslogtreecommitdiffstats
path: root/config-model-api
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2023-12-08 12:07:59 +0100
committerHarald Musum <musum@yahooinc.com>2023-12-08 12:07:59 +0100
commit96cba97a152b9c67da0a5860e920ab5a39887a94 (patch)
tree5ca6a11863f9736f4c39ee13de7a0bc770c8cc72 /config-model-api
parent2908eb01b5d7d8d427af68efe1f05cc225a76423 (diff)
Add validator that checks if restart is needed due to Onnx model changes
Validates changes and creates a restart action if needed and makes sure configs for cluster are marked as restartOnDeploy
Diffstat (limited to 'config-model-api')
-rw-r--r--config-model-api/abi-spec.json33
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java1
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/model/api/OnnxModelCost.java11
3 files changed, 41 insertions, 4 deletions
diff --git a/config-model-api/abi-spec.json b/config-model-api/abi-spec.json
index 8f5d0d37c21..ba483fb0421 100644
--- a/config-model-api/abi-spec.json
+++ b/config-model-api/abi-spec.json
@@ -1289,7 +1289,8 @@
"public boolean usePerDocumentThrottledDeleteBucket()",
"public boolean alwaysMarkPhraseExpensive()",
"public boolean createPostinglistWhenNonStrict()",
- "public boolean useEstimateForFetchPostings()"
+ "public boolean useEstimateForFetchPostings()",
+ "public boolean restartOnDeployWhenOnnxModelChanges()"
],
"fields" : [ ]
},
@@ -1457,7 +1458,10 @@
"public abstract void registerModel(com.yahoo.config.application.api.ApplicationFile)",
"public abstract void registerModel(com.yahoo.config.application.api.ApplicationFile, com.yahoo.config.model.api.OnnxModelOptions)",
"public abstract void registerModel(java.net.URI)",
- "public abstract void registerModel(java.net.URI, com.yahoo.config.model.api.OnnxModelOptions)"
+ "public abstract void registerModel(java.net.URI, com.yahoo.config.model.api.OnnxModelOptions)",
+ "public abstract java.util.Map models()",
+ "public abstract void setRestartOnDeploy()",
+ "public abstract boolean restartOnDeploy()"
],
"fields" : [ ]
},
@@ -1477,7 +1481,30 @@
"public void registerModel(com.yahoo.config.application.api.ApplicationFile)",
"public void registerModel(com.yahoo.config.application.api.ApplicationFile, com.yahoo.config.model.api.OnnxModelOptions)",
"public void registerModel(java.net.URI)",
- "public void registerModel(java.net.URI, com.yahoo.config.model.api.OnnxModelOptions)"
+ "public void registerModel(java.net.URI, com.yahoo.config.model.api.OnnxModelOptions)",
+ "public java.util.Map models()",
+ "public void setRestartOnDeploy()",
+ "public boolean restartOnDeploy()"
+ ],
+ "fields" : [ ]
+ },
+ "com.yahoo.config.model.api.OnnxModelCost$ModelInfo" : {
+ "superClass" : "java.lang.Record",
+ "interfaces" : [ ],
+ "attributes" : [
+ "public",
+ "final",
+ "record"
+ ],
+ "methods" : [
+ "public void <init>(java.lang.String, long, long, java.util.Optional)",
+ "public final java.lang.String toString()",
+ "public final int hashCode()",
+ "public final boolean equals(java.lang.Object)",
+ "public java.lang.String modelId()",
+ "public long estimatedCost()",
+ "public long hash()",
+ "public java.util.Optional onnxModelOptions()"
],
"fields" : [ ]
},
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java
index f34f63a0cfc..e5cc13719c1 100644
--- a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java
+++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java
@@ -118,6 +118,7 @@ public interface ModelContext {
@ModelFeatureFlag(owners = {"baldersheim"}) default boolean alwaysMarkPhraseExpensive() { return false; }
@ModelFeatureFlag(owners = {"baldersheim"}) default boolean createPostinglistWhenNonStrict() { return true; }
@ModelFeatureFlag(owners = {"baldersheim"}) default boolean useEstimateForFetchPostings() { return false; }
+ @ModelFeatureFlag(owners = {"hmusum"}) default boolean restartOnDeployWhenOnnxModelChanges() { return false; }
}
/** Warning: As elsewhere in this package, do not make backwards incompatible changes that will break old config models! */
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/OnnxModelCost.java b/config-model-api/src/main/java/com/yahoo/config/model/api/OnnxModelCost.java
index b98667457e4..c13ce4def09 100644
--- a/config-model-api/src/main/java/com/yahoo/config/model/api/OnnxModelCost.java
+++ b/config-model-api/src/main/java/com/yahoo/config/model/api/OnnxModelCost.java
@@ -6,11 +6,12 @@ import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.provision.ApplicationId;
import java.net.URI;
+import java.util.Map;
+import java.util.Optional;
/**
* @author bjorncs
*/
-// TODO: Rename
public interface OnnxModelCost {
Calculator newCalculator(ApplicationPackage appPkg, ApplicationId applicationId);
@@ -21,8 +22,13 @@ public interface OnnxModelCost {
void registerModel(ApplicationFile path, OnnxModelOptions onnxModelOptions);
void registerModel(URI uri);
void registerModel(URI uri, OnnxModelOptions onnxModelOptions);
+ Map<String, ModelInfo> models();
+ void setRestartOnDeploy();
+ boolean restartOnDeploy();
}
+ record ModelInfo(String modelId, long estimatedCost, long hash, Optional<OnnxModelOptions> onnxModelOptions) {}
+
static OnnxModelCost disabled() { return new DisabledOnnxModelCost(); }
class DisabledOnnxModelCost implements OnnxModelCost, Calculator {
@@ -32,6 +38,9 @@ public interface OnnxModelCost {
@Override public void registerModel(ApplicationFile path, OnnxModelOptions onnxModelOptions) {}
@Override public void registerModel(URI uri) {}
@Override public void registerModel(URI uri, OnnxModelOptions onnxModelOptions) {}
+ @Override public Map<String, ModelInfo> models() { return Map.of(); }
+ @Override public void setRestartOnDeploy() {}
+ @Override public boolean restartOnDeploy() { return false; }
}
}