Hydrology pool host cap

- Hydrology planner pool minimum never exceeds the host core count (floor 2)
This commit is contained in:
Brian Neumann-Fopiano committed 2026-10-22 04:08:14 -04:00
1 parent ae1a84702c
commit b712cbf93d
2 files changed
+14 -6

No files matched your search

@@ -144,11 +144,11 @@ public class MultiBurst extends MultiBurstSupport {
}
static int plannerParallelism() {
return plannerParallelism(MultiBurstSupport.performanceProcessors());
return plannerParallelism(MultiBurstSupport.performanceProcessors(), Runtime.getRuntime().availableProcessors());
}
static int plannerParallelism(int performanceProcessors) {
return Math.max(4, performanceProcessors);
static int plannerParallelism(int performanceProcessors, int availableProcessors) {
return Math.max(2, Math.min(Math.max(4, performanceProcessors), availableProcessors));
}
@Override
@@ -63,9 +63,17 @@ public class HydrologyBurstTest {
@Test
public void plannerPoolFollowsThePerformanceCores() {
assertEquals(12, MultiBurst.HydrologyBurst.plannerParallelism(12));
assertEquals(4, MultiBurst.HydrologyBurst.plannerParallelism(1));
assertEquals(32, MultiBurst.HydrologyBurst.plannerParallelism(32));
assertEquals(12, MultiBurst.HydrologyBurst.plannerParallelism(12, 16));
assertEquals(4, MultiBurst.HydrologyBurst.plannerParallelism(1, 8));
assertEquals(32, MultiBurst.HydrologyBurst.plannerParallelism(32, 32));
}
@Test
public void plannerPoolNeverOutgrowsASmallHost() {
assertEquals(2, MultiBurst.HydrologyBurst.plannerParallelism(1, 1));
assertEquals(2, MultiBurst.HydrologyBurst.plannerParallelism(2, 2));
assertEquals(3, MultiBurst.HydrologyBurst.plannerParallelism(3, 3));
assertEquals(4, MultiBurst.HydrologyBurst.plannerParallelism(2, 4));
}
@Test