ignite-2310

classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|

ignite-2310

Taras Ledkov
Igniters,

Lets discuss the changes of public API at the IgniteCompute.
The new methods affinityRun & affinityCall is added by working on
IGNITE-2310.

https://issues.apache.org/jira/browse/IGNITE-2310

Please take a look at the signature of the new methods:

https://github.com/gridgain/apache-ignite/commit/991fb60f563ee1630152ca0159d04b4969f883bf#diff-b276b8e6e14915f9e5f2f5daeeddec8a

void affinityRun(@Nullable String cacheName, Object affKey,
IgniteRunnable job, Map<String, int[]> partsToLock)

The parameter Map<String, int[]> partsToLock is added.
Map contains the pairs of the cache name and array of partitions that
must be reserved on the target node before job execution.

Dmitry, colleagues, please comment or approve.

--
Taras Ledkov
Mail-To: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: ignite-2310

Vladimir Ozerov
If we add "partsToLock" to job execute request, then why we allow it only
for "affinity" methods? We can resort to "with" semantics instead:

IgniteCompute.*withPartitionsToLock*(...).affinityRun();

On Wed, Jul 6, 2016 at 12:23 PM, Taras Ledkov <[hidden email]> wrote:

> Igniters,
>
> Lets discuss the changes of public API at the IgniteCompute.
> The new methods affinityRun & affinityCall is added by working on
> IGNITE-2310.
>
> https://issues.apache.org/jira/browse/IGNITE-2310
>
> Please take a look at the signature of the new methods:
>
>
> https://github.com/gridgain/apache-ignite/commit/991fb60f563ee1630152ca0159d04b4969f883bf#diff-b276b8e6e14915f9e5f2f5daeeddec8a
>
> void affinityRun(@Nullable String cacheName, Object affKey, IgniteRunnable
> job, Map<String, int[]> partsToLock)
>
> The parameter Map<String, int[]> partsToLock is added.
> Map contains the pairs of the cache name and array of partitions that must
> be reserved on the target node before job execution.
>
> Dmitry, colleagues, please comment or approve.
>
> --
> Taras Ledkov
> Mail-To: [hidden email]
>
>
Reply | Threaded
Open this post in threaded view
|

Re: ignite-2310

yzhdanov
Guys, this does not work in general case. If you provide more than one
partition you can end up with a situation when they reside on more than one
node.

--Yakov

2016-07-06 13:50 GMT+03:00 Vladimir Ozerov <[hidden email]>:

> If we add "partsToLock" to job execute request, then why we allow it only
> for "affinity" methods? We can resort to "with" semantics instead:
>
> IgniteCompute.*withPartitionsToLock*(...).affinityRun();
>
> On Wed, Jul 6, 2016 at 12:23 PM, Taras Ledkov <[hidden email]>
> wrote:
>
> > Igniters,
> >
> > Lets discuss the changes of public API at the IgniteCompute.
> > The new methods affinityRun & affinityCall is added by working on
> > IGNITE-2310.
> >
> > https://issues.apache.org/jira/browse/IGNITE-2310
> >
> > Please take a look at the signature of the new methods:
> >
> >
> >
> https://github.com/gridgain/apache-ignite/commit/991fb60f563ee1630152ca0159d04b4969f883bf#diff-b276b8e6e14915f9e5f2f5daeeddec8a
> >
> > void affinityRun(@Nullable String cacheName, Object affKey,
> IgniteRunnable
> > job, Map<String, int[]> partsToLock)
> >
> > The parameter Map<String, int[]> partsToLock is added.
> > Map contains the pairs of the cache name and array of partitions that
> must
> > be reserved on the target node before job execution.
> >
> > Dmitry, colleagues, please comment or approve.
> >
> > --
> > Taras Ledkov
> > Mail-To: [hidden email]
> >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: ignite-2310

Semyon Boikov-2
I think we should detect such situation and throw exception. As I remember
for cross cache qieries we throw exception if caches have different
partitions distribution.

On Wed, Jul 6, 2016 at 3:14 PM, Yakov Zhdanov <[hidden email]> wrote:

> Guys, this does not work in general case. If you provide more than one
> partition you can end up with a situation when they reside on more than one
> node.
>
> --Yakov
>
> 2016-07-06 13:50 GMT+03:00 Vladimir Ozerov <[hidden email]>:
>
> > If we add "partsToLock" to job execute request, then why we allow it only
> > for "affinity" methods? We can resort to "with" semantics instead:
> >
> > IgniteCompute.*withPartitionsToLock*(...).affinityRun();
> >
> > On Wed, Jul 6, 2016 at 12:23 PM, Taras Ledkov <[hidden email]>
> > wrote:
> >
> > > Igniters,
> > >
> > > Lets discuss the changes of public API at the IgniteCompute.
> > > The new methods affinityRun & affinityCall is added by working on
> > > IGNITE-2310.
> > >
> > > https://issues.apache.org/jira/browse/IGNITE-2310
> > >
> > > Please take a look at the signature of the new methods:
> > >
> > >
> > >
> >
> https://github.com/gridgain/apache-ignite/commit/991fb60f563ee1630152ca0159d04b4969f883bf#diff-b276b8e6e14915f9e5f2f5daeeddec8a
> > >
> > > void affinityRun(@Nullable String cacheName, Object affKey,
> > IgniteRunnable
> > > job, Map<String, int[]> partsToLock)
> > >
> > > The parameter Map<String, int[]> partsToLock is added.
> > > Map contains the pairs of the cache name and array of partitions that
> > must
> > > be reserved on the target node before job execution.
> > >
> > > Dmitry, colleagues, please comment or approve.
> > >
> > > --
> > > Taras Ledkov
> > > Mail-To: [hidden email]
> > >
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: ignite-2310

Taras Ledkov
What would you say about:

- proposal #0:  affinityRun(String cacheName, Object affKey,
IgniteRunnable job, Collection<String> extraCaches);
- proposal #1:  affinityRun(Collection<String> caches, int part,
IgniteRunnable job).

06.07.2016 15:18, Semyon Boikov пишет:

> I think we should detect such situation and throw exception. As I remember
> for cross cache qieries we throw exception if caches have different
> partitions distribution.
>
> On Wed, Jul 6, 2016 at 3:14 PM, Yakov Zhdanov <[hidden email]> wrote:
>
>> Guys, this does not work in general case. If you provide more than one
>> partition you can end up with a situation when they reside on more than one
>> node.
>>
>> --Yakov
>>
>> 2016-07-06 13:50 GMT+03:00 Vladimir Ozerov <[hidden email]>:
>>
>>> If we add "partsToLock" to job execute request, then why we allow it only
>>> for "affinity" methods? We can resort to "with" semantics instead:
>>>
>>> IgniteCompute.*withPartitionsToLock*(...).affinityRun();
>>>
>>> On Wed, Jul 6, 2016 at 12:23 PM, Taras Ledkov <[hidden email]>
>>> wrote:
>>>
>>>> Igniters,
>>>>
>>>> Lets discuss the changes of public API at the IgniteCompute.
>>>> The new methods affinityRun & affinityCall is added by working on
>>>> IGNITE-2310.
>>>>
>>>> https://issues.apache.org/jira/browse/IGNITE-2310
>>>>
>>>> Please take a look at the signature of the new methods:
>>>>
>>>>
>>>>
>> https://github.com/gridgain/apache-ignite/commit/991fb60f563ee1630152ca0159d04b4969f883bf#diff-b276b8e6e14915f9e5f2f5daeeddec8a
>>>> void affinityRun(@Nullable String cacheName, Object affKey,
>>> IgniteRunnable
>>>> job, Map<String, int[]> partsToLock)
>>>>
>>>> The parameter Map<String, int[]> partsToLock is added.
>>>> Map contains the pairs of the cache name and array of partitions that
>>> must
>>>> be reserved on the target node before job execution.
>>>>
>>>> Dmitry, colleagues, please comment or approve.
>>>>
>>>> --
>>>> Taras Ledkov
>>>> Mail-To: [hidden email]
>>>>
>>>>

--
Taras Ledkov
Mail-To: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: ignite-2310

Taras Ledkov
In reply to this post by Semyon Boikov-2
Igniters,

Please take a look at the next proposal of changes at
IgniteCompute.affinityRun / affinityCall:

https://github.com/gridgain/apache-ignite/commit/c57f009c44e07240fc8c8e6feed3271c63f31664#diff-b276b8e6e14915f9e5f2f5daeeddec8a

So, two methods is added affinityRun and affinityCall. There is
additional parameter Collection of extra caches names.
An affinity job without the extra caches reserves only one partition
(that contains affinity key) of the affinity cache.
An affinity job with the extra caches parameter reserves the partitions
(similar to affinity partition) of all extra caches.

06.07.2016 15:18, Semyon Boikov wrote:

> I think we should detect such situation and throw exception. As I remember
> for cross cache qieries we throw exception if caches have different
> partitions distribution.
>
> On Wed, Jul 6, 2016 at 3:14 PM, Yakov Zhdanov <[hidden email]> wrote:
>
>> Guys, this does not work in general case. If you provide more than one
>> partition you can end up with a situation when they reside on more than one
>> node.
>>
>> --Yakov
>>
>> 2016-07-06 13:50 GMT+03:00 Vladimir Ozerov <[hidden email]>:
>>
>>> If we add "partsToLock" to job execute request, then why we allow it only
>>> for "affinity" methods? We can resort to "with" semantics instead:
>>>
>>> IgniteCompute.*withPartitionsToLock*(...).affinityRun();
>>>
>>> On Wed, Jul 6, 2016 at 12:23 PM, Taras Ledkov <[hidden email]>
>>> wrote:
>>>
>>>> Igniters,
>>>>
>>>> Lets discuss the changes of public API at the IgniteCompute.
>>>> The new methods affinityRun & affinityCall is added by working on
>>>> IGNITE-2310.
>>>>
>>>> https://issues.apache.org/jira/browse/IGNITE-2310
>>>>
>>>> Please take a look at the signature of the new methods:
>>>>
>>>>
>>>>
>> https://github.com/gridgain/apache-ignite/commit/991fb60f563ee1630152ca0159d04b4969f883bf#diff-b276b8e6e14915f9e5f2f5daeeddec8a
>>>> void affinityRun(@Nullable String cacheName, Object affKey,
>>> IgniteRunnable
>>>> job, Map<String, int[]> partsToLock)
>>>>
>>>> The parameter Map<String, int[]> partsToLock is added.
>>>> Map contains the pairs of the cache name and array of partitions that
>>> must
>>>> be reserved on the target node before job execution.
>>>>
>>>> Dmitry, colleagues, please comment or approve.
>>>>
>>>> --
>>>> Taras Ledkov
>>>> Mail-To: [hidden email]
>>>>
>>>>

--
Taras Ledkov
Mail-To: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: ignite-2310

dsetrakyan
Taras, it is very difficult to review API changes this way. Can you please
provide additional APIs in the ticket?

Also, we should add documentation about reserving partitions as well. To my
knowledge, this feature ensures that a partition will not be migrated while
affinityRun/Call is executed, right?

On Thu, Jul 7, 2016 at 3:02 AM, Taras Ledkov <[hidden email]> wrote:

> Igniters,
>
> Please take a look at the next proposal of changes at
> IgniteCompute.affinityRun / affinityCall:
>
>
> https://github.com/gridgain/apache-ignite/commit/c57f009c44e07240fc8c8e6feed3271c63f31664#diff-b276b8e6e14915f9e5f2f5daeeddec8a
>
> So, two methods is added affinityRun and affinityCall. There is additional
> parameter Collection of extra caches names.
> An affinity job without the extra caches reserves only one partition (that
> contains affinity key) of the affinity cache.
> An affinity job with the extra caches parameter reserves the partitions
> (similar to affinity partition) of all extra caches.
>
>
> 06.07.2016 15:18, Semyon Boikov wrote:
>
>> I think we should detect such situation and throw exception. As I remember
>> for cross cache qieries we throw exception if caches have different
>> partitions distribution.
>>
>> On Wed, Jul 6, 2016 at 3:14 PM, Yakov Zhdanov <[hidden email]>
>> wrote:
>>
>> Guys, this does not work in general case. If you provide more than one
>>> partition you can end up with a situation when they reside on more than
>>> one
>>> node.
>>>
>>> --Yakov
>>>
>>> 2016-07-06 13:50 GMT+03:00 Vladimir Ozerov <[hidden email]>:
>>>
>>> If we add "partsToLock" to job execute request, then why we allow it only
>>>> for "affinity" methods? We can resort to "with" semantics instead:
>>>>
>>>> IgniteCompute.*withPartitionsToLock*(...).affinityRun();
>>>>
>>>> On Wed, Jul 6, 2016 at 12:23 PM, Taras Ledkov <[hidden email]>
>>>> wrote:
>>>>
>>>> Igniters,
>>>>>
>>>>> Lets discuss the changes of public API at the IgniteCompute.
>>>>> The new methods affinityRun & affinityCall is added by working on
>>>>> IGNITE-2310.
>>>>>
>>>>> https://issues.apache.org/jira/browse/IGNITE-2310
>>>>>
>>>>> Please take a look at the signature of the new methods:
>>>>>
>>>>>
>>>>>
>>>>>
>>> https://github.com/gridgain/apache-ignite/commit/991fb60f563ee1630152ca0159d04b4969f883bf#diff-b276b8e6e14915f9e5f2f5daeeddec8a
>>>
>>>> void affinityRun(@Nullable String cacheName, Object affKey,
>>>>>
>>>> IgniteRunnable
>>>>
>>>>> job, Map<String, int[]> partsToLock)
>>>>>
>>>>> The parameter Map<String, int[]> partsToLock is added.
>>>>> Map contains the pairs of the cache name and array of partitions that
>>>>>
>>>> must
>>>>
>>>>> be reserved on the target node before job execution.
>>>>>
>>>>> Dmitry, colleagues, please comment or approve.
>>>>>
>>>>> --
>>>>> Taras Ledkov
>>>>> Mail-To: [hidden email]
>>>>>
>>>>>
>>>>>
> --
> Taras Ledkov
> Mail-To: [hidden email]
>
>
Reply | Threaded
Open this post in threaded view
|

Re: ignite-2310

Taras Ledkov
Igniters,

The issue https://issues.apache.org/jira/browse/IGNITE-2310 is updated
with comment
about the changes at the IgniteCompute. Please comment the ticket.

The changed javadoc of the affinityRun/Call is available to review at
the branch
https://github.com/gridgain/apache-ignite/blob/ignite-2310/modules/core/src/main/java/org/apache/ignite/IgniteCompute.java#L123

07.07.2016 14:13, Dmitriy Setrakyan пишет:

> Taras, it is very difficult to review API changes this way. Can you please
> provide additional APIs in the ticket?
>
> Also, we should add documentation about reserving partitions as well. To my
> knowledge, this feature ensures that a partition will not be migrated while
> affinityRun/Call is executed, right?
>
> On Thu, Jul 7, 2016 at 3:02 AM, Taras Ledkov <[hidden email]> wrote:
>
>> Igniters,
>>
>> Please take a look at the next proposal of changes at
>> IgniteCompute.affinityRun / affinityCall:
>>
>>
>> https://github.com/gridgain/apache-ignite/commit/c57f009c44e07240fc8c8e6feed3271c63f31664#diff-b276b8e6e14915f9e5f2f5daeeddec8a
>>
>> So, two methods is added affinityRun and affinityCall. There is additional
>> parameter Collection of extra caches names.
>> An affinity job without the extra caches reserves only one partition (that
>> contains affinity key) of the affinity cache.
>> An affinity job with the extra caches parameter reserves the partitions
>> (similar to affinity partition) of all extra caches.
>>
>>
>> 06.07.2016 15:18, Semyon Boikov wrote:
>>
>>> I think we should detect such situation and throw exception. As I remember
>>> for cross cache qieries we throw exception if caches have different
>>> partitions distribution.
>>>
>>> On Wed, Jul 6, 2016 at 3:14 PM, Yakov Zhdanov <[hidden email]>
>>> wrote:
>>>
>>> Guys, this does not work in general case. If you provide more than one
>>>> partition you can end up with a situation when they reside on more than
>>>> one
>>>> node.
>>>>
>>>> --Yakov
>>>>
>>>> 2016-07-06 13:50 GMT+03:00 Vladimir Ozerov <[hidden email]>:
>>>>
>>>> If we add "partsToLock" to job execute request, then why we allow it only
>>>>> for "affinity" methods? We can resort to "with" semantics instead:
>>>>>
>>>>> IgniteCompute.*withPartitionsToLock*(...).affinityRun();
>>>>>
>>>>> On Wed, Jul 6, 2016 at 12:23 PM, Taras Ledkov <[hidden email]>
>>>>> wrote:
>>>>>
>>>>> Igniters,
>>>>>> Lets discuss the changes of public API at the IgniteCompute.
>>>>>> The new methods affinityRun & affinityCall is added by working on
>>>>>> IGNITE-2310.
>>>>>>
>>>>>> https://issues.apache.org/jira/browse/IGNITE-2310
>>>>>>
>>>>>> Please take a look at the signature of the new methods:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>> https://github.com/gridgain/apache-ignite/commit/991fb60f563ee1630152ca0159d04b4969f883bf#diff-b276b8e6e14915f9e5f2f5daeeddec8a
>>>>
>>>>> void affinityRun(@Nullable String cacheName, Object affKey,
>>>>> IgniteRunnable
>>>>>
>>>>>> job, Map<String, int[]> partsToLock)
>>>>>>
>>>>>> The parameter Map<String, int[]> partsToLock is added.
>>>>>> Map contains the pairs of the cache name and array of partitions that
>>>>>>
>>>>> must
>>>>>
>>>>>> be reserved on the target node before job execution.
>>>>>>
>>>>>> Dmitry, colleagues, please comment or approve.
>>>>>>
>>>>>> --
>>>>>> Taras Ledkov
>>>>>> Mail-To: [hidden email]
>>>>>>
>>>>>>
>>>>>>
>> --
>> Taras Ledkov
>> Mail-To: [hidden email]
>>
>>

--
Taras Ledkov
Mail-To: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: ignite-2310

dsetrakyan
Thanks Taras, I have added my comments in the ticket.

On Thu, Jul 7, 2016 at 5:44 AM, Taras Ledkov <[hidden email]> wrote:

> Igniters,
>
> The issue https://issues.apache.org/jira/browse/IGNITE-2310 is updated
> with comment
> about the changes at the IgniteCompute. Please comment the ticket.
>
> The changed javadoc of the affinityRun/Call is available to review at the
> branch
>
> https://github.com/gridgain/apache-ignite/blob/ignite-2310/modules/core/src/main/java/org/apache/ignite/IgniteCompute.java#L123
>
> 07.07.2016 14:13, Dmitriy Setrakyan пишет:
>
> Taras, it is very difficult to review API changes this way. Can you please
>> provide additional APIs in the ticket?
>>
>> Also, we should add documentation about reserving partitions as well. To
>> my
>> knowledge, this feature ensures that a partition will not be migrated
>> while
>> affinityRun/Call is executed, right?
>>
>> On Thu, Jul 7, 2016 at 3:02 AM, Taras Ledkov <[hidden email]>
>> wrote:
>>
>> Igniters,
>>>
>>> Please take a look at the next proposal of changes at
>>> IgniteCompute.affinityRun / affinityCall:
>>>
>>>
>>>
>>> https://github.com/gridgain/apache-ignite/commit/c57f009c44e07240fc8c8e6feed3271c63f31664#diff-b276b8e6e14915f9e5f2f5daeeddec8a
>>>
>>> So, two methods is added affinityRun and affinityCall. There is
>>> additional
>>> parameter Collection of extra caches names.
>>> An affinity job without the extra caches reserves only one partition
>>> (that
>>> contains affinity key) of the affinity cache.
>>> An affinity job with the extra caches parameter reserves the partitions
>>> (similar to affinity partition) of all extra caches.
>>>
>>>
>>> 06.07.2016 15:18, Semyon Boikov wrote:
>>>
>>> I think we should detect such situation and throw exception. As I
>>>> remember
>>>> for cross cache qieries we throw exception if caches have different
>>>> partitions distribution.
>>>>
>>>> On Wed, Jul 6, 2016 at 3:14 PM, Yakov Zhdanov <[hidden email]>
>>>> wrote:
>>>>
>>>> Guys, this does not work in general case. If you provide more than one
>>>>
>>>>> partition you can end up with a situation when they reside on more than
>>>>> one
>>>>> node.
>>>>>
>>>>> --Yakov
>>>>>
>>>>> 2016-07-06 13:50 GMT+03:00 Vladimir Ozerov <[hidden email]>:
>>>>>
>>>>> If we add "partsToLock" to job execute request, then why we allow it
>>>>> only
>>>>>
>>>>>> for "affinity" methods? We can resort to "with" semantics instead:
>>>>>>
>>>>>> IgniteCompute.*withPartitionsToLock*(...).affinityRun();
>>>>>>
>>>>>> On Wed, Jul 6, 2016 at 12:23 PM, Taras Ledkov <[hidden email]>
>>>>>> wrote:
>>>>>>
>>>>>> Igniters,
>>>>>>
>>>>>>> Lets discuss the changes of public API at the IgniteCompute.
>>>>>>> The new methods affinityRun & affinityCall is added by working on
>>>>>>> IGNITE-2310.
>>>>>>>
>>>>>>> https://issues.apache.org/jira/browse/IGNITE-2310
>>>>>>>
>>>>>>> Please take a look at the signature of the new methods:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>> https://github.com/gridgain/apache-ignite/commit/991fb60f563ee1630152ca0159d04b4969f883bf#diff-b276b8e6e14915f9e5f2f5daeeddec8a
>>>>>
>>>>> void affinityRun(@Nullable String cacheName, Object affKey,
>>>>>> IgniteRunnable
>>>>>>
>>>>>> job, Map<String, int[]> partsToLock)
>>>>>>>
>>>>>>> The parameter Map<String, int[]> partsToLock is added.
>>>>>>> Map contains the pairs of the cache name and array of partitions that
>>>>>>>
>>>>>>> must
>>>>>>
>>>>>> be reserved on the target node before job execution.
>>>>>>>
>>>>>>> Dmitry, colleagues, please comment or approve.
>>>>>>>
>>>>>>> --
>>>>>>> Taras Ledkov
>>>>>>> Mail-To: [hidden email]
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>> Taras Ledkov
>>> Mail-To: [hidden email]
>>>
>>>
>>>
> --
> Taras Ledkov
> Mail-To: [hidden email]
>
>
Reply | Threaded
Open this post in threaded view
|

Re: ignite-2310

Taras Ledkov
Hi,

Dmitry, thanks for your comments.
I've updated the ticket with the reasons of my version of the API changes.
I'm OK with the both version of the API.

Igniters, please any comments.


09.07.2016 4:22, Dmitriy Setrakyan пишет:

> Thanks Taras, I have added my comments in the ticket.
>
> On Thu, Jul 7, 2016 at 5:44 AM, Taras Ledkov <[hidden email]> wrote:
>
>> Igniters,
>>
>> The issue https://issues.apache.org/jira/browse/IGNITE-2310 is updated
>> with comment
>> about the changes at the IgniteCompute. Please comment the ticket.
>>
>> The changed javadoc of the affinityRun/Call is available to review at the
>> branch
>>
>> https://github.com/gridgain/apache-ignite/blob/ignite-2310/modules/core/src/main/java/org/apache/ignite/IgniteCompute.java#L123
>>
>> 07.07.2016 14:13, Dmitriy Setrakyan пишет:
>>
>> Taras, it is very difficult to review API changes this way. Can you please
>>> provide additional APIs in the ticket?
>>>
>>> Also, we should add documentation about reserving partitions as well. To
>>> my
>>> knowledge, this feature ensures that a partition will not be migrated
>>> while
>>> affinityRun/Call is executed, right?
>>>
>>> On Thu, Jul 7, 2016 at 3:02 AM, Taras Ledkov <[hidden email]>
>>> wrote:
>>>
>>> Igniters,
>>>> Please take a look at the next proposal of changes at
>>>> IgniteCompute.affinityRun / affinityCall:
>>>>
>>>>
>>>>
>>>> https://github.com/gridgain/apache-ignite/commit/c57f009c44e07240fc8c8e6feed3271c63f31664#diff-b276b8e6e14915f9e5f2f5daeeddec8a
>>>>
>>>> So, two methods is added affinityRun and affinityCall. There is
>>>> additional
>>>> parameter Collection of extra caches names.
>>>> An affinity job without the extra caches reserves only one partition
>>>> (that
>>>> contains affinity key) of the affinity cache.
>>>> An affinity job with the extra caches parameter reserves the partitions
>>>> (similar to affinity partition) of all extra caches.
>>>>
>>>>
>>>> 06.07.2016 15:18, Semyon Boikov wrote:
>>>>
>>>> I think we should detect such situation and throw exception. As I
>>>>> remember
>>>>> for cross cache qieries we throw exception if caches have different
>>>>> partitions distribution.
>>>>>
>>>>> On Wed, Jul 6, 2016 at 3:14 PM, Yakov Zhdanov <[hidden email]>
>>>>> wrote:
>>>>>
>>>>> Guys, this does not work in general case. If you provide more than one
>>>>>
>>>>>> partition you can end up with a situation when they reside on more than
>>>>>> one
>>>>>> node.
>>>>>>
>>>>>> --Yakov
>>>>>>
>>>>>> 2016-07-06 13:50 GMT+03:00 Vladimir Ozerov <[hidden email]>:
>>>>>>
>>>>>> If we add "partsToLock" to job execute request, then why we allow it
>>>>>> only
>>>>>>
>>>>>>> for "affinity" methods? We can resort to "with" semantics instead:
>>>>>>>
>>>>>>> IgniteCompute.*withPartitionsToLock*(...).affinityRun();
>>>>>>>
>>>>>>> On Wed, Jul 6, 2016 at 12:23 PM, Taras Ledkov <[hidden email]>
>>>>>>> wrote:
>>>>>>>
>>>>>>> Igniters,
>>>>>>>
>>>>>>>> Lets discuss the changes of public API at the IgniteCompute.
>>>>>>>> The new methods affinityRun & affinityCall is added by working on
>>>>>>>> IGNITE-2310.
>>>>>>>>
>>>>>>>> https://issues.apache.org/jira/browse/IGNITE-2310
>>>>>>>>
>>>>>>>> Please take a look at the signature of the new methods:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>> https://github.com/gridgain/apache-ignite/commit/991fb60f563ee1630152ca0159d04b4969f883bf#diff-b276b8e6e14915f9e5f2f5daeeddec8a
>>>>>>
>>>>>> void affinityRun(@Nullable String cacheName, Object affKey,
>>>>>>> IgniteRunnable
>>>>>>>
>>>>>>> job, Map<String, int[]> partsToLock)
>>>>>>>> The parameter Map<String, int[]> partsToLock is added.
>>>>>>>> Map contains the pairs of the cache name and array of partitions that
>>>>>>>>
>>>>>>>> must
>>>>>>> be reserved on the target node before job execution.
>>>>>>>> Dmitry, colleagues, please comment or approve.
>>>>>>>>
>>>>>>>> --
>>>>>>>> Taras Ledkov
>>>>>>>> Mail-To: [hidden email]
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>> Taras Ledkov
>>>> Mail-To: [hidden email]
>>>>
>>>>
>>>>
>> --
>> Taras Ledkov
>> Mail-To: [hidden email]
>>
>>

--
Taras Ledkov
Mail-To: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: ignite-2310

yzhdanov
I replied in the ticket.

--Yakov

2016-07-11 12:43 GMT+03:00 Taras Ledkov <[hidden email]>:

> Hi,
>
> Dmitry, thanks for your comments.
> I've updated the ticket with the reasons of my version of the API changes.
> I'm OK with the both version of the API.
>
> Igniters, please any comments.
>
>
> 09.07.2016 4:22, Dmitriy Setrakyan пишет:
>
> Thanks Taras, I have added my comments in the ticket.
>>
>> On Thu, Jul 7, 2016 at 5:44 AM, Taras Ledkov <[hidden email]>
>> wrote:
>>
>> Igniters,
>>>
>>> The issue https://issues.apache.org/jira/browse/IGNITE-2310 is updated
>>> with comment
>>> about the changes at the IgniteCompute. Please comment the ticket.
>>>
>>> The changed javadoc of the affinityRun/Call is available to review at the
>>> branch
>>>
>>>
>>> https://github.com/gridgain/apache-ignite/blob/ignite-2310/modules/core/src/main/java/org/apache/ignite/IgniteCompute.java#L123
>>>
>>> 07.07.2016 14:13, Dmitriy Setrakyan пишет:
>>>
>>> Taras, it is very difficult to review API changes this way. Can you
>>> please
>>>
>>>> provide additional APIs in the ticket?
>>>>
>>>> Also, we should add documentation about reserving partitions as well. To
>>>> my
>>>> knowledge, this feature ensures that a partition will not be migrated
>>>> while
>>>> affinityRun/Call is executed, right?
>>>>
>>>> On Thu, Jul 7, 2016 at 3:02 AM, Taras Ledkov <[hidden email]>
>>>> wrote:
>>>>
>>>> Igniters,
>>>>
>>>>> Please take a look at the next proposal of changes at
>>>>> IgniteCompute.affinityRun / affinityCall:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> https://github.com/gridgain/apache-ignite/commit/c57f009c44e07240fc8c8e6feed3271c63f31664#diff-b276b8e6e14915f9e5f2f5daeeddec8a
>>>>>
>>>>> So, two methods is added affinityRun and affinityCall. There is
>>>>> additional
>>>>> parameter Collection of extra caches names.
>>>>> An affinity job without the extra caches reserves only one partition
>>>>> (that
>>>>> contains affinity key) of the affinity cache.
>>>>> An affinity job with the extra caches parameter reserves the partitions
>>>>> (similar to affinity partition) of all extra caches.
>>>>>
>>>>>
>>>>> 06.07.2016 15:18, Semyon Boikov wrote:
>>>>>
>>>>> I think we should detect such situation and throw exception. As I
>>>>>
>>>>>> remember
>>>>>> for cross cache qieries we throw exception if caches have different
>>>>>> partitions distribution.
>>>>>>
>>>>>> On Wed, Jul 6, 2016 at 3:14 PM, Yakov Zhdanov <[hidden email]>
>>>>>> wrote:
>>>>>>
>>>>>> Guys, this does not work in general case. If you provide more than one
>>>>>>
>>>>>> partition you can end up with a situation when they reside on more
>>>>>>> than
>>>>>>> one
>>>>>>> node.
>>>>>>>
>>>>>>> --Yakov
>>>>>>>
>>>>>>> 2016-07-06 13:50 GMT+03:00 Vladimir Ozerov <[hidden email]>:
>>>>>>>
>>>>>>> If we add "partsToLock" to job execute request, then why we allow it
>>>>>>> only
>>>>>>>
>>>>>>> for "affinity" methods? We can resort to "with" semantics instead:
>>>>>>>>
>>>>>>>> IgniteCompute.*withPartitionsToLock*(...).affinityRun();
>>>>>>>>
>>>>>>>> On Wed, Jul 6, 2016 at 12:23 PM, Taras Ledkov <[hidden email]
>>>>>>>> >
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Igniters,
>>>>>>>>
>>>>>>>> Lets discuss the changes of public API at the IgniteCompute.
>>>>>>>>> The new methods affinityRun & affinityCall is added by working on
>>>>>>>>> IGNITE-2310.
>>>>>>>>>
>>>>>>>>> https://issues.apache.org/jira/browse/IGNITE-2310
>>>>>>>>>
>>>>>>>>> Please take a look at the signature of the new methods:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>> https://github.com/gridgain/apache-ignite/commit/991fb60f563ee1630152ca0159d04b4969f883bf#diff-b276b8e6e14915f9e5f2f5daeeddec8a
>>>>>>>
>>>>>>> void affinityRun(@Nullable String cacheName, Object affKey,
>>>>>>>
>>>>>>>> IgniteRunnable
>>>>>>>>
>>>>>>>> job, Map<String, int[]> partsToLock)
>>>>>>>>
>>>>>>>>> The parameter Map<String, int[]> partsToLock is added.
>>>>>>>>> Map contains the pairs of the cache name and array of partitions
>>>>>>>>> that
>>>>>>>>>
>>>>>>>>> must
>>>>>>>>>
>>>>>>>> be reserved on the target node before job execution.
>>>>>>>>
>>>>>>>>> Dmitry, colleagues, please comment or approve.
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Taras Ledkov
>>>>>>>>> Mail-To: [hidden email]
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>>
>>>>>>>> Taras Ledkov
>>>>> Mail-To: [hidden email]
>>>>>
>>>>>
>>>>>
>>>>> --
>>> Taras Ledkov
>>> Mail-To: [hidden email]
>>>
>>>
>>>
> --
> Taras Ledkov
> Mail-To: [hidden email]
>
>
Reply | Threaded
Open this post in threaded view
|

Re: ignite-2310

Taras Ledkov
Thanks,

I updated the ticket because proposed API is ambiguous.
e.g.: affinityRun(null, 0, job);

The fist parameter is a collection or a cache name?
My changes are at the ticket.


11.07.2016 12:59, Yakov Zhdanov пишет:

> I replied in the ticket.
>
> --Yakov
>
> 2016-07-11 12:43 GMT+03:00 Taras Ledkov <[hidden email]>:
>
>> Hi,
>>
>> Dmitry, thanks for your comments.
>> I've updated the ticket with the reasons of my version of the API changes.
>> I'm OK with the both version of the API.
>>
>> Igniters, please any comments.
>>
>>
>> 09.07.2016 4:22, Dmitriy Setrakyan пишет:
>>
>> Thanks Taras, I have added my comments in the ticket.
>>> On Thu, Jul 7, 2016 at 5:44 AM, Taras Ledkov <[hidden email]>
>>> wrote:
>>>
>>> Igniters,
>>>> The issue https://issues.apache.org/jira/browse/IGNITE-2310 is updated
>>>> with comment
>>>> about the changes at the IgniteCompute. Please comment the ticket.
>>>>
>>>> The changed javadoc of the affinityRun/Call is available to review at the
>>>> branch
>>>>
>>>>
>>>> https://github.com/gridgain/apache-ignite/blob/ignite-2310/modules/core/src/main/java/org/apache/ignite/IgniteCompute.java#L123
>>>>
>>>> 07.07.2016 14:13, Dmitriy Setrakyan пишет:
>>>>
>>>> Taras, it is very difficult to review API changes this way. Can you
>>>> please
>>>>
>>>>> provide additional APIs in the ticket?
>>>>>
>>>>> Also, we should add documentation about reserving partitions as well. To
>>>>> my
>>>>> knowledge, this feature ensures that a partition will not be migrated
>>>>> while
>>>>> affinityRun/Call is executed, right?
>>>>>
>>>>> On Thu, Jul 7, 2016 at 3:02 AM, Taras Ledkov <[hidden email]>
>>>>> wrote:
>>>>>
>>>>> Igniters,
>>>>>
>>>>>> Please take a look at the next proposal of changes at
>>>>>> IgniteCompute.affinityRun / affinityCall:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> https://github.com/gridgain/apache-ignite/commit/c57f009c44e07240fc8c8e6feed3271c63f31664#diff-b276b8e6e14915f9e5f2f5daeeddec8a
>>>>>>
>>>>>> So, two methods is added affinityRun and affinityCall. There is
>>>>>> additional
>>>>>> parameter Collection of extra caches names.
>>>>>> An affinity job without the extra caches reserves only one partition
>>>>>> (that
>>>>>> contains affinity key) of the affinity cache.
>>>>>> An affinity job with the extra caches parameter reserves the partitions
>>>>>> (similar to affinity partition) of all extra caches.
>>>>>>
>>>>>>
>>>>>> 06.07.2016 15:18, Semyon Boikov wrote:
>>>>>>
>>>>>> I think we should detect such situation and throw exception. As I
>>>>>>
>>>>>>> remember
>>>>>>> for cross cache qieries we throw exception if caches have different
>>>>>>> partitions distribution.
>>>>>>>
>>>>>>> On Wed, Jul 6, 2016 at 3:14 PM, Yakov Zhdanov <[hidden email]>
>>>>>>> wrote:
>>>>>>>
>>>>>>> Guys, this does not work in general case. If you provide more than one
>>>>>>>
>>>>>>> partition you can end up with a situation when they reside on more
>>>>>>>> than
>>>>>>>> one
>>>>>>>> node.
>>>>>>>>
>>>>>>>> --Yakov
>>>>>>>>
>>>>>>>> 2016-07-06 13:50 GMT+03:00 Vladimir Ozerov <[hidden email]>:
>>>>>>>>
>>>>>>>> If we add "partsToLock" to job execute request, then why we allow it
>>>>>>>> only
>>>>>>>>
>>>>>>>> for "affinity" methods? We can resort to "with" semantics instead:
>>>>>>>>> IgniteCompute.*withPartitionsToLock*(...).affinityRun();
>>>>>>>>>
>>>>>>>>> On Wed, Jul 6, 2016 at 12:23 PM, Taras Ledkov <[hidden email]
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>> Igniters,
>>>>>>>>>
>>>>>>>>> Lets discuss the changes of public API at the IgniteCompute.
>>>>>>>>>> The new methods affinityRun & affinityCall is added by working on
>>>>>>>>>> IGNITE-2310.
>>>>>>>>>>
>>>>>>>>>> https://issues.apache.org/jira/browse/IGNITE-2310
>>>>>>>>>>
>>>>>>>>>> Please take a look at the signature of the new methods:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>> https://github.com/gridgain/apache-ignite/commit/991fb60f563ee1630152ca0159d04b4969f883bf#diff-b276b8e6e14915f9e5f2f5daeeddec8a
>>>>>>>>
>>>>>>>> void affinityRun(@Nullable String cacheName, Object affKey,
>>>>>>>>
>>>>>>>>> IgniteRunnable
>>>>>>>>>
>>>>>>>>> job, Map<String, int[]> partsToLock)
>>>>>>>>>
>>>>>>>>>> The parameter Map<String, int[]> partsToLock is added.
>>>>>>>>>> Map contains the pairs of the cache name and array of partitions
>>>>>>>>>> that
>>>>>>>>>>
>>>>>>>>>> must
>>>>>>>>>>
>>>>>>>>> be reserved on the target node before job execution.
>>>>>>>>>
>>>>>>>>>> Dmitry, colleagues, please comment or approve.
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Taras Ledkov
>>>>>>>>>> Mail-To: [hidden email]
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>>
>>>>>>>>> Taras Ledkov
>>>>>> Mail-To: [hidden email]
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>> Taras Ledkov
>>>> Mail-To: [hidden email]
>>>>
>>>>
>>>>
>> --
>> Taras Ledkov
>> Mail-To: [hidden email]
>>
>>

--
Taras Ledkov
Mail-To: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: ignite-2310

Taras Ledkov
In reply to this post by yzhdanov
Guys,

Please review the last version of the public API
https://issues.apache.org/jira/browse/IGNITE-2310?focusedCommentId=15407375&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15407375

Ambiguity will be fixed on the client side. Tests has been fixed.

On 11.07.2016 12:59, Yakov Zhdanov wrote:

> I replied in the ticket.
>
> --Yakov
>
> 2016-07-11 12:43 GMT+03:00 Taras Ledkov <[hidden email]>:
>
>> Hi,
>>
>> Dmitry, thanks for your comments.
>> I've updated the ticket with the reasons of my version of the API changes.
>> I'm OK with the both version of the API.
>>
>> Igniters, please any comments.
>>
>>
>> 09.07.2016 4:22, Dmitriy Setrakyan пишет:
>>
>> Thanks Taras, I have added my comments in the ticket.
>>> On Thu, Jul 7, 2016 at 5:44 AM, Taras Ledkov <[hidden email]>
>>> wrote:
>>>
>>> Igniters,
>>>> The issue https://issues.apache.org/jira/browse/IGNITE-2310 is updated
>>>> with comment
>>>> about the changes at the IgniteCompute. Please comment the ticket.
>>>>
>>>> The changed javadoc of the affinityRun/Call is available to review at the
>>>> branch
>>>>
>>>>
>>>> https://github.com/gridgain/apache-ignite/blob/ignite-2310/modules/core/src/main/java/org/apache/ignite/IgniteCompute.java#L123
>>>>
>>>> 07.07.2016 14:13, Dmitriy Setrakyan пишет:
>>>>
>>>> Taras, it is very difficult to review API changes this way. Can you
>>>> please
>>>>
>>>>> provide additional APIs in the ticket?
>>>>>
>>>>> Also, we should add documentation about reserving partitions as well. To
>>>>> my
>>>>> knowledge, this feature ensures that a partition will not be migrated
>>>>> while
>>>>> affinityRun/Call is executed, right?
>>>>>
>>>>> On Thu, Jul 7, 2016 at 3:02 AM, Taras Ledkov <[hidden email]>
>>>>> wrote:
>>>>>
>>>>> Igniters,
>>>>>
>>>>>> Please take a look at the next proposal of changes at
>>>>>> IgniteCompute.affinityRun / affinityCall:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> https://github.com/gridgain/apache-ignite/commit/c57f009c44e07240fc8c8e6feed3271c63f31664#diff-b276b8e6e14915f9e5f2f5daeeddec8a
>>>>>>
>>>>>> So, two methods is added affinityRun and affinityCall. There is
>>>>>> additional
>>>>>> parameter Collection of extra caches names.
>>>>>> An affinity job without the extra caches reserves only one partition
>>>>>> (that
>>>>>> contains affinity key) of the affinity cache.
>>>>>> An affinity job with the extra caches parameter reserves the partitions
>>>>>> (similar to affinity partition) of all extra caches.
>>>>>>
>>>>>>
>>>>>> 06.07.2016 15:18, Semyon Boikov wrote:
>>>>>>
>>>>>> I think we should detect such situation and throw exception. As I
>>>>>>
>>>>>>> remember
>>>>>>> for cross cache qieries we throw exception if caches have different
>>>>>>> partitions distribution.
>>>>>>>
>>>>>>> On Wed, Jul 6, 2016 at 3:14 PM, Yakov Zhdanov <[hidden email]>
>>>>>>> wrote:
>>>>>>>
>>>>>>> Guys, this does not work in general case. If you provide more than one
>>>>>>>
>>>>>>> partition you can end up with a situation when they reside on more
>>>>>>>> than
>>>>>>>> one
>>>>>>>> node.
>>>>>>>>
>>>>>>>> --Yakov
>>>>>>>>
>>>>>>>> 2016-07-06 13:50 GMT+03:00 Vladimir Ozerov <[hidden email]>:
>>>>>>>>
>>>>>>>> If we add "partsToLock" to job execute request, then why we allow it
>>>>>>>> only
>>>>>>>>
>>>>>>>> for "affinity" methods? We can resort to "with" semantics instead:
>>>>>>>>> IgniteCompute.*withPartitionsToLock*(...).affinityRun();
>>>>>>>>>
>>>>>>>>> On Wed, Jul 6, 2016 at 12:23 PM, Taras Ledkov <[hidden email]
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>> Igniters,
>>>>>>>>>
>>>>>>>>> Lets discuss the changes of public API at the IgniteCompute.
>>>>>>>>>> The new methods affinityRun & affinityCall is added by working on
>>>>>>>>>> IGNITE-2310.
>>>>>>>>>>
>>>>>>>>>> https://issues.apache.org/jira/browse/IGNITE-2310
>>>>>>>>>>
>>>>>>>>>> Please take a look at the signature of the new methods:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>> https://github.com/gridgain/apache-ignite/commit/991fb60f563ee1630152ca0159d04b4969f883bf#diff-b276b8e6e14915f9e5f2f5daeeddec8a
>>>>>>>>
>>>>>>>> void affinityRun(@Nullable String cacheName, Object affKey,
>>>>>>>>
>>>>>>>>> IgniteRunnable
>>>>>>>>>
>>>>>>>>> job, Map<String, int[]> partsToLock)
>>>>>>>>>
>>>>>>>>>> The parameter Map<String, int[]> partsToLock is added.
>>>>>>>>>> Map contains the pairs of the cache name and array of partitions
>>>>>>>>>> that
>>>>>>>>>>
>>>>>>>>>> must
>>>>>>>>>>
>>>>>>>>> be reserved on the target node before job execution.
>>>>>>>>>
>>>>>>>>>> Dmitry, colleagues, please comment or approve.
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Taras Ledkov
>>>>>>>>>> Mail-To: [hidden email]
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>>
>>>>>>>>> Taras Ledkov
>>>>>> Mail-To: [hidden email]
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>> Taras Ledkov
>>>> Mail-To: [hidden email]
>>>>
>>>>
>>>>
>> --
>> Taras Ledkov
>> Mail-To: [hidden email]
>>
>>

--
Taras Ledkov
Mail-To: [hidden email]