This module can be used to run benchmarks for Mango.
mvn clean package
- Copy
maven-target/mango-benchmarks.zip
to your target machine unzip mango-benchmarks.zip
cd mango-benchmarks
java -jar mango-benchmarks.jar 'Insert.insert'
Use JHM command line syntax to set parameters and benchmark options. You can set multiple options for each parameter and every combination will be benchmarked. Example:
java -jar mango-benchmarks.jar 'Insert.insert' -p threads=1C -p points=100,1000
- Each operation will read values for "points" number of data points at once
- Result: op/s represents the total point values read per second, across all points and threads.
Test name | Description |
---|---|
Read.forwardReadCombined | Reads values for the points, all together, in ascending time order |
Read.forwardReadPerPoint | Reads values for the points, one point at a time, in ascending time order |
Read.reverseReadCombined | Reads values for the points, all together, in descending time order |
Read.reverseReadPerPoint | Reads values for the points, one point at a time, in descending time order |
Read.wideBookendQueryCombined | Reads values for the points, all together, in ascending time order, also reads value immediately prior to the queried time range |
Read.wideBookendQueryPerPoint | Reads values for the points, one point at a time, in ascending time order, also reads value immediately prior to the queried time range |
name | default | options/format | description |
---|---|---|---|
threads | 1C | number > 0 | Number of threads writing to TSDB, use "C" suffix to multiply by number of CPU cores |
points | 10 | number > 0 | Points to read from at once, in a single operation |
totalPoints | 1000 | number >= points * threads | Total number of data points, use "C" suffix to multiply by number of CPU cores |
valuesInsertedPerPoint | 10000 | number > 0 | Point values inserted per point |
implementation | sql:h2, sql:mysql, ias-tsdb, tsl:memory, tsl:quest, tsl:timescale, tsl:clickhouse | sql:h2, sql:mysql, ias-tsdb, tsl:memory, tsl:quest, tsl:timescale, tsl:clickhouse | PointValueDao implementation |
batchSize | 1000 | number > 0 | Number of point values to read per point, per iteration |
period | 5000 | number > 0 | Period between point values (milliseconds) |
startDate | 1970-01-01T00:00:00.000Z | ISO 8601 | Date to start generating data from, then for reading from |
conflictMode | UPDATE | ERROR, UPDATE, DO_NOTHING | TSL strategy for handling unique constraint conflicts when inserting |
maxOpenFiles | 2X | number > 0 | IasTsdb max open files setting, use "X" suffix to multiply by number of points |
shardStreamType | MAPPED_BYTE_BUFFER | INPUT_STREAM, FILE_CHANNEL, RANDOM_ACCESS_FILE, MAPPED_BYTE_BUFFER | IasTsdb shardStreamType setting |
- Each operation will insert values for "points" number of data points at once
- Result: op/s represents the total point values inserted per second, across all points and threads.
Test name | Description |
---|---|
Insert.insert | Inserts values in ascending time order for each point |
Insert.withBackdates | Inserts values in ascending time order for each point, periodically inserts backdated values |
name | default | options/format | description |
---|---|---|---|
threads | 1C | number > 0 | Number of threads writing to TSDB, use "C" suffix to multiply by number of CPU cores |
points | 10 | number > 0 | Points to insert into at once, in a single operation |
totalPoints | 1000 | number >= points * threads | Total number of data points, use "C" suffix to multiply by number of CPU cores |
implementation | sql:h2, sql:mysql, ias-tsdb, tsl:memory, tsl:quest, tsl:timescale, tsl:clickhouse | sql:h2, sql:mysql, ias-tsdb, tsl:memory, tsl:quest, tsl:timescale, tsl:clickhouse | PointValueDao implementation |
batchSize | 1000 | number > 0 | Number of point values to insert per point, per iteration |
period | 5000 | number > 0 | Period between point values (milliseconds) |
startDate | 1970-01-01T00:00:00.000Z | ISO 8601 | Date to start generating data from |
conflictMode | UPDATE | ERROR, UPDATE, DO_NOTHING | TSL strategy for handling unique constraint conflicts when inserting |
maxOpenFiles | 2X | number > 0 | IasTsdb max open files setting, use "X" suffix to multiply by number of points |
shardStreamType | MAPPED_BYTE_BUFFER | INPUT_STREAM, FILE_CHANNEL, RANDOM_ACCESS_FILE, MAPPED_BYTE_BUFFER | IasTsdb shardStreamType setting |