ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Valentin Kulichenko (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IGNITE-1144) Need to have a capability to run a closure collocated with a queue/set
Date Thu, 04 Feb 2016 21:51:39 GMT

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

Valentin Kulichenko commented on IGNITE-1144:

Hi Oddo.

I reviewed your changes. Looks like you're making progress, but I have several comments:

* Code after your changes can't be compiled against Java7 (looks like you're working with
Java8). Please make sure it compiles with both 7 and 8.
* Can you explain {{CU.outTx}} calls in {{GridCacheQueueProxy}} and {{GridCacheSetProxy}}?
You execute closure twice for transactional caches which is obviously wrong. Actually, proxy
should only block the gateway and delegate, all other code should be in corresponding implementation
classes. Anyway, most likely taht these pieces of code should be removed.
* Since you added async methods annotated with {{@IgniteAsyncSupported}}, you should also
implement {{IgniteAsyncSupport}} interface. Currently there is no way to execute these operations
* You should improve test coverage. Couple of tests you added check almost nothing, they don't
even have a single assertion. Moreover, they fail. Please don't forget to run TC before submitting
a patch.

I would also rephrase the error message and mention the data structure name there. Smth like
throw new IgniteException("Failed to execute affinityCall() for non-collocated set: " + name
    ". This operation is supported only for collocated sets.");


> Need to have a capability to run a closure collocated with a queue/set
> ----------------------------------------------------------------------
>                 Key: IGNITE-1144
>                 URL: https://issues.apache.org/jira/browse/IGNITE-1144
>             Project: Ignite
>          Issue Type: Improvement
>          Components: cache
>    Affects Versions: 1.1.4
>            Reporter: Valentin Kulichenko
>            Assignee: Oddo
>            Priority: Critical
> Currently there is no way to do this since all collocated queues and sets are stored
in special system cache. This makes {{affinityRun()}} and {{affinityCall()}} methods useless
because it requires to explicitly provide cache name which user doesn't know in this case.
> I suggest to add {{affinityRun()}} and {{affinityCall()}} methods on {{IgniteQueue}}
and {{IgniteSet}}. They will:
> * take only closure as a parameter
> * throw exception for non-collocated mode
> * properly delegate to sibling methods in {{Ignite}} with proper cache name
> Alternatively we can add these methods on {{Ignite}} interface, which is more consistent
with the current API. But I'm not sure how to call them.

This message was sent by Atlassian JIRA

View raw message