Interface RWLogger
- All Superinterfaces:
CountReaders, CountRW, CountWriters, Logger, io.perl.logger.PerformanceLogger, io.perl.logger.Print, ReadRequestsLogger, io.perl.logger.ReportLatency, RWPrint, WriteRequestsLogger
- All Known Implementing Classes:
AbstractRWLogger, CSVLogger, GrpcLogger, PrometheusLogger, Sl4jLogger, SystemLogger
public non-sealed interface RWLogger
extends Logger, CountRW, WriteRequestsLogger, ReadRequestsLogger, RWPrint
Read/Write logger interface that combines request logging and printing hooks.
Extends
Logger, CountRW, WriteRequestsLogger, ReadRequestsLogger,
and RWPrint to provide a unified contract for SBK loggers capable of handling
both read and write workloads. Default methods return neutral values or no-ops so that
implementations can selectively override features.-
Method Summary
Modifier and TypeMethodDescriptiondefault intDefault method to indicate to record read requests or not.default intDefault method to indicate to record write requests or not.voidprintTotal(int writers, int maxWriters, int readers, int maxReaders, long writeRequestBytes, double writeRequestMbPerSec, long writeRequestRecords, double writeRequestRecordsPerSec, long readRequestBytes, double readRequestMBPerSec, long readRequestRecords, double readRequestRecordsPerSec, long writeResponsePendingRecords, long writeResponsePendingBytes, long readResponsePendingRecords, long readResponsePendingBytes, long writeReadRequestPendingRecords, long writeReadRequestPendingBytes, long writeTimeoutEvents, double writeTimeoutEventsPerSec, long readTimeoutEvents, double readTimeoutEventsPerSec, double seconds, long bytes, long records, double recsPerSec, double mbPerSec, double avgLatency, long minLatency, long maxLatency, long invalid, long lowerDiscard, long higherDiscard, long slc1, long slc2, long[] percentileLatencies, long[] percentileLatencyCounts) Print the "Total" roll-up, typically at the end of a benchmark run.default voidrecordReadRequests(int readerId, long startTime, long bytes, long events) Default method to record every/multiple read event(s).default voidrecordWriteRequests(int writerId, long startTime, long bytes, long events) Default method to record every/multiple write event(s).Methods inherited from interface CountReaders
decrementReaders, incrementReadersMethods inherited from interface CountWriters
decrementWriters, incrementWritersMethods inherited from interface io.perl.logger.PerformanceLogger
getMaxLatency, getMinLatency, getPercentiles, getPrintingIntervalSeconds, getTimeUnit, printTotal, recordLatencyMethods inherited from interface io.perl.logger.Print
printMethods inherited from interface ReadRequestsLogger
recordReadTimeoutEventsMethods inherited from interface WriteRequestsLogger
recordWriteTimeoutEvents
-
Method Details
-
recordWriteRequests
default void recordWriteRequests(int writerId, long startTime, long bytes, long events) Default method to record every/multiple write event(s). No-op by default.- Specified by:
recordWriteRequestsin interfaceWriteRequestsLogger- Parameters:
writerId- logical writer identifier (0..N-1)startTime- write start time in the activeTimeUnitbytes- bytes written for these eventsevents- number of write events
-
recordReadRequests
default void recordReadRequests(int readerId, long startTime, long bytes, long events) Default method to record every/multiple read event(s). No-op by default.- Specified by:
recordReadRequestsin interfaceReadRequestsLogger- Parameters:
readerId- logical reader identifier (0..N-1)startTime- read start time in the activeTimeUnitbytes- bytes read for these eventsevents- number of read events
-
getMaxWriterIDs
default int getMaxWriterIDs()Default method to indicate to record write requests or not. Returning 0 disables per-writer request logging.- Specified by:
getMaxWriterIDsin interfaceWriteRequestsLogger- Returns:
- max writer IDs
-
getMaxReaderIDs
default int getMaxReaderIDs()Default method to indicate to record read requests or not. Returning 0 disables per-reader request logging.- Specified by:
getMaxReaderIDsin interfaceReadRequestsLogger- Returns:
- max reader IDs
-
printTotal
void printTotal(int writers, int maxWriters, int readers, int maxReaders, long writeRequestBytes, double writeRequestMbPerSec, long writeRequestRecords, double writeRequestRecordsPerSec, long readRequestBytes, double readRequestMBPerSec, long readRequestRecords, double readRequestRecordsPerSec, long writeResponsePendingRecords, long writeResponsePendingBytes, long readResponsePendingRecords, long readResponsePendingBytes, long writeReadRequestPendingRecords, long writeReadRequestPendingBytes, long writeTimeoutEvents, double writeTimeoutEventsPerSec, long readTimeoutEvents, double readTimeoutEventsPerSec, double seconds, long bytes, long records, double recsPerSec, double mbPerSec, double avgLatency, long minLatency, long maxLatency, long invalid, long lowerDiscard, long higherDiscard, long slc1, long slc2, long[] percentileLatencies, long[] percentileLatencyCounts) Print the "Total" roll-up, typically at the end of a benchmark run. Parameters mirrorRWPrint.print(int, int, int, int, long, double, long, double, long, double, long, double, long, long, long, long, long, long, long, double, long, double, double, long, long, double, double, double, long, long, long, long, long, long, long, long[], long[])- Parameters:
writers- number of active writersmaxWriters- maximum writers seenreaders- number of active readersmaxReaders- maximum readers seenwriteRequestBytes- total write request byteswriteRequestMbPerSec- write request throughput in MB/secwriteRequestRecords- total write request countwriteRequestRecordsPerSec- write requests per secondreadRequestBytes- total read request bytesreadRequestMBPerSec- read request throughput in MB/secreadRequestRecords- total read request countreadRequestRecordsPerSec- read requests per secondwriteResponsePendingRecords- pending write response recordswriteResponsePendingBytes- pending write response bytesreadResponsePendingRecords- pending read response recordsreadResponsePendingBytes- pending read response byteswriteReadRequestPendingRecords- write-read pending records deltawriteReadRequestPendingBytes- write-read pending bytes deltawriteTimeoutEvents- write timeout events countwriteTimeoutEventsPerSec- write timeout events per secondreadTimeoutEvents- read timeout events countreadTimeoutEventsPerSec- read timeout events per secondseconds- total time in secondsbytes- total bytes processedrecords- total records processedrecsPerSec- records per secondmbPerSec- MB per secondavgLatency- average latencyminLatency- minimum latencymaxLatency- maximum latencyinvalid- invalid/negative latency countlowerDiscard- discarded below min latencyhigherDiscard- discarded above max latencyslc1- sliding latency coverage 1slc2- sliding latency coverage 2percentileLatencies- percentile latency valuespercentileLatencyCounts- percentile latency counts
-