[
https://issues.apache.org/jira/browse/IGNITE-6846?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16264488#comment-16264488
]
Alexey Kuznetsov edited comment on IGNITE-6846 at 11/28/17 12:10 PM:
---------------------------------------------------------------------
While implementing the task i rely on the following
1)When entry is updated, both 'invoke update' and get\put\remove metrics can be
updated.
2)When entry processor is invoked, but cache entry isn't affected, then invoke
metric isn't incremented.
3)'invoke update' metrics incremented only when cache entry value is changed(or
removed) by entry processor(not just when entry processor is invoked).
4)If entry processor process(...) is called once, and multiple entries(perhaps
on different nodes) are affected, then local invoke metric is incremented only
once, cluster global metric is incremented once, local metrics on other nodes
are zero.
5)Read-only 'invoke' metric is incremented if processor invoke operation is
called without executing entry.setValue(...) (even calling entry.getValue() can
be omit), processor can return non-null value.Also, cache might be empty while
processor invocation.
6)'invoke removal' metric is incremented only if old cache value exists and
removal succeedes.
If there was no old value, associated with a key, then 'invoke read-only'
metric is incremented.
7)The following metrics are going to be added : total number of invokes, number
of invoke updates, number of invoke removals, number of read-only invokes,
min\max\avg number of invocations(all invocations).
Do you think its correct?
was (Author: alexey kuznetsov):
While implementing the task i rely on the following
1)When entry is updated, both 'invoke update' and get\put\remove metrics can be
updated.
2)When entry processor is invoked, but cache entry isn't affected, then invoke
metric isn't incremented.
3)'invoke update' metrics incremented only when cache entry value is changed(or
removed) by entry processor(not just when entry processor is invoked).
4)If entry processor process(...) is called once, and multiple entries(perhaps
on different nodes) are affected, then local invoke metric is incremented only
once, cluster global metric is incremented once, local metrics on other nodes
are zero.
5)Read-only 'invoke' metric is incremented if processor invoke operation is
called without executing entry.setValue(...) (even calling entry.getValue() can
be omit), processor can return non-null value.Also, cache might be empty while
processor invocation.
6)'invoke removal' metric is incremented only if old cache value exists and
removal succeedes.
7)The following metrics are going to be added : total number of invokes, number
of invoke updates, number of invoke removals, number of read-only invokes,
min\max\avg number of invocations(all invocations).
Do you think its correct?
> Add metrics for entry processor invocations
> -------------------------------------------
>
> Key: IGNITE-6846
> URL: https://issues.apache.org/jira/browse/IGNITE-6846
> Project: Ignite
> Issue Type: Improvement
> Components: cache
> Affects Versions: 2.3
> Reporter: Valentin Kulichenko
> Assignee: Alexey Kuznetsov
> Priority: Critical
> Labels: iep-6
> Fix For: 2.4
>
>
> {{CacheMetrics}} object has multiple metrics for various cache operations
> like {{get}}, {{put}} and {{remove}}, but nothing for
> {{invoke}}/{{EntryProcessor}}. It makes sense to add such metrics, for
> example:
> * Total number of `invoke` operations executed.
> * Number of `invoke` operations that included updates.
> * Number of read-only `invoke` operations.
> * Min/max/avg execution time.
> * ...
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)