Class SbkBenchmark

java.lang.Object
io.sbk.api.impl.SbkBenchmark
All Implemented Interfaces:
Benchmark

public final class SbkBenchmark extends Object implements Benchmark
Class for performing the benchmark.

This class orchestrates the full lifecycle of an SBK benchmark run: it opens the storage client, constructs writer and reader instances, wires PerL-based metric collectors, schedules timeouts and executes the writers/readers concurrently using an executor pool.

Responsibilities include:

  • Opening and closing the storage device lifecycle via Storage.
  • Creating and managing multiple DataWriter and DataReader instances.
  • Coordinating PerL metric collectors for writers and readers when enabled.
  • Providing a fault-tolerant shutdown path and reporting via the configured RWLogger.

Notes for maintainers:

  • The class reserves executor threads based on configured writers/readers; adjust the thread accounting carefully.
  • Perl-based metrics and timeouts are configured conditionally depending on writer/reader counts.
  • Constructor Details

    • SbkBenchmark

      public SbkBenchmark(ParameterOptions params, Storage<Object> storage, DataType<Object> dType, @NotNull @NotNull RWLogger rwLogger, io.time.Time time) throws IOException
      Create SBK Benchmark.
      Parameters:
      params - Benchmarking input Parameters
      storage - Storage device/client/driver for benchmarking
      dType - Data Type.
      rwLogger - output logger
      time - time interface
      Throws:
      IOException - If Exception occurs.
  • Method Details