Yardstick Infinispan is a set of Infinispan Data 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 Yardstick Infinispan repository
- Import Yardstick Infinispan POM file into your project
- Run
mvn package
command
The following benchmarks are provided:
InfinispanPutBenchmark
- benchmarks atomic distributed cache put operationInfinispanPutGetBenchmark
- benchmarks atomic distributed cache put and get operations togetherInfinispanPutTxBenchmark
- benchmarks transactional distributed cache put operationInfinispanPutGetTxBenchmark
- benchmarks transactional distributed cache put and get operations together
All benchmarks extend InfinispanAbstractBenchmark
class. A new benchmark should also extend this abstract class and implement test
method. This is the method that is actually benchmarked.
Before running Infinispan 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 Infinispan benchmarks, and not for Yardstick framework. To run Infinispan 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 properties can be defined in benchmark properties file:
INFINISPAN_CLIENT_MODE_WAIT_INTERVAL
- Time (in seconds) to wait for all nodes to start in client mode, HotRod client does not support topology listeners
The following Infinispan 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-iscfg <path>
or--isConfig <path>
- Path to Infinispan configuration file-as
or--async
- Flag indicating whether asynchronous communication is used, synchronous is a default-cm
or--clientMode
- Flag indicating whether Infinispan client is used-r <num>
or--range <num>
- Range of keys that are randomly generated for cache operations-txp
or--txPessimistic
- Flag indicating whether pessimistic transaction concurrency is used, optimistic is a default
For example if we need to run 2 InfinispanNode
servers on localhost with InfinispanPutBenchmark
benchmark on localhost, with number of backups set to 1, then the following configuration should be specified in benchmark.properties
file:
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 -dn InfinispanPutBenchmark -sn InfinispanNode"
Use GitHub issues to file bugs.
Yardstick Infinispan is available under Apache 2.0 Open Source license.