You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Nikolay Izhikov (JIRA)" <ji...@apache.org> on 2018/02/02 12:42:00 UTC

[jira] [Comment Edited] (IGNITE-425) Introduce transformers for continuous queries

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

Nikolay Izhikov edited comment on IGNITE-425 at 2/2/18 12:41 PM:
-----------------------------------------------------------------

[~avinogradov]

I changed benchmark.
Please, see source changes.

Got following number on couple of runs:

||Measure||Value||
|Warmup count|3|
|Iteration count|5|
|Period|20 sec|
|Write threads|4|

||Test||Description||
|CQBenchmark|Regular Continuous Query|
|CQWTIdBenchmark|Transformer returns Long|
|CQWTNullBenchmark|Transformer returns Null|
|CQWTValueBenchmark|Transformer retrurn whole Value|

{noformat}
Benchmark                                      Mode  Cnt        Score   Error  Units
CQBenchmark.testMethod                        thrpt    5       12,084 ± 1,111  ops/s
CQBenchmark.testMethod:evtCnt                 thrpt    5  7438039,000              #
CQBenchmark.testMethod:methodExecuted         thrpt    5     1815,000              #
CQWTIdBenchmark.putBatch                      thrpt    5       12,782 ± 0,290  ops/s
CQWTIdBenchmark.putBatch:evtCnt               thrpt    5  7867990,000              #
CQWTIdBenchmark.putBatch:methodExecuted       thrpt    5     1920,000              #
CQWTNullBenchmark.testMethod                  thrpt    5       12,601 ± 0,960  ops/s
CQWTNullBenchmark.testMethod:evtCnt           thrpt    5  7762282,000              #
CQWTNullBenchmark.testMethod:methodExecuted   thrpt    5     1894,000              #
CQWTValueBenchmark.testMethod                 thrpt    5       11,945 ± 0,522  ops/s
CQWTValueBenchmark.testMethod:evtCnt          thrpt    5  7356065,000              #
CQWTValueBenchmark.testMethod:methodExecuted  thrpt    5     1795,000              #


Benchmark                                    Mode  Cnt        Score   Error  Units
CQBenchmark.putBatch                        thrpt    5       12,158 ± 3,897  ops/s
CQBenchmark.putBatch:evtCnt                 thrpt    5  7482138,000              #
CQBenchmark.putBatch:methodExecuted         thrpt    5     1826,000              #
CQWTIdBenchmark.putBatch                    thrpt    5       12,736 ± 0,399  ops/s
CQWTIdBenchmark.putBatch:evtCnt             thrpt    5  7843317,000              #
CQWTIdBenchmark.putBatch:methodExecuted     thrpt    5     1914,000              #
CQWTNullBenchmark.putBatch                  thrpt    5       12,800 ± 0,565  ops/s
CQWTNullBenchmark.putBatch:evtCnt           thrpt    5  7877051,000              #
CQWTNullBenchmark.putBatch:methodExecuted   thrpt    5     1922,000              #
CQWTValueBenchmark.putBatch                 thrpt    5       11,785 ± 0,641  ops/s
CQWTValueBenchmark.putBatch:evtCnt          thrpt    5  7255440,000              #
CQWTValueBenchmark.putBatch:methodExecuted  thrpt    5     1770,000              #

Benchmark                                    Mode  Cnt        Score   Error  Units
CQBenchmark.putBatch                        thrpt    5       12,714 ± 0,972  ops/s
CQBenchmark.putBatch:evtCnt                 thrpt    5  7823989,000              #
CQBenchmark.putBatch:methodExecuted         thrpt    5     1909,000              #
CQWTIdBenchmark.putBatch                    thrpt    5       12,706 ± 0,672  ops/s
CQWTIdBenchmark.putBatch:evtCnt             thrpt    5  7818670,000              #
CQWTIdBenchmark.putBatch:methodExecuted     thrpt    5     1908,000              #
CQWTNullBenchmark.putBatch                  thrpt    5       12,820 ± 0,766  ops/s
CQWTNullBenchmark.putBatch:evtCnt           thrpt    5  7893313,000              #
CQWTNullBenchmark.putBatch:methodExecuted   thrpt    5     1926,000              #
CQWTValueBenchmark.putBatch                 thrpt    5       11,735 ± 0,801  ops/s
CQWTValueBenchmark.putBatch:evtCnt          thrpt    5  7220725,000              #
CQWTValueBenchmark.putBatch:methodExecuted  thrpt    5     1762,000              #
{noformat}


was (Author: nizhikov):
[~avinogradov]

I changed benchmark.
Please, see source changes.

Got following number on couple of runs:

||Measure||Value||
|Warmup count|3|
|Iteration count|5|
|Period|20 sec|
|Write threads|4|

{noformat}
Benchmark                                      Mode  Cnt        Score   Error  Units
CQBenchmark.testMethod                        thrpt    5       12,084 ± 1,111  ops/s
CQBenchmark.testMethod:evtCnt                 thrpt    5  7438039,000              #
CQBenchmark.testMethod:methodExecuted         thrpt    5     1815,000              #
CQWTIdBenchmark.putBatch                      thrpt    5       12,782 ± 0,290  ops/s
CQWTIdBenchmark.putBatch:evtCnt               thrpt    5  7867990,000              #
CQWTIdBenchmark.putBatch:methodExecuted       thrpt    5     1920,000              #
CQWTNullBenchmark.testMethod                  thrpt    5       12,601 ± 0,960  ops/s
CQWTNullBenchmark.testMethod:evtCnt           thrpt    5  7762282,000              #
CQWTNullBenchmark.testMethod:methodExecuted   thrpt    5     1894,000              #
CQWTValueBenchmark.testMethod                 thrpt    5       11,945 ± 0,522  ops/s
CQWTValueBenchmark.testMethod:evtCnt          thrpt    5  7356065,000              #
CQWTValueBenchmark.testMethod:methodExecuted  thrpt    5     1795,000              #


Benchmark                                    Mode  Cnt        Score   Error  Units
CQBenchmark.putBatch                        thrpt    5       12,158 ± 3,897  ops/s
CQBenchmark.putBatch:evtCnt                 thrpt    5  7482138,000              #
CQBenchmark.putBatch:methodExecuted         thrpt    5     1826,000              #
CQWTIdBenchmark.putBatch                    thrpt    5       12,736 ± 0,399  ops/s
CQWTIdBenchmark.putBatch:evtCnt             thrpt    5  7843317,000              #
CQWTIdBenchmark.putBatch:methodExecuted     thrpt    5     1914,000              #
CQWTNullBenchmark.putBatch                  thrpt    5       12,800 ± 0,565  ops/s
CQWTNullBenchmark.putBatch:evtCnt           thrpt    5  7877051,000              #
CQWTNullBenchmark.putBatch:methodExecuted   thrpt    5     1922,000              #
CQWTValueBenchmark.putBatch                 thrpt    5       11,785 ± 0,641  ops/s
CQWTValueBenchmark.putBatch:evtCnt          thrpt    5  7255440,000              #
CQWTValueBenchmark.putBatch:methodExecuted  thrpt    5     1770,000              #

Benchmark                                    Mode  Cnt        Score   Error  Units
CQBenchmark.putBatch                        thrpt    5       12,714 ± 0,972  ops/s
CQBenchmark.putBatch:evtCnt                 thrpt    5  7823989,000              #
CQBenchmark.putBatch:methodExecuted         thrpt    5     1909,000              #
CQWTIdBenchmark.putBatch                    thrpt    5       12,706 ± 0,672  ops/s
CQWTIdBenchmark.putBatch:evtCnt             thrpt    5  7818670,000              #
CQWTIdBenchmark.putBatch:methodExecuted     thrpt    5     1908,000              #
CQWTNullBenchmark.putBatch                  thrpt    5       12,820 ± 0,766  ops/s
CQWTNullBenchmark.putBatch:evtCnt           thrpt    5  7893313,000              #
CQWTNullBenchmark.putBatch:methodExecuted   thrpt    5     1926,000              #
CQWTValueBenchmark.putBatch                 thrpt    5       11,735 ± 0,801  ops/s
CQWTValueBenchmark.putBatch:evtCnt          thrpt    5  7220725,000              #
CQWTValueBenchmark.putBatch:methodExecuted  thrpt    5     1762,000              #
{noformat}

> Introduce transformers for continuous queries
> ---------------------------------------------
>
>                 Key: IGNITE-425
>                 URL: https://issues.apache.org/jira/browse/IGNITE-425
>             Project: Ignite
>          Issue Type: Sub-task
>          Components: cache
>    Affects Versions: 2.2
>            Reporter: Yakov Zhdanov
>            Assignee: Nikolay Izhikov
>            Priority: Major
>             Fix For: 2.5
>
>
> Currently if updated entry passes the filter, it is sent to node initiated the query entirely. It would be good to provide user with the ability to transform entry and, for example, select only fields that are important. This may bring huge economy to traffic and lower GC pressure as well.
> Possible signatures will be:
> {noformat}
> public final class ContinuousQuery<K, V, T> {..} // T is a type transformer transforms to
> public ContinuousQuery<K, V, T> setLocalListener(Listener<T> locLsnr) {..} // Probably, we will have to introduce new listener type, since user may want to wipe out key as well.
> /* new method to add */
> public ContinuousQuery<K, V, T> setRemoteTransformerFactory(Factory<? extends ContinuousQueryTransformer<K, V, T>> factory) { ..}
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)