replace ActivityDef with NBConfigurable

This commit is contained in:
Jonathan Shook
2025-01-02 12:15:11 -06:00
parent 3ab18635bb
commit 97e7b16d77
61 changed files with 1316 additions and 1373 deletions

View File

@@ -70,14 +70,14 @@ public class DiagDriverAdapter extends BaseDriverAdapter<DiagOp, DiagSpace> impl
@Override
public NBConfigModel getConfigModel() {
NBConfigModel model = super.getConfigModel();
model.add(DiagSpace.getConfigModel());
NBConfigModel model = getConfigModel();
model.add(DiagSpace.getStaticConfigModel());
return model;
}
@Override
public NBConfigModel getReconfigModel() {
NBConfigModel model = super.getReconfigModel();
NBConfigModel model = getReconfigModel();
NBConfigModel mapperModel = NBReconfigurable.collectModels(DiagDriverAdapter.class, List.of(mapper));
return model.add(mapperModel);
}

View File

@@ -20,6 +20,7 @@ import io.nosqlbench.adapter.diag.optasks.DiagTask;
import io.nosqlbench.adapters.api.activityimpl.BaseOpDispenser;
import io.nosqlbench.adapters.api.templating.ParsedOp;
import io.nosqlbench.nb.api.config.standard.NBConfigModel;
import io.nosqlbench.nb.api.config.standard.NBConfigurable;
import io.nosqlbench.nb.api.config.standard.NBConfiguration;
import io.nosqlbench.nb.api.config.standard.NBReconfigurable;
import io.nosqlbench.nb.api.components.core.NBParentComponentInjection;
@@ -102,6 +103,16 @@ public class DiagOpDispenser extends BaseOpDispenser<DiagOp,DiagSpace> implement
return opFunc.getReconfigModel();
}
@Override
public void applyConfig(NBConfiguration cfg) {
}
@Override
public NBConfigModel getConfigModel() {
return null;
}
private final static class OpFunc implements LongFunction<DiagOp>, NBReconfigurable {
private final List<DiagTask> tasks;
private final LongFunction<DiagSpace> spaceF;
@@ -126,6 +137,17 @@ public class DiagOpDispenser extends BaseOpDispenser<DiagOp,DiagSpace> implement
public NBConfigModel getReconfigModel() {
return NBReconfigurable.collectModels(DiagTask.class, tasks);
}
@Override
public void applyConfig(NBConfiguration cfg) {
NBConfigurable.applyMatching(cfg, tasks);
}
@Override
public NBConfigModel getConfigModel() {
return NBConfigurable.collectModels(DiagTask.class, tasks);
}
}
@Override

View File

@@ -20,9 +20,7 @@ import io.nosqlbench.adapters.api.activityimpl.OpDispenser;
import io.nosqlbench.adapters.api.activityimpl.OpMapper;
import io.nosqlbench.adapters.api.templating.ParsedOp;
import io.nosqlbench.nb.api.components.core.NBComponent;
import io.nosqlbench.nb.api.config.standard.NBConfigModel;
import io.nosqlbench.nb.api.config.standard.NBConfiguration;
import io.nosqlbench.nb.api.config.standard.NBReconfigurable;
import io.nosqlbench.nb.api.config.standard.*;
import java.util.ArrayList;
import java.util.LinkedHashMap;
@@ -32,6 +30,7 @@ import java.util.function.LongFunction;
public class DiagOpMapper implements OpMapper<DiagOp,DiagSpace>, NBReconfigurable {
private final Map<String,DiagOpDispenser> dispensers = new LinkedHashMap<>();
private final DiagDriverAdapter adapter;
private NBConfiguration config;
public DiagOpMapper(DiagDriverAdapter adapter) {
this.adapter = adapter;
@@ -45,6 +44,16 @@ public class DiagOpMapper implements OpMapper<DiagOp,DiagSpace>, NBReconfigurabl
return dispenser;
}
@Override
public NBConfigModel getConfigModel() {
return ConfigModel.of(DiagOpMapper.class).asReadOnly();
}
@Override
public void applyConfig(NBConfiguration cfg) {
this.config = cfg;
NBConfigurable.applyMatching(cfg, dispensers.values());
}
@Override
public void applyReconfig(NBConfiguration recfg) {

View File

@@ -17,17 +17,12 @@
package io.nosqlbench.adapter.diag;
import io.nosqlbench.adapters.api.activityimpl.uniform.BaseSpace;
import io.nosqlbench.engine.api.activityapi.core.ActivityDefObserver;
import io.nosqlbench.engine.api.activityapi.simrate.RateLimiter;
import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef;
import io.nosqlbench.nb.api.config.standard.ConfigModel;
import io.nosqlbench.nb.api.config.standard.NBConfigModel;
import io.nosqlbench.nb.api.config.standard.NBConfiguration;
import io.nosqlbench.nb.api.config.standard.Param;
import io.nosqlbench.nb.api.config.standard.*;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class DiagSpace extends BaseSpace<DiagSpace> implements ActivityDefObserver {
public class DiagSpace extends BaseSpace<DiagSpace> implements NBConfigurable {
private final Logger logger = LogManager.getLogger(DiagSpace.class);
private final NBConfiguration cfg;
@@ -47,7 +42,10 @@ public class DiagSpace extends BaseSpace<DiagSpace> implements ActivityDefObserv
this.errorOnClose = cfg.get("erroronclose",boolean.class);
}
public static NBConfigModel getConfigModel() {
public NBConfigModel getConfigModel() {
return getStaticConfigModel();
}
public static NBConfigModel getStaticConfigModel() {
return ConfigModel.of(DiagSpace.class)
.add(Param.defaultTo("interval",1000))
.add(Param.defaultTo("erroronclose", false))
@@ -60,11 +58,6 @@ public class DiagSpace extends BaseSpace<DiagSpace> implements ActivityDefObserv
}
}
@Override
public void onActivityDefUpdate(ActivityDef activityDef) {
NBConfiguration cfg = getConfigModel().apply(activityDef.getParams().getStringStringMap());
this.applyConfig(cfg);
}
@Override
public void close() throws Exception {
@@ -73,4 +66,5 @@ public class DiagSpace extends BaseSpace<DiagSpace> implements ActivityDefObserv
throw new RuntimeException("diag space was configured to throw this error when it was configured.");
}
}
}