@@ -142,7 +142,7 @@ public Status acceptResolvedAddresses(ResolvedAddresses resolvedAddresses) {
142142 // If outlier detection is actually configured, start a timer that will periodically try to
143143 // detect outliers.
144144 if (config .outlierDetectionEnabled ()) {
145- Long initialDelayNanos ;
145+ long initialDelayNanos ;
146146
147147 if (detectionTimerStartNanos == null ) {
148148 // On the first go we use the configured interval.
@@ -723,7 +723,7 @@ void swapCounters() {
723723 * that don't have ejected subchannels and uneject ones that have spent the maximum ejection
724724 * time allowed.
725725 */
726- void maybeUnejectOutliers (Long detectionTimerStartNanos ) {
726+ void maybeUnejectOutliers (long detectionTimerStartNanos ) {
727727 for (EndpointTracker tracker : trackerMap .values ()) {
728728 if (!tracker .subchannelsEjected ()) {
729729 tracker .decrementEjectionTimeMultiplier ();
@@ -951,64 +951,54 @@ private static boolean hasSingleAddress(List<EquivalentAddressGroup> addressGrou
951951 */
952952 public static final class OutlierDetectionLoadBalancerConfig {
953953
954- public final Long intervalNanos ;
955- public final Long baseEjectionTimeNanos ;
956- public final Long maxEjectionTimeNanos ;
957- public final Integer maxEjectionPercent ;
954+ public final long intervalNanos ;
955+ public final long baseEjectionTimeNanos ;
956+ public final long maxEjectionTimeNanos ;
957+ public final int maxEjectionPercent ;
958958 public final SuccessRateEjection successRateEjection ;
959959 public final FailurePercentageEjection failurePercentageEjection ;
960960 public final Object childConfig ;
961961
962- private OutlierDetectionLoadBalancerConfig (Long intervalNanos ,
963- Long baseEjectionTimeNanos ,
964- Long maxEjectionTimeNanos ,
965- Integer maxEjectionPercent ,
966- SuccessRateEjection successRateEjection ,
967- FailurePercentageEjection failurePercentageEjection ,
968- Object childConfig ) {
969- this .intervalNanos = intervalNanos ;
970- this .baseEjectionTimeNanos = baseEjectionTimeNanos ;
971- this .maxEjectionTimeNanos = maxEjectionTimeNanos ;
972- this .maxEjectionPercent = maxEjectionPercent ;
973- this .successRateEjection = successRateEjection ;
974- this .failurePercentageEjection = failurePercentageEjection ;
975- this .childConfig = childConfig ;
962+ private OutlierDetectionLoadBalancerConfig (Builder builder ) {
963+ this .intervalNanos = builder .intervalNanos ;
964+ this .baseEjectionTimeNanos = builder .baseEjectionTimeNanos ;
965+ this .maxEjectionTimeNanos = builder .maxEjectionTimeNanos ;
966+ this .maxEjectionPercent = builder .maxEjectionPercent ;
967+ this .successRateEjection = builder .successRateEjection ;
968+ this .failurePercentageEjection = builder .failurePercentageEjection ;
969+ this .childConfig = builder .childConfig ;
976970 }
977971
978972 /** Builds a new {@link OutlierDetectionLoadBalancerConfig}. */
979973 public static class Builder {
980- Long intervalNanos = 10_000_000_000L ; // 10s
981- Long baseEjectionTimeNanos = 30_000_000_000L ; // 30s
982- Long maxEjectionTimeNanos = 300_000_000_000L ; // 300s
983- Integer maxEjectionPercent = 10 ;
974+ long intervalNanos = 10_000_000_000L ; // 10s
975+ long baseEjectionTimeNanos = 30_000_000_000L ; // 30s
976+ long maxEjectionTimeNanos = 300_000_000_000L ; // 300s
977+ int maxEjectionPercent = 10 ;
984978 SuccessRateEjection successRateEjection ;
985979 FailurePercentageEjection failurePercentageEjection ;
986980 Object childConfig ;
987981
988982 /** The interval between outlier detection sweeps. */
989- public Builder setIntervalNanos (Long intervalNanos ) {
990- checkArgument (intervalNanos != null );
983+ public Builder setIntervalNanos (long intervalNanos ) {
991984 this .intervalNanos = intervalNanos ;
992985 return this ;
993986 }
994987
995988 /** The base time an address is ejected for. */
996- public Builder setBaseEjectionTimeNanos (Long baseEjectionTimeNanos ) {
997- checkArgument (baseEjectionTimeNanos != null );
989+ public Builder setBaseEjectionTimeNanos (long baseEjectionTimeNanos ) {
998990 this .baseEjectionTimeNanos = baseEjectionTimeNanos ;
999991 return this ;
1000992 }
1001993
1002994 /** The longest time an address can be ejected. */
1003- public Builder setMaxEjectionTimeNanos (Long maxEjectionTimeNanos ) {
1004- checkArgument (maxEjectionTimeNanos != null );
995+ public Builder setMaxEjectionTimeNanos (long maxEjectionTimeNanos ) {
1005996 this .maxEjectionTimeNanos = maxEjectionTimeNanos ;
1006997 return this ;
1007998 }
1008999
10091000 /** The algorithm agnostic maximum percentage of addresses that can be ejected. */
1010- public Builder setMaxEjectionPercent (Integer maxEjectionPercent ) {
1011- checkArgument (maxEjectionPercent != null );
1001+ public Builder setMaxEjectionPercent (int maxEjectionPercent ) {
10121002 this .maxEjectionPercent = maxEjectionPercent ;
10131003 return this ;
10141004 }
@@ -1040,118 +1030,106 @@ public Builder setChildConfig(Object childConfig) {
10401030 /** Builds a new instance of {@link OutlierDetectionLoadBalancerConfig}. */
10411031 public OutlierDetectionLoadBalancerConfig build () {
10421032 checkState (childConfig != null );
1043- return new OutlierDetectionLoadBalancerConfig (intervalNanos , baseEjectionTimeNanos ,
1044- maxEjectionTimeNanos , maxEjectionPercent , successRateEjection ,
1045- failurePercentageEjection , childConfig );
1033+ return new OutlierDetectionLoadBalancerConfig (this );
10461034 }
10471035 }
10481036
10491037 /** The configuration for success rate ejection. */
10501038 public static class SuccessRateEjection {
10511039
1052- public final Integer stdevFactor ;
1053- public final Integer enforcementPercentage ;
1054- public final Integer minimumHosts ;
1055- public final Integer requestVolume ;
1056-
1057- SuccessRateEjection (Integer stdevFactor , Integer enforcementPercentage , Integer minimumHosts ,
1058- Integer requestVolume ) {
1059- this .stdevFactor = stdevFactor ;
1060- this .enforcementPercentage = enforcementPercentage ;
1061- this .minimumHosts = minimumHosts ;
1062- this .requestVolume = requestVolume ;
1040+ public final int stdevFactor ;
1041+ public final int enforcementPercentage ;
1042+ public final int minimumHosts ;
1043+ public final int requestVolume ;
1044+
1045+ SuccessRateEjection (Builder builder ) {
1046+ this .stdevFactor = builder .stdevFactor ;
1047+ this .enforcementPercentage = builder .enforcementPercentage ;
1048+ this .minimumHosts = builder .minimumHosts ;
1049+ this .requestVolume = builder .requestVolume ;
10631050 }
10641051
10651052 /** Builds new instances of {@link SuccessRateEjection}. */
10661053 public static final class Builder {
10671054
1068- Integer stdevFactor = 1900 ;
1069- Integer enforcementPercentage = 100 ;
1070- Integer minimumHosts = 5 ;
1071- Integer requestVolume = 100 ;
1055+ int stdevFactor = 1900 ;
1056+ int enforcementPercentage = 100 ;
1057+ int minimumHosts = 5 ;
1058+ int requestVolume = 100 ;
10721059
10731060 /** The product of this and the standard deviation of success rates determine the ejection
10741061 * threshold.
10751062 */
1076- public Builder setStdevFactor (Integer stdevFactor ) {
1077- checkArgument (stdevFactor != null );
1063+ public Builder setStdevFactor (int stdevFactor ) {
10781064 this .stdevFactor = stdevFactor ;
10791065 return this ;
10801066 }
10811067
10821068 /** Only eject this percentage of outliers. */
1083- public Builder setEnforcementPercentage (Integer enforcementPercentage ) {
1084- checkArgument (enforcementPercentage != null );
1069+ public Builder setEnforcementPercentage (int enforcementPercentage ) {
10851070 checkArgument (enforcementPercentage >= 0 && enforcementPercentage <= 100 );
10861071 this .enforcementPercentage = enforcementPercentage ;
10871072 return this ;
10881073 }
10891074
10901075 /** The minimum amount of hosts needed for success rate ejection. */
1091- public Builder setMinimumHosts (Integer minimumHosts ) {
1092- checkArgument (minimumHosts != null );
1076+ public Builder setMinimumHosts (int minimumHosts ) {
10931077 checkArgument (minimumHosts >= 0 );
10941078 this .minimumHosts = minimumHosts ;
10951079 return this ;
10961080 }
10971081
10981082 /** The minimum address request volume to be considered for success rate ejection. */
1099- public Builder setRequestVolume (Integer requestVolume ) {
1100- checkArgument (requestVolume != null );
1083+ public Builder setRequestVolume (int requestVolume ) {
11011084 checkArgument (requestVolume >= 0 );
11021085 this .requestVolume = requestVolume ;
11031086 return this ;
11041087 }
11051088
11061089 /** Builds a new instance of {@link SuccessRateEjection}. */
11071090 public SuccessRateEjection build () {
1108- return new SuccessRateEjection (stdevFactor , enforcementPercentage , minimumHosts ,
1109- requestVolume );
1091+ return new SuccessRateEjection (this );
11101092 }
11111093 }
11121094 }
11131095
11141096 /** The configuration for failure percentage ejection. */
11151097 public static class FailurePercentageEjection {
1116- public final Integer threshold ;
1117- public final Integer enforcementPercentage ;
1118- public final Integer minimumHosts ;
1119- public final Integer requestVolume ;
1120-
1121- FailurePercentageEjection (Integer threshold , Integer enforcementPercentage ,
1122- Integer minimumHosts , Integer requestVolume ) {
1123- this .threshold = threshold ;
1124- this .enforcementPercentage = enforcementPercentage ;
1125- this .minimumHosts = minimumHosts ;
1126- this .requestVolume = requestVolume ;
1098+ public final int threshold ;
1099+ public final int enforcementPercentage ;
1100+ public final int minimumHosts ;
1101+ public final int requestVolume ;
1102+
1103+ FailurePercentageEjection (Builder builder ) {
1104+ this .threshold = builder .threshold ;
1105+ this .enforcementPercentage = builder .enforcementPercentage ;
1106+ this .minimumHosts = builder .minimumHosts ;
1107+ this .requestVolume = builder .requestVolume ;
11271108 }
11281109
11291110 /** For building new {@link FailurePercentageEjection} instances. */
11301111 public static class Builder {
1131- Integer threshold = 85 ;
1132- Integer enforcementPercentage = 100 ;
1133- Integer minimumHosts = 5 ;
1134- Integer requestVolume = 50 ;
1112+ int threshold = 85 ;
1113+ int enforcementPercentage = 100 ;
1114+ int minimumHosts = 5 ;
1115+ int requestVolume = 50 ;
11351116
11361117 /** The failure percentage that will result in an address being considered an outlier. */
1137- public Builder setThreshold (Integer threshold ) {
1138- checkArgument (threshold != null );
1118+ public Builder setThreshold (int threshold ) {
11391119 checkArgument (threshold >= 0 && threshold <= 100 );
11401120 this .threshold = threshold ;
11411121 return this ;
11421122 }
11431123
11441124 /** Only eject this percentage of outliers. */
1145- public Builder setEnforcementPercentage (Integer enforcementPercentage ) {
1146- checkArgument (enforcementPercentage != null );
1125+ public Builder setEnforcementPercentage (int enforcementPercentage ) {
11471126 checkArgument (enforcementPercentage >= 0 && enforcementPercentage <= 100 );
11481127 this .enforcementPercentage = enforcementPercentage ;
11491128 return this ;
11501129 }
11511130
11521131 /** The minimum amount of host for failure percentage ejection to be enabled. */
1153- public Builder setMinimumHosts (Integer minimumHosts ) {
1154- checkArgument (minimumHosts != null );
1132+ public Builder setMinimumHosts (int minimumHosts ) {
11551133 checkArgument (minimumHosts >= 0 );
11561134 this .minimumHosts = minimumHosts ;
11571135 return this ;
@@ -1161,17 +1139,15 @@ public Builder setMinimumHosts(Integer minimumHosts) {
11611139 * The request volume required for an address to be considered for failure percentage
11621140 * ejection.
11631141 */
1164- public Builder setRequestVolume (Integer requestVolume ) {
1165- checkArgument (requestVolume != null );
1142+ public Builder setRequestVolume (int requestVolume ) {
11661143 checkArgument (requestVolume >= 0 );
11671144 this .requestVolume = requestVolume ;
11681145 return this ;
11691146 }
11701147
11711148 /** Builds a new instance of {@link FailurePercentageEjection}. */
11721149 public FailurePercentageEjection build () {
1173- return new FailurePercentageEjection (threshold , enforcementPercentage , minimumHosts ,
1174- requestVolume );
1150+ return new FailurePercentageEjection (this );
11751151 }
11761152 }
11771153 }
0 commit comments