[ https://issues.apache.org/jira/browse/IGNITE-15666?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17447457#comment-17447457 ]
Vyacheslav Koptilin edited comment on IGNITE-15666 at 12/3/21, 12:20 AM: ------------------------------------------------------------------------- Hello [~NSAmelchev], [~PetrovMikhail], It seems to me, this fix is arguable and contradicts the specification JCache API. In accordance with specification *12.4. Statistics Effects of Cache Operations* the `remove(K key)` method should update statistics _if the method returns true._ Yep, it explicitly mentions the "Number of Removals", however, I think the average time is assumed as well. Let's consider the following situation: - cache.put(key, value); // removals = 0, averageTime = 0 - cache.remove(key); // removals = 1, averageTime = 100ms - cache.remove(notExistingKey1); // removals = 1, averageTime = 200ms (in your pull-request, this metric is always updated) - cache.remove(notExistingKey1); // removals = 1, averageTime = 300ms (--{-}//{-}--) In my understanding, this behavior does not seem correct. Yes, I see that your pull request passed the TCK (as the previous version of code as well), however, it speaks about the quality of the TCK itself :) was (Author: slava.koptilin): Hell [~NSAmelchev], [~PetrovMikhail], It seems to me, this fix is arguable and contradicts the specification JCache API. In accordance with specification *12.4. Statistics Effects of Cache Operations* the `remove(K key)` method should update statistics _if the method returns true._ Yep, it explicitly mentions the "Number of Removals", however, I think the average time is assumed as well. Let's consider the following situation: - cache.put(key, value); // removals = 0, averageTime = 0 - cache.remove(key); // removals = 1, averageTime = 100ms - cache.remove(notExistingKey1); // removals = 1, averageTime = 200ms (in your pull-request, this metric is always updated) - cache.remove(notExistingKey1); // removals = 1, averageTime = 300ms (---//---) In my understanding, this behavior does not seem correct. Yes, I see that your pull request passed the TCK (as the previous version of code as well), however, it speaks about the quality of the TCK itself :) > The remove metric value is different for sync and async methods > --------------------------------------------------------------- > > Key: IGNITE-15666 > URL: https://issues.apache.org/jira/browse/IGNITE-15666 > Project: Ignite > Issue Type: Bug > Reporter: Amelchev Nikita > Assignee: Amelchev Nikita > Priority: Major > Fix For: 2.12 > > Attachments: screenshot-1.png > > Time Spent: 0.5h > Remaining Estimate: 0h > > The remove metric value is different for sync and async methods. > The following metrics are updated only if the key was exist for the sync > version: > {noformat} > RemoveTimeTotal > RemoveTime > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001)