[ 
https://issues.apache.org/jira/browse/IGNITE-2952?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15236799#comment-15236799
 ] 

Denis Magda commented on IGNITE-2952:
-------------------------------------

Did partial review. Please address the following:

1. Create ticket and test for "Failed to get field because type ID of passed 
object differs" error. Attach the test into the new ticket. In the benchmarks 
don't use several indexed types in the same cache. This should avoid the 
exception.

2. {{BinaryObjectOffHeapImpl}} related issue.

{noformat}
[18:11:50,914][ERROR][benchmark-worker-5][GridDhtAtomicCache] <query-offheap> 
Unexpected exception during cache update
java.lang.UnsupportedOperationException
 at 
org.apache.ignite.internal.binary.BinaryObjectOffheapImpl.cacheObjectType(BinaryObjectOffheapImpl.java:341)
 at 
org.apache.ignite.internal.processors.query.h2.opt.GridH2ValueCacheObject.getBytesNoCopy(GridH2ValueCacheObject.java:109)
 at org.h2.store.Data.getValueLen(Data.java:1001)
 at org.h2.store.Data.getValueLen(Data.java:878)
{noformat}

Show the full stack trace to [~ashutak] who is working on IGNITE-2899. 

3. Rework {{ScanQuery}} test in the following way:
- choose random 10 partitions;
- send compute task to primary nodes of these partitions;
- execute local ScanQuery setting partition number on the owner node;
- use {{ScanQuery.iterator}} for iteration.
Refer to this example for more details
https://github.com/gridgain/gridgain-advanced-examples/blob/master/src/main/java/org/gridgain/examples/datagrid/query/ScanQueryExample.java

4. Preload data from 0 to preloadAmont value. Throw an exception if range is 
smaller than preloadAmount.

> 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
>            Assignee: Vladislav Pyatkov
>
> 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