[ 
https://issues.apache.org/jira/browse/IGNITE-2952?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Semen Boikov updated IGNITE-2952:
---------------------------------
    Description: 
Need implement yardstick benchmark which will be used for cache load testing 
(add it in 'yardstick' module).

For this load testing nodes will be started with several pre-configured caches. 
Benchmark on each call of 'test' method should iterate over all configured 
caches (can get list of caches using Ignite.cacheNames) and execute some random 
operations:
- put(All)
- get(All)
- invoke(All)
- remove(All)
- putIfAbsent
- replace
- scan query

If cache is transactional it also should execute cache operations inside 
explicitly start transaction with random concurrency/isolation mode.

This benchmark can be run in scenario when server nodes are restarted, so for 
explicit transaction need use method IgniteBenchmarkUtils.doInTransaction which 
has logic for exception handling.

It should be possible to pre-load some cache data before starting test , there 
should be special benchmark parameter which specifies how many entries load in 
caches on start (see IgniteSqlQueryBenchmark.setUp as example of benchmark 
doing preloading)

Also it should use non-primitives objects as cache keys/values. Value class 
should have String, int, long, double, byte[] fields.

  was:
Need implement yardstick benchmark which will be used for cache load testing 
(add it in 'yardstick' module).

For this load testing nodes will be started with several pre-configured caches. 
Benchmark on each call of 'test' method should iterate over all configured 
caches (can get list of caches using Ignite.cacheNames) and execute some random 
operations:
- put(All)
- get(All)
- invoke(All)
- remove(All)
- putIfAbsent
- replace
- scan query

If cache is transaction also should execute cache operations inside explicitly 
start transaction with random concurrency/isolation mode.

It can run in scenario when server nodes are restarted, so for explicit 
transaction need use method IgniteBenchmarkUtils.doInTransaction which has 
logic for exception handling.

It should be possible to pre-load some cache data before starting test , there 
should be special benchmark parameter which specifies how many entries load in 
caches on start (see IgniteSqlQueryBenchmark.setUp as example of benchmark 
doing preloading)

Also it should use non-primitives objects as cache keys/values. Value class 
should have String, int, long, double, byte[] fields.


> Add yardstick benchmark for cache load testing
> ----------------------------------------------
>
>                 Key: IGNITE-2952
>                 URL: https://issues.apache.org/jira/browse/IGNITE-2952
>             Project: Ignite
>          Issue Type: Test
>            Reporter: Semen Boikov
>
> Need implement yardstick benchmark which will be used for cache load testing 
> (add it in 'yardstick' module).
> For this load testing nodes will be started with several pre-configured 
> caches. Benchmark on each call of 'test' method should iterate over all 
> configured caches (can get list of caches using Ignite.cacheNames) and 
> execute some random operations:
> - put(All)
> - get(All)
> - invoke(All)
> - remove(All)
> - putIfAbsent
> - replace
> - scan query
> If cache is transactional it also should execute cache operations inside 
> explicitly start transaction with random concurrency/isolation mode.
> This benchmark can be run in scenario when server nodes are restarted, so for 
> explicit transaction need use method IgniteBenchmarkUtils.doInTransaction 
> which has logic for exception handling.
> It should be possible to pre-load some cache data before starting test , 
> there should be special benchmark parameter which specifies how many entries 
> load in caches on start (see IgniteSqlQueryBenchmark.setUp as example of 
> benchmark doing preloading)
> Also it should use non-primitives objects as cache keys/values. Value class 
> should have String, int, long, double, byte[] fields.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to