77 */
88public class PartitioningSettings {
99 private final long minActivePartitions ;
10+ private final long maxActivePartitions ;
1011 private final long partitionCountLimit ;
1112 private final AutoPartitioningStrategy autoPartitioningStrategy ;
1213 private final AutoPartitioningWriteStrategySettings writeStrategySettings ;
1314
1415 private PartitioningSettings (Builder builder ) {
1516 this .minActivePartitions = builder .minActivePartitions ;
17+ this .maxActivePartitions = builder .maxActivePartitions ;
1618 this .partitionCountLimit = builder .partitionCountLimit ;
1719 this .autoPartitioningStrategy = builder .autoPartitioningStrategy ;
1820 this .writeStrategySettings = builder .writeStrategySettings ;
@@ -26,10 +28,19 @@ public long getMinActivePartitions() {
2628 return minActivePartitions ;
2729 }
2830
31+ /**
32+ * @return maximum partition count auto merge would stop working at.
33+ * Zero value means default - 1.
34+ */
35+ public long getMaxActivePartitions () {
36+ return maxActivePartitions ;
37+ }
38+
2939 /**
3040 * @return Limit for total partition count, including active (open for write) and
3141 * read-only partitions.
3242 * Zero value means default - 100.
43+ * @deprecated Use {@link #getMaxActivePartitions()} instead
3344 */
3445 public long getPartitionCountLimit () {
3546 return partitionCountLimit ;
@@ -58,6 +69,7 @@ public static Builder newBuilder() {
5869 */
5970 public static class Builder {
6071 private long minActivePartitions = 0 ;
72+ private long maxActivePartitions = 0 ;
6173 private long partitionCountLimit = 0 ;
6274 private AutoPartitioningStrategy autoPartitioningStrategy = AutoPartitioningStrategy .DISABLED ;
6375 private AutoPartitioningWriteStrategySettings writeStrategySettings = null ;
@@ -72,12 +84,24 @@ public Builder setMinActivePartitions(long minActivePartitions) {
7284 return this ;
7385 }
7486
87+ /**
88+ * @param maxActivePartitions maximum partition count auto merge would stop working at.
89+ * Zero value means default - 1.
90+ * @return settings builder
91+ */
92+ public Builder setMaxActivePartitions (long maxActivePartitions ) {
93+ this .maxActivePartitions = maxActivePartitions ;
94+ return this ;
95+ }
96+
7597 /**
7698 * @param partitionCountLimit Limit for total partition count, including active (open for write) and
7799 * read-only partitions.
78100 * Zero value means default - 100.
79101 * @return settings builder
102+ * @deprecated Use {@link #setMaxActivePartitions(long)} instead.
80103 */
104+ @ Deprecated
81105 public Builder setPartitionCountLimit (long partitionCountLimit ) {
82106 this .partitionCountLimit = partitionCountLimit ;
83107 return this ;
@@ -120,13 +144,20 @@ public boolean equals(Object o) {
120144 }
121145 PartitioningSettings that = (PartitioningSettings ) o ;
122146 return minActivePartitions == that .minActivePartitions &&
147+ maxActivePartitions == that .maxActivePartitions &&
123148 partitionCountLimit == that .partitionCountLimit &&
124149 autoPartitioningStrategy == that .autoPartitioningStrategy &&
125150 Objects .equals (writeStrategySettings , that .writeStrategySettings );
126151 }
127152
128153 @ Override
129154 public int hashCode () {
130- return Objects .hash (minActivePartitions , partitionCountLimit , autoPartitioningStrategy , writeStrategySettings );
155+ return Objects .hash (
156+ minActivePartitions ,
157+ maxActivePartitions ,
158+ partitionCountLimit ,
159+ autoPartitioningStrategy ,
160+ writeStrategySettings
161+ );
131162 }
132163}
0 commit comments