update categories for functions

This commit is contained in:
Jonathan Shook 2021-11-16 12:55:18 -06:00
parent b8295eb54e
commit 44b8119b38
79 changed files with 258 additions and 64 deletions

View File

@ -1,11 +1,14 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.rainbow;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
/**
* Utility function used for advanced data generation experiments.
*/
@ThreadSafeMapper
@Categories({Category.experimental})
public class TokenMapFileCycle extends TokenMapFileBaseFunction {
public TokenMapFileCycle(String filename, boolean loopdata, boolean ascending) {

View File

@ -1,11 +1,14 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.rainbow;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
/**
* Utility function used for advanced data generation experiments.
*/
@ThreadSafeMapper
@Categories({Category.experimental})
public class TokenMapFileNextCycle extends TokenMapFileBaseFunction {
public TokenMapFileNextCycle(String filename, boolean loopdata, boolean ascending) {

View File

@ -1,11 +1,14 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.rainbow;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
/**
* Utility function used for advanced data generation experiments.
*/
@ThreadSafeMapper
@Categories({Category.experimental})
public class TokenMapFileNextToken extends TokenMapFileBaseFunction {
public TokenMapFileNextToken(String filename, boolean loopdata, boolean ascending) {

View File

@ -1,8 +1,14 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.rainbow;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
/**
* Utility function used for advanced data generation experiments.
*/
@ThreadSafeMapper
@Categories({Category.experimental})
public class TokenMapFileToken extends TokenMapFileBaseFunction {
public TokenMapFileToken(String filename, boolean loopdata, boolean ascending) {

View File

@ -8,6 +8,8 @@ import io.nosqlbench.nb.api.config.standard.ConfigModel;
import io.nosqlbench.nb.api.config.standard.NBConfigModel;
import io.nosqlbench.nb.api.config.standard.NBMapConfigurable;
import io.nosqlbench.nb.api.config.standard.Param;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.HashMap;
@ -31,6 +33,7 @@ import java.util.function.LongUnaryOperator;
* </LI>
*/
@ThreadSafeMapper
@Categories({Category.experimental})
public class CustomFunc955 implements LongFunction<Map<?, ?>>, NBMapConfigurable {
private final LongToIntFunction sizefunc;

View File

@ -12,5 +12,6 @@ public enum Category {
functional,
statistics,
general,
objects
objects,
experimental
}

View File

@ -34,13 +34,13 @@ public class VirtDataDocs {
MethodHandle constructor = lookup.findConstructor(aClass, MethodType.methodType(Void.TYPE));
Object o = constructor.invoke();
if (DocFuncData.class.isAssignableFrom(o.getClass())) {
docs.add(DocFuncData.class.cast(o));
docs.add((DocFuncData) o);
} else {
throw new RuntimeException("class " + o.getClass() + " could not be assigned to " + DocFuncData.class.getSimpleName());
}
}
} catch (Throwable e) {
throw new RuntimeException("Error while loading doc models:" + e.toString());
throw new RuntimeException("Error while loading doc models:" + e);
}
return docs;

View File

@ -1,10 +1,13 @@
package io.nosqlbench.virtdata.library.basics.shared.from_double.to_double;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.DoubleUnaryOperator;
@ThreadSafeMapper
@Categories({Category.general})
public class Add implements DoubleUnaryOperator {
private final double addend;

View File

@ -1,11 +1,14 @@
package io.nosqlbench.virtdata.library.basics.shared.from_double.to_double;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.DoubleUnaryOperator;
@ThreadSafeMapper
@Categories({Category.general})
public class Clamp implements DoubleUnaryOperator {
private final double min;

View File

@ -1,10 +1,13 @@
package io.nosqlbench.virtdata.library.basics.shared.from_double.to_double;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.DoubleUnaryOperator;
@ThreadSafeMapper
@Categories({Category.general})
public class Div implements DoubleUnaryOperator {
private final double divisor;

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.from_double.to_double;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.library.basics.core.MVELExpr;
import io.nosqlbench.virtdata.library.basics.core.threadstate.SharedState;
@ -10,10 +12,9 @@ import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.DoubleUnaryOperator;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@ThreadSafeMapper
@Categories({Category.functional})
public class Expr implements DoubleUnaryOperator {
private final String expr;

View File

@ -1,10 +1,13 @@
package io.nosqlbench.virtdata.library.basics.shared.from_double.to_double;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.DoubleUnaryOperator;
@ThreadSafeMapper
@Categories({Category.general})
public class Max implements DoubleUnaryOperator {
private final double max;

View File

@ -1,10 +1,13 @@
package io.nosqlbench.virtdata.library.basics.shared.from_double.to_double;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.DoubleUnaryOperator;
@ThreadSafeMapper
@Categories({Category.general})
public class Min implements DoubleUnaryOperator {
private final double min;

View File

@ -1,10 +1,13 @@
package io.nosqlbench.virtdata.library.basics.shared.from_double.to_double;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.DoubleUnaryOperator;
@ThreadSafeMapper
@Categories({Category.general})
public class Mul implements DoubleUnaryOperator {
private final double factor;

View File

@ -18,6 +18,8 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_bytebuffer;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.library.basics.shared.from_long.to_long.Hash;
@ -29,6 +31,7 @@ import java.util.function.LongFunction;
* boundary;
*/
@ThreadSafeMapper
@Categories({Category.general})
public class HashedToByteBuffer implements LongFunction<ByteBuffer> {
private final Hash hash;

View File

@ -1,11 +1,14 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_double;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.LongToDoubleFunction;
@ThreadSafeMapper
@Categories({Category.general})
public class FixedValues implements LongToDoubleFunction {
private final long[] fixedValues;

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_double;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.library.basics.shared.from_long.to_long.Hash;
@ -30,6 +32,7 @@ import java.util.function.LongToDoubleFunction;
* expense of some precision at extremely large values.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class HashedDoubleRange implements LongToDoubleFunction {
private final double min;

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_double;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.library.basics.shared.from_long.to_long.Hash;
@ -14,6 +16,7 @@ import java.util.function.LongToDoubleFunction;
* stable for a given input value.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class HashedRangedToNonuniformDouble implements LongToDoubleFunction {
private final long min;

View File

@ -1,12 +1,15 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_double;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.LongToDoubleFunction;
@ThreadSafeMapper
@Categories({Category.general})
public class Interpolate implements LongToDoubleFunction {
private final double scale;

View File

@ -1,11 +1,14 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_int;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.library.basics.shared.from_long.to_long.CycleRange;
import java.util.function.LongToIntFunction;
@ThreadSafeMapper
@Categories({Category.general})
public class AddCycleRange implements LongToIntFunction {
private final CycleRange cycleRange;

View File

@ -1,11 +1,14 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_int;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.library.basics.shared.from_long.to_long.HashRange;
import java.util.function.LongToIntFunction;
@ThreadSafeMapper
@Categories({Category.general})
public class AddHashRange implements LongToIntFunction {
private final HashRange hashRange;

View File

@ -1,10 +1,13 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_int;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.LongToIntFunction;
@ThreadSafeMapper
@Categories({Category.general})
public class CycleRange implements LongToIntFunction {
private final long minValue;

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_int;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.library.basics.core.MVELExpr;
import io.nosqlbench.virtdata.library.basics.core.threadstate.SharedState;
@ -22,6 +24,7 @@ import java.util.function.LongToIntFunction;
* are preceding functions which modify the input value.
*/
@ThreadSafeMapper
@Categories({Category.functional})
public class Expr implements LongToIntFunction {
private final String expr;

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_int;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
@ -9,6 +11,8 @@ import java.util.function.LongToIntFunction;
* Yield a fixed value.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class FixedValue implements LongToIntFunction {
private final int fixedValue;

View File

@ -1,10 +1,13 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_int;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.LongToIntFunction;
@ThreadSafeMapper
@Categories({Category.general})
public class FixedValues implements LongToIntFunction {
private final int[] fixedValues;

View File

@ -8,13 +8,6 @@ import io.nosqlbench.virtdata.murmur.Murmur3F;
import java.nio.ByteBuffer;
import java.util.function.LongToIntFunction;
/**
* This uses the Murmur3F (64-bit optimized) version of Murmur3,
* not as a checksum, but as a simple hash. It doesn't bother
* pushing the high-64 bits of input, since it only uses the lower
* 64 bits of output. It does, however, return the absolute value.
* This is to make it play nice with users and other libraries.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class Hash implements LongToIntFunction {

View File

@ -1,6 +1,8 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_int;
import io.nosqlbench.nb.api.errors.BasicError;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.library.basics.shared.from_long.to_long.Hash;
@ -8,6 +10,7 @@ import io.nosqlbench.virtdata.library.basics.shared.from_long.to_long.Hash;
import java.util.function.LongToIntFunction;
@ThreadSafeMapper
@Categories({Category.general})
public class HashInterval implements LongToIntFunction {
private final long minValue;

View File

@ -1,6 +1,8 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_int;
import io.nosqlbench.nb.api.errors.BasicError;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.library.basics.shared.from_long.to_long.Hash;
@ -8,6 +10,7 @@ import io.nosqlbench.virtdata.library.basics.shared.from_long.to_long.Hash;
import java.util.function.LongToIntFunction;
@ThreadSafeMapper
@Categories({Category.general})
public class HashRange implements LongToIntFunction {
private final long minValue;

View File

@ -1,11 +1,14 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_int;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.library.basics.shared.from_long.to_long.Hash;
import java.util.function.LongToIntFunction;
@ThreadSafeMapper
@Categories({Category.general})
public class HashRangeScaled implements LongToIntFunction {
private final Hash hash = new Hash();

View File

@ -1,6 +1,8 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_int;
import io.nosqlbench.nb.api.content.NBIO;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
@ -13,9 +15,10 @@ import java.util.function.LongToIntFunction;
* Each line in the file must contain one parsable integer value.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class HashedLineToInt implements LongToIntFunction {
private final static Logger logger = LogManager.getLogger(HashedLineToInt.class);
private int[] values;
private final int[] values;
private final String filename;
private final Hash intHash;

View File

@ -14,14 +14,17 @@
*/
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_int;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.LongToIntFunction;
@ThreadSafeMapper
@Categories({Category.general})
public class Mod implements LongToIntFunction {
private long modulo;
private final long modulo;
public Mod(int modulo) {
this.modulo = modulo;

View File

@ -18,6 +18,8 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_int;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.LongFunction;
@ -26,6 +28,7 @@ import java.util.function.LongFunction;
* Return an integer value as the result of modulo division with the specified divisor.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class ModuloToInteger implements LongFunction<Integer> {
private final int modulo;

View File

@ -1,14 +1,14 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_int;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.LongToIntFunction;
/**
* Scale the input by the factor provided
* @deprecated Use Mul(...) instead
*/
@ThreadSafeMapper
@Deprecated
@Categories({Category.general})
public class Scale implements LongToIntFunction {
private final double scaleFactor;

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_int;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.murmur.Murmur3F;
@ -7,6 +9,7 @@ import java.nio.ByteBuffer;
import java.util.function.LongToIntFunction;
@ThreadSafeMapper
@Categories({Category.general})
public class SignedHash implements LongToIntFunction {
ThreadLocal<ByteBuffer> bb_TL = ThreadLocal.withInitial(() -> ByteBuffer.allocate(Long.BYTES));

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_long;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
@ -10,6 +12,7 @@ import java.util.function.LongUnaryOperator;
* increases.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class FixedValues implements LongUnaryOperator {
private final long[] fixedValues;

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_long;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.murmur.Murmur3F;
@ -16,9 +18,10 @@ import java.util.function.LongUnaryOperator;
* It does not return the absolute value, as {@link Hash} does.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class FullHash implements LongUnaryOperator {
private ThreadLocal<State> state_TL = ThreadLocal.withInitial(State::new);
private final ThreadLocal<State> state_TL = ThreadLocal.withInitial(State::new);
@Override
public long applyAsLong(long value) {

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_long;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.LongUnaryOperator;
@ -8,6 +10,7 @@ import java.util.function.LongUnaryOperator;
* Simply returns the input value. This function intentionally does nothing.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class Identity implements LongUnaryOperator {
@Override
public long applyAsLong(long operand) {

View File

@ -18,6 +18,8 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_long;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
@ -28,6 +30,7 @@ import java.util.function.LongUnaryOperator;
* Return a long value as the result of modulo division with the specified divisor.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class ModuloToLong implements LongUnaryOperator {
private final static Logger logger = LogManager.getLogger(ModuloToLong.class);
private final long modulo;

View File

@ -18,6 +18,8 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_long;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.DeprecatedFunction;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.murmur.Murmur3F;
@ -31,10 +33,11 @@ import java.util.function.LongUnaryOperator;
*/
@ThreadSafeMapper
@DeprecatedFunction("This function is easily replaced with other simpler functions.")
@Categories({Category.general})
public class Murmur3DivToLong implements LongUnaryOperator {
private ThreadLocal<Murmur3F> murmur3f_TL = ThreadLocal.withInitial(Murmur3F::new);
private DivideToLong divideToLongMapper;
private final ThreadLocal<Murmur3F> murmur3f_TL = ThreadLocal.withInitial(Murmur3F::new);
private final DivideToLong divideToLongMapper;
public Murmur3DivToLong(long divisor) {
this.divideToLongMapper = new DivideToLong(divisor);

View File

@ -14,9 +14,7 @@
*/
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_long;
import io.nosqlbench.virtdata.api.annotations.Description;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.*;
import io.nosqlbench.virtdata.library.basics.core.lfsrs.MetaShift;
/**
@ -34,6 +32,7 @@ import io.nosqlbench.virtdata.library.basics.core.lfsrs.MetaShift;
* This function *does* yield values that are deterministic.
*/
@ThreadSafeMapper
@Categories({Category.general})
@Description("Provides virtual shuffling extremely large numbers.")
public class Shuffle extends MetaShift.Func {

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_long;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.library.basics.shared.from_long.to_double.HashedDoubleRange;
@ -16,12 +18,13 @@ import java.util.function.LongFunction;
* This function automatically hashes the input, so the result is already pseudo-random.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class WeightedLongs implements LongFunction<Long> {
private final String valuesAndWeights;
private double[] unitWeights; // Positional weights after parsing and unit weight normalization
private double[] cumulativeWeights;
private HashedDoubleRange unitRange = new HashedDoubleRange(0.0D, 1.0D);
private final HashedDoubleRange unitRange = new HashedDoubleRange(0.0D, 1.0D);
private long[] values;
@Example({"WeightedLongs('1:10;3;5;12345;1","Yield 1 62.5% of the time, 3 31.25% of the time, and 12345 6.2% of the time"})

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_string;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.library.basics.shared.from_long.to_long.Hash;
@ -9,6 +11,7 @@ import java.util.function.LongFunction;
* Create an alpha-numeric string of the specified length, character-by-character.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class AlphaNumericString implements LongFunction<String> {
private static final String AVAILABLE_CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
private final ThreadLocal<StringBuilder> threadStringBuilder = ThreadLocal.withInitial(StringBuilder::new);

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_string;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.library.basics.shared.util.CharsetMapping;
@ -22,6 +24,7 @@ import java.util.function.LongFunction;
* which can be represented in a long value. (This is a very high number).
*/
@ThreadSafeMapper
@Categories({Category.general})
public class Combinations implements LongFunction<String> {
private final char[][] charsets;

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_string;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import org.apache.logging.log4j.Logger;
@ -23,6 +25,7 @@ import java.util.regex.Pattern;
* from a set of files as input to a test or simulation.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class DirectoryLines implements LongFunction<String> {
private final static Logger logger = LogManager.getLogger(DirectoryLines.class);
@ -78,7 +81,7 @@ public class DirectoryLines implements LongFunction<String> {
} catch (IOException e) {
throw new RuntimeException(e);
}
logger.debug("File reader: " + fileList.toString() + " in path: " + Paths.get(basepath).getFileName());
logger.debug("File reader: " + fileList + " in path: " + Paths.get(basepath).getFileName());
fileList.paths.sort(Path::compareTo);
return fileList.paths;
}

View File

@ -18,6 +18,8 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_string;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.DeprecatedFunction;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
@ -30,6 +32,7 @@ import java.util.function.LongFunction;
* as it is easily replaced by other functions.
*/
@ThreadSafeMapper
@Categories({Category.general})
@DeprecatedFunction("This function is easily replace by simpler functions.")
public class DivideToLongToString implements LongFunction<String> {

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_string;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.library.basics.core.MVELExpr;
import io.nosqlbench.virtdata.library.basics.core.threadstate.SharedState;
@ -10,9 +12,9 @@ import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.LongFunction;
import java.util.function.LongUnaryOperator;
@ThreadSafeMapper
@Categories({Category.functional})
public class Expr implements LongFunction<String> {
private final String expr;

View File

@ -19,6 +19,8 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_string;
import io.nosqlbench.nb.api.content.NBIO;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.bindings.VirtDataConversions;
@ -37,6 +39,7 @@ import java.util.function.LongToIntFunction;
* sized fragment.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class HashedFileExtractToString implements LongFunction<String> {
private final static Logger logger = LogManager.getLogger(HashedFileExtractToString.class);

View File

@ -20,6 +20,8 @@ package io.nosqlbench.virtdata.library.basics.shared.from_long.to_string;
import io.nosqlbench.nb.api.content.NBIO;
import io.nosqlbench.nb.api.errors.BasicError;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.library.basics.shared.from_long.to_int.HashInterval;
import org.apache.logging.log4j.Logger;
@ -34,6 +36,7 @@ import java.util.function.LongFunction;
* the specified file.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class HashedLineToString implements LongFunction<String> {
private final static Logger logger = LogManager.getLogger(HashedLineToString.class);
private final HashInterval indexRange;

View File

@ -18,6 +18,8 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_string;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.library.basics.shared.from_long.to_collection.HashedLineToStringStringMap;
import org.apache.logging.log4j.Logger;
@ -32,6 +34,7 @@ import java.util.stream.Collectors;
* in the specified file, ranging in size between zero and the specified maximum.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class HashedLinesToKeyValueString implements LongFunction<String> {
private static final Logger logger = LogManager.getLogger(HashedLinesToKeyValueString.class);

View File

@ -18,6 +18,8 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_string;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.LongFunction;
@ -28,6 +30,7 @@ import java.util.function.LongFunction;
*
*/
@ThreadSafeMapper
@Categories({Category.general})
public class HashedLoremExtractToString implements LongFunction<String> {
private final HashedFileExtractToString randomFileExtractMapper;

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_string;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
@ -11,6 +13,7 @@ import java.util.function.LongUnaryOperator;
* specified delimiter and optional prefix and suffix.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class JoinTemplate extends Template implements LongFunction<String> {
@Example({"JoinTemplate('--',NumberNameToString(),NumberNameToString())","create values like `one--one`, `two-two`, ..."})

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_string;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
@ -15,6 +17,7 @@ import java.util.function.LongToIntFunction;
* between elements.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class ListTemplate implements LongFunction<List<String>> {
private final LongToIntFunction sizeFunc;

View File

@ -18,6 +18,8 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_string;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.DeprecatedFunction;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
@ -29,6 +31,7 @@ import java.util.function.LongFunction;
*/
@ThreadSafeMapper
@DeprecatedFunction("This function is being replaced by ToString() for naming consistency.")
@Categories({Category.general})
public class LongToString implements LongFunction<String> {
@Override

View File

@ -19,6 +19,8 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_string;
import io.nosqlbench.nb.api.content.NBIO;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import org.apache.commons.csv.CSVParser;
@ -37,12 +39,13 @@ import java.util.function.LongFunction;
* be provided in the CSV header line as written.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class ModuloCSVLineToString implements LongFunction<String> {
private final static Logger logger = LogManager.getLogger(ModuloLineToString.class);
private List<String> lines = new ArrayList<>();
private final List<String> lines = new ArrayList<>();
private String filename;
private final String filename;
@Example({"ModuloCSVLineToString('data/myfile.csv','lat')","load values for 'lat' from the CSV file myfile.csv."})
public ModuloCSVLineToString(String filename, String fieldname) {

View File

@ -19,6 +19,8 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_string;
import io.nosqlbench.nb.api.content.NBIO;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
@ -32,11 +34,12 @@ import java.util.function.LongFunction;
* of lines in the file.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class ModuloLineToString implements LongFunction<String> {
private final static Logger logger = LogManager.getLogger(ModuloLineToString.class);
private List<String> lines = new ArrayList<>();
private String filename;
private final String filename;
public ModuloLineToString(String filename) {
this.filename = filename;

View File

@ -18,6 +18,8 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_string;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.DeprecatedFunction;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.murmur.Murmur3F;
@ -30,11 +32,12 @@ import java.util.function.LongFunction;
* with the specified divisor to long and then converting the value to String.
*/
@ThreadSafeMapper
@Categories({Category.general})
@DeprecatedFunction("This function is easily replaced with other simpler functions.")
public class Murmur3DivToString implements LongFunction<String> {
private ThreadLocal<Murmur3F> murmur3F_TL = ThreadLocal.withInitial(Murmur3F::new);
private DivideToLong divideToLongMapper;
private final ThreadLocal<Murmur3F> murmur3F_TL = ThreadLocal.withInitial(Murmur3F::new);
private final DivideToLong divideToLongMapper;
public Murmur3DivToString(long divisor) {
this.divideToLongMapper = new DivideToLong(divisor);

View File

@ -18,6 +18,8 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_string;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import uk.ydubey.formatter.numtoword.NumberInWordsFormatter;
@ -30,6 +32,7 @@ import java.util.function.LongFunction;
* The maximum value is limited at 999,999,999.
*/
@ThreadSafeMapper
@Categories({Category.general,Category.premade})
public class NumberNameToString implements LongFunction<String> {
private final static ThreadLocal<StringBuilder> tlsb = ThreadLocal.withInitial(StringBuilder::new);

View File

@ -18,6 +18,8 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_string;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.LongFunction;
@ -26,6 +28,7 @@ import java.util.function.LongFunction;
* Return a static String value.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class StaticStringMapper implements LongFunction<String> {
private final String string;

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_string;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.bindings.VirtDataConversions;
@ -37,6 +39,7 @@ import java.util.regex.Pattern;
* and then stitched together according to the template provided.</p>
*/
@ThreadSafeMapper
@Categories({Category.general})
public class Template implements LongFunction<String> {
private final static Logger logger = LogManager.getLogger(Template.class);
private static final String EXPR_BEGIN = "[[";

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_string;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.library.basics.shared.from_long.to_double.HashedDoubleRange;
@ -15,12 +17,13 @@ import java.util.function.LongFunction;
* to add up to any particular value.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class WeightedStrings implements LongFunction<String> {
private final String valuesAndWeights;
private double[] unitWeights; // Positional weights after parsing and unit weight normalization
private double[] cumulativeWeights;
private HashedDoubleRange unitRange = new HashedDoubleRange(0.0D, 1.0D);
private final HashedDoubleRange unitRange = new HashedDoubleRange(0.0D, 1.0D);
private String[] values;
public WeightedStrings(String valuesAndWeights) {

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_time_types;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.LongUnaryOperator;
@ -9,6 +11,7 @@ import java.util.function.LongUnaryOperator;
* CAUTION: This does not produce deterministic test data.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class ElapsedNanoTime implements LongUnaryOperator {
@Override
public long applyAsLong(long operand) {

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_uuid;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.library.basics.core.MVELExpr;
import io.nosqlbench.virtdata.library.basics.core.threadstate.SharedState;
@ -13,6 +15,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.function.LongFunction;
@ThreadSafeMapper
@Categories({Category.functional})
public class Expr implements LongFunction<UUID> {
private final String expr;

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.from_long.to_uuid;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.library.basics.shared.from_long.to_long.Hash;
@ -11,9 +13,10 @@ import java.util.function.LongFunction;
* a version 4 (Random) UUID.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class ToHashedUUID implements LongFunction<UUID> {
private Hash longHash = new Hash();
private final Hash longHash = new Hash();
@Override
public UUID apply(long value) {

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.from_string;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.core.composers.FunctionAssembly;
@ -18,6 +20,7 @@ import java.util.regex.Pattern;
* String value may be provided as the associated output value.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class MatchFunc implements Function<String,String> {
private final MatchEntry[] entries;

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.from_string;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
@ -13,9 +15,10 @@ import java.util.regex.Pattern;
* If no matches occur, then the original value is passed through unchanged.
* Patterns and replacements are passed as even,odd pairs indexed from the
* 0th position. Back-references to matching groups are supported.
*
*/
@ThreadSafeMapper
@Categories({Category.general})
public class MatchRegex implements Function<String,String> {
private final MatchEntry[] entries;
@ -29,7 +32,7 @@ public class MatchRegex implements Function<String,String> {
}
entries = new MatchEntry[specs.length/2];
for (int i = 0; i < specs.length; i+=2) {
String pattern = specs[i].toString();
String pattern = specs[i];
String replacement = specs[i+1];
entries[i/2]=new MatchEntry(pattern, replacement);
}

View File

@ -18,6 +18,8 @@
package io.nosqlbench.virtdata.library.basics.shared.nondeterministic;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.DeprecatedFunction;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
@ -33,11 +35,12 @@ import java.util.regex.Pattern;
*/
@ThreadSafeMapper
@DeprecatedFunction("This is being replaced by ThreadNum() for naming consistency.")
@Categories({Category.general})
public class ThreadNumToInteger implements LongFunction<Integer> {
private static final Pattern pattern = Pattern.compile("^.*?(\\d+).*$");
private ThreadLocal<Integer> threadLocalInt = new ThreadLocal<Integer>() {
private final ThreadLocal<Integer> threadLocalInt = new ThreadLocal<Integer>() {
@Override
protected Integer initialValue() {
Matcher matcher = pattern.matcher(Thread.currentThread().getName());

View File

@ -18,6 +18,8 @@
package io.nosqlbench.virtdata.library.basics.shared.nondeterministic;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.DeprecatedFunction;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
@ -33,10 +35,11 @@ import java.util.regex.Pattern;
*/
@ThreadSafeMapper
@DeprecatedFunction("This is being replaced by ThreadNum() for naming consistency.")
@Categories({Category.general})
public class ThreadNumToLong implements LongUnaryOperator {
private static final Pattern pattern = Pattern.compile("^.*?(\\d+).*$");
private ThreadLocal<Long> threadLocalInt = new ThreadLocal<Long>() {
private final ThreadLocal<Long> threadLocalInt = new ThreadLocal<Long>() {
@Override
protected Long initialValue() {
Matcher matcher = pattern.matcher(Thread.currentThread().getName());

View File

@ -4,6 +4,8 @@ import io.nosqlbench.nb.api.config.standard.ConfigModel;
import io.nosqlbench.nb.api.config.standard.NBConfigModel;
import io.nosqlbench.nb.api.config.standard.NBMapConfigurable;
import io.nosqlbench.nb.api.config.standard.Param;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
@ -18,6 +20,7 @@ import java.util.function.Function;
* by the provided variable name.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class LoadElement implements Function<Object,Object>, NBMapConfigurable {
private final String varname;

View File

@ -10,11 +10,6 @@ import java.util.HashMap;
import java.util.function.LongFunction;
import java.util.function.LongToIntFunction;
/**
* Load a value from a named thread-local variable, where the variable
* name is fixed or a generated variable name from a provided function.
* If the named variable is not defined, then the default value is returned.
*/
@Categories(Category.state)
@ThreadSafeMapper
public class LoadInteger implements LongToIntFunction {

View File

@ -10,18 +10,13 @@ import java.util.HashMap;
import java.util.function.LongFunction;
import java.util.function.LongUnaryOperator;
/**
* Load a value from a named thread-local variable, where the variable
* name is fixed or a generated variable name from a provided function.
* If the named variable is not defined, then the default value is returned.
*/
@Categories(Category.state)
@ThreadSafeMapper
public class LoadLong implements LongUnaryOperator {
private final String name;
private final LongFunction<Object> nameFunc;
private long defaultValue;
private final long defaultValue;
@Example({"LoadLong('foo',42L)","for the current thread, load a long value from the named variable."})
public LoadLong(String name) {

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.unary_int;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.library.basics.core.MVELExpr;
import io.nosqlbench.virtdata.library.basics.core.threadstate.SharedState;
@ -10,6 +12,7 @@ import java.util.HashMap;
import java.util.function.IntUnaryOperator;
@ThreadSafeMapper
@Categories({Category.functional})
public class Expr implements IntUnaryOperator {
private final String expr;

View File

@ -8,13 +8,6 @@ import io.nosqlbench.virtdata.murmur.Murmur3F;
import java.nio.ByteBuffer;
import java.util.function.IntUnaryOperator;
/**
* This uses the Murmur3F (64-bit optimized) version of Murmur3,
* not as a checksum, but as a simple hash. It doesn't bother
* pushing the high-64 bits of input, since it only uses the lower
* 64 bits of output. It does, however, return the absolute value.
* This is to make it play nice with users and other libraries.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class Hash implements IntUnaryOperator {

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.unary_string;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import org.apache.logging.log4j.Logger;
@ -13,6 +15,7 @@ import java.util.function.Function;
* a string with the same delimiter containing only the specified fields.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class FieldExtractor implements Function<String,String> {
private final static Logger logger = LogManager.getLogger(FieldExtractor.class);
@ -21,8 +24,8 @@ public class FieldExtractor implements Function<String,String> {
private final String splitDelim;
private final String printDelim;
private final int maxIdx;
private int[] indexes;
private ThreadLocal<StringBuilder> tlsb = ThreadLocal.withInitial(StringBuilder::new);
private final int[] indexes;
private final ThreadLocal<StringBuilder> tlsb = ThreadLocal.withInitial(StringBuilder::new);
@Example({"FieldExtractor('|,2,16')","extract fields 2 and 16 from the input data with '|' as the delimiter"})
public FieldExtractor(String fields) {

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.unary_string;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
@ -9,8 +11,9 @@ import java.util.function.Function;
* Add the specified prefix String to the input value and return the result.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class Prefix implements Function<String,String>{
private String prefix;
private final String prefix;
@Example({"Prefix('PREFIX:')", "Prepend 'PREFIX:' to every input value"})
public Prefix(String prefix){

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.unary_string;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
@ -9,6 +11,7 @@ import java.util.function.Function;
* Replace all occurrences of the extant string with the replacement string.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class ReplaceAll implements Function<String, String> {
private final String extant;

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.unary_string;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
@ -12,6 +14,7 @@ import java.util.regex.Pattern;
* Note, this is much less efficient than using the simple ReplaceAll for most cases.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class ReplaceRegex implements Function<String, String> {
private final String replacement;

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.unary_string;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
@ -8,9 +10,9 @@ import java.util.function.Function;
/**
* Add the specified prefix String to the input value and return the result.
*/
@ThreadSafeMapper
@ThreadSafeMapper@Categories({Category.general})
public class Suffix implements Function<String,String> {
private String suffix;
private final String suffix;
@Example({"Suffix('--Fin')", "Append '--Fin' to every input value"})
public Suffix(String suffix) {

View File

@ -1,5 +1,7 @@
package io.nosqlbench.virtdata.library.basics.shared.unary_string;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.Function;
@ -8,6 +10,7 @@ import java.util.function.Function;
* Trim the input value and return the result.
*/
@ThreadSafeMapper
@Categories({Category.general})
public class Trim implements Function<String, String>{
@Override

View File

@ -165,14 +165,16 @@ public class VirtDataGenDocsApp implements Runnable {
}
private FDoc loadAllDocs() {
List<String> errors = new ArrayList<>();
FDoc docsinfo = new FDoc();
List<DocFuncData> allDocs = VirtDataDocs.getAllDocs();
for (DocFuncData docFuncData : allDocs) {
FDocFunc fDocFunc = new FDocFunc(docFuncData);
Set<Category> categories = fDocFunc.getCategories();
if (categories.size() == 0) {
for (FDocCat knownCategoriy : docsinfo) {
for (FDocFuncs knownFunctionDocs : knownCategoriy) {
for (FDocCat knownCategory : docsinfo) {
for (FDocFuncs knownFunctionDocs : knownCategory) {
if (knownFunctionDocs.getFunctionName().equals(fDocFunc.getFuncName())) {
categories = knownFunctionDocs.iterator().next().getCategories();
break;
@ -183,9 +185,11 @@ public class VirtDataGenDocsApp implements Runnable {
}
}
}
if (categories.size()==0) {
categories = Set.of(Category.general);
logger.warn("Assigned generic category to " + fDocFunc.getFuncName());
errors.add("function " + fDocFunc.getFuncName() + " had no categories assigned.");
}
for (Category categoryName : categories) {
@ -193,6 +197,10 @@ public class VirtDataGenDocsApp implements Runnable {
fDocCat.addFunctionDoc(fDocFunc);
}
}
if (errors.size()>0) {
errors.forEach(System.out::println);
System.exit(2);
}
return docsinfo;
}