Yardstick Apache Ignite is a set of Ignite Grid benchmarks written on top of Yardstick framework.
Visit Yardstick Repository for detailed information on how to run Yardstick benchmarks and how to generate graphs.
The documentation below describes configuration parameters in addition to standard Yardstick parameters.
- Create a local clone of repository
- Run
mvn package
command for Yardstick Apache Ignite POM
The following benchmarks are provided:
GetBenchmark
- benchmarks atomic distributed cache get operationPutBenchmark
- benchmarks atomic distributed cache put operationPutGetBenchmark
- benchmarks atomic distributed cache put and get operations togetherPutTxBenchmark
- benchmarks transactional distributed cache put operationPutGetTxBenchmark
- benchmarks transactional distributed cache put and get operations togetherSqlQueryBenchmark
- benchmarks distributed SQL query over cached dataSqlQueryJoinBenchmark
- benchmarks distributed SQL query with a Join over cached dataSqlQueryPutBenchmark
- benchmarks distributed SQL query with simultaneous cache updates
All benchmarks extend AbstractBenchmark
class. A new benchmark should also extend this abstract class and implement test
method. This is the method that is actually benchmarked.
Before running Apache Ignite benchmarks, run mvn package
command. This command will compile the project and also will unpack scripts from yardstick-resources.zip
file to bin
directory.
Note that this section only describes configuration parameters specific to Apache Ignite benchmarks, and not for Yardstick framework. To run Apache Ignite benchmarks and generate graphs, you will need to run them using Yardstick framework scripts in
bin
folder.
Refer to Yardstick Documentation for common Yardstick properties and command line arguments for running Yardstick scripts.
The following Apache Ignite benchmark properties can be defined in the benchmark configuration:
-nn <num>
or--nodeNumber <num>
- Number of nodes (automatically set inbenchmark.properties
), used to wait for the specified number of nodes to start-b <num>
or--backups <num>
- Number of backups for every key-cfg <path>
or--Config <path>
- Path to Apache Ignite configuration file-sm <mode>
or-syncMode <mode>
- Synchronization mode (defined inCacheWriteSynchronizationMode
)-dm <mode>
or--distroMode <mode>
- Distribution mode (defined inCacheDistributionMode
)-wom <mode>
or--writeOrderMode <mode>
- Write order mode for ATOMIC caches (defined inCacheAtomicWriteOrderMode
)-txc <value>
or--txConcurrency <value>
- Cache transaction concurrency control, eitherOPTIMISTIC
orPESSIMISTIC
(defined inCacheTxConcurrency
)-txi <value>
or--txIsolation <value>
- Cache transaction isolation (defined inCacheTxIsolation
)-ot
or--offheapTiered
- Flag indicating whether tiered off-heap mode is on-ov
or--offheapValuesOnly
- Flag indicating whether off-heap mode is on and only cache values are stored off-heap-rtp <num>
or--restPort <num>
- REST TCP port, indicates that a Apache Ignite node is ready to process Apache Ignite Clients-rth <host>
or--restHost <host>
- REST TCP host-ss
or--syncSend
- Flag indicating whether synchronous send is used inTcpCommunicationSpi
-r <num>
or--range
- Range of keys that are randomly generated for cache operations
For example if we need to run 2 IgniteNode
servers on localhost with PutBenchmark
benchmark on localhost, with number of backups set to 1, synchronization mode set to PRIMARY_SYNC
, then the following configuration should be specified in benchmark.properties
file:
SERVER_HOSTS=localhost,localhost
# Note that -dn and -sn, which stand for data node and server node, are
# native Yardstick parameters and are documented in Yardstick framework.
CONFIGS="-b 1 -sm PRIMARY_SYNC -dn PutBenchmark -sn IgniteNode"
Use Apache Ignite Apache JIRA (https://issues.apache.org/jira/browse/IGNITE) to file bugs.
Yardstick Apache Ignite is available under Apache 2.0 Open Source license.