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] |
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] > > |
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] > > > > > |
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] > > > > > > > > > |
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] |
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] |
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] > > |
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] |
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] > > |
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] |
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] > > |
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] |
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] |
Free forum by Nabble | Edit this page |