capture result map from records automatically

This commit is contained in:
Jonathan Shook
2023-12-16 00:44:13 -06:00
parent c3a42c1a75
commit 9fd3d4afb1
3 changed files with 56 additions and 9 deletions

View File

@@ -80,13 +80,15 @@ public class NB_optimo extends NBBaseCommand {
SimFrameJournal<OptimoFrameParams> journal = new SimFrameJournal<>();
OptimoParamModel model = new OptimoParamModel();
model.add("rate", 20, 50, 1000000,
OptimoSearchSettings optimoSearchParams = new OptimoSearchSettings(params, model);
model.add("rate", 20, optimoSearchParams.startRate(), optimoSearchParams.startRate()*4,
rate -> flywheel.onEvent(ParamChange.of(new CycleRateSpec(rate, 1.1d, SimRateSpec.Verb.restart)))
);
model.add("threads", 10, 50, 2000,
threads -> flywheel.onEvent(ParamChange.of(new SetThreads((int) (threads))))
);
OptimoSearchSettings optimoSearchParams = new OptimoSearchSettings(params, model);
SimFrameCapture capture = this.perfValueMeasures(flywheel, optimoSearchParams);
SimFrameFunction frameFunction = new OptimoFrameFunction(controller, optimoSearchParams, flywheel, capture, journal);

View File

@@ -17,8 +17,10 @@
package io.nosqlbench.scenarios.simframe.optimo;
import io.nosqlbench.engine.core.lifecycle.scenario.container.NBCommandParams;
import io.nosqlbench.nb.api.engine.util.Unit;
public record OptimoSearchSettings(
double startRate,
long sample_time_ms,
double cutoff_quantile,
double cutoff_ms,
@@ -26,6 +28,7 @@ public record OptimoSearchSettings(
) {
public OptimoSearchSettings(NBCommandParams params, OptimoParamModel model) {
this(
params.maybeGet("startrate").flatMap(Unit::doubleCountFor).orElse(1000.0d),
params.maybeGet("sample_time_ms").map(Long::parseLong).orElse(5000L),
params.maybeGet("cutoff_quantile").map(Double::parseDouble).orElse(0.99),
params.maybeGet("cutoff_ms").map(Double::parseDouble).orElse(50.0d),