Class OpFunctionComposition

java.lang.Object
io.nosqlbench.engine.api.activityimpl.OpFunctionComposition

public class OpFunctionComposition extends Object

This is where operations are customized to support special testing or analysis capabilities. The behaviors here are not adapter-specific, but can be specialized by adapter-provided logic in some cases.

In every case, the original dispenser and op instances are retained as in normal cycle execution, although they may be used differently. For each new behavior, both the original dispenser and the original op produced by it are wrapped by custom logic which can functionally override or extend them.

The current behaviors which are supported are assembled in a fixed topology when used. In other words, users can't simply layer customizations in any order or arrangement they choose.

To illustrate, an example of all of these together will be presented below:

    dryrun ( verify ( print ( capture ( op ))))

This will change to be more in a future refinement, when all op synthesis modifiers will be subsumed into BaseOpDispenser

Working from the outside-in, each is explained here:

  • DryrunOp (dryrun) - Do not exeucute the operation, but prepare as if you were going to ( including any modifiers) and continue
  • AssertingOp (verify) - apply any assertions specified by the user, and throw an ResultVerificationError if the assertions are false, or continue if assertions are true
  • ResultPrintingOp (print) - Print the result of executing the op and continue
  • CapturingOp (capture) - Capture the specified set of named fields from the result of the operation, and continue
  • Field Details

    • logger

      public static final org.apache.logging.log4j.Logger logger
  • Constructor Details

    • OpFunctionComposition

      public OpFunctionComposition()
  • Method Details