@@ -91,6 +91,7 @@ tags, and then generate with `hack/update-toc.sh`.
91
91
- [ Risks and Mitigations] ( #risks-and-mitigations )
92
92
- [ Design Details] ( #design-details )
93
93
- [ Scheduler Implementation] ( #scheduler-implementation )
94
+ - [ Scoring] ( #scoring )
94
95
- [ Test Plan] ( #test-plan )
95
96
- [ Prerequisite testing updates] ( #prerequisite-testing-updates )
96
97
- [ Unit tests] ( #unit-tests )
@@ -899,6 +900,27 @@ would need a higher score, which currently is planned for beta of this feature.
899
900
For alpha, the scheduler may still pick a node with a less preferred device, if
900
901
there are nodes with each type of device available.
901
902
903
+ # ### Scoring
904
+
905
+ Full support for scoring in DRA is not in scope for this feature, but we will
906
+ implement limited scoring to make sure that nodes which can satisfy claims with
907
+ higher ranked subrequests are preferred over others.
908
+
909
+ We will implement this by letting the dynamicresources scheduler plugin implement
910
+ the `Score` interface.
911
+
912
+ The allocation result for each node will be given a score based on the ranking of
913
+ the chosen subrequests across all requests using the `FirstAvailable` field across
914
+ all claims referenced by the Pod. Since the number of subrequests for each request
915
+ is capped at 8, we will compute a score between 1 and 8 for each request, with 8
916
+ being the best (i.e. the first option was chosen) and 1 if the 8th subrequest was
917
+ chosen. We save the score of 0 in case we want to implement optional requests. Since
918
+ the score for every node is computed based on the same claims, we end up with a
919
+ ranking of the results from all nodes.
920
+
921
+ We don't see a need to normalize the scores for now, but this might be needed when
922
+ we implement more complicated scoring in the future.
923
+
902
924
# ## Test Plan
903
925
904
926
<!--
0 commit comments