You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by Pavel Tupitsyn <pt...@apache.org> on 2022/09/15 07:21:11 UTC

[DISCUSSION] IEP-95 Client Partition Awareness (Ignite 3)

Igniters,

Please review the IEP for client partition awareness in Ignite 3 and let me
know what you think.

[1]
https://cwiki.apache.org/confluence/display/IGNITE/IEP-95+Client+Partition+Awareness
[2] https://github.com/apache/ignite-3/pull/1080

Re: [DISCUSSION] IEP-95 Client Partition Awareness (Ignite 3)

Posted by Pavel Tupitsyn <pt...@apache.org>.
Ready for review, any feedback is appreciated:
https://issues.apache.org/jira/browse/IGNITE-17725

On Tue, Sep 20, 2022 at 9:04 AM Pavel Tupitsyn <pt...@apache.org> wrote:

> Igniters, thanks for your input. I'll move on with the implementation.
>
> On Thu, Sep 15, 2022 at 6:46 PM Pavel Tupitsyn <pt...@apache.org>
> wrote:
>
>> Mirza,
>>
>> This is a good point.
>>
>> I assumed that assignment change is caused by a topology change, like in
>> Ignite 2.x, and this affects all tables, so one flag is enough.
>> In Ignite 3, though, assignment can change due to configuration update
>> (number of replicas, etc), and this affects only a single table.
>>
>> We could somehow include the list of affected table ids with the flag.
>> But I'm not sure we should do that. Configuration change seems to be a
>> rare scenario.
>>
>> On Thu, Sep 15, 2022 at 6:26 PM Mirza Aliev <al...@gmail.com> wrote:
>>
>>> Pavel, thank you for the IEP!
>>>
>>> I've read the IEP and checked PR briefly, and it is not clear to me how a
>>> client will determine which table's assignment it should update.
>>> I can assume that once a client receives the flag that indicates that
>>> assignments for some table have been changed,
>>> it will request assignments for all tables that are relevant to that
>>> client
>>> as long as we cannot say which table's assignments were changed.
>>> Am I right in my assumption? If yes, it seems to me kinda inefficient to
>>> check assignments for all tables. WDYT?
>>>
>>>
>>> чт, 15 сент. 2022 г. в 11:07, Pavel Tupitsyn <pt...@apache.org>:
>>>
>>> > Igor,
>>> >
>>> > > not clear how a server would know when assignment has changed
>>> >
>>> > On the server, TableManager [1] maintains the current assignment.
>>> > I've made some changes there (see the linked POC) to subscribe to those
>>> > updates.
>>> >
>>> > However, as I understand, this logic is not yet complete and will be
>>> > changed soon.
>>> > In any case, the server should maintain up-to-date assignment one way
>>> or
>>> > another, because server-side API needs to route requests as well.
>>> >
>>> > [1]
>>> >
>>> >
>>> https://github.com/apache/ignite-3/pull/1080/files#diff-8539b597e51096e7007250e746e696d4e16351d09c3756b4989a1c331f788ead
>>> >
>>> > On Thu, Sep 15, 2022 at 10:29 AM Igor Sapego <is...@apache.org>
>>> wrote:
>>> >
>>> > > Pavel,
>>> > >
>>> > > Great, this feature showed great results in Ignite 2, so It's a good
>>> idea
>>> > > to implement
>>> > > it in Ignite 3 as well.
>>> > >
>>> > > The IEP itself looks good to me, except it's not clear how a server
>>> would
>>> > > know when
>>> > > assignment has changed.
>>> > >
>>> > > Regardless of the Tracking Assignment Changes section, I like the
>>> first
>>> > > approach
>>> > > the best. Yeah, idle clients do not get updates, but why would idle
>>> > clients
>>> > > need
>>> > > assignment update anyway if they are idle?
>>> > >
>>> > > Best Regards,
>>> > > Igor
>>> > >
>>> > >
>>> > > On Thu, Sep 15, 2022 at 11:21 AM Pavel Tupitsyn <
>>> ptupitsyn@apache.org>
>>> > > wrote:
>>> > >
>>> > > > Igniters,
>>> > > >
>>> > > > Please review the IEP for client partition awareness in Ignite 3
>>> and
>>> > let
>>> > > me
>>> > > > know what you think.
>>> > > >
>>> > > > [1]
>>> > > >
>>> > > >
>>> > >
>>> >
>>> https://cwiki.apache.org/confluence/display/IGNITE/IEP-95+Client+Partition+Awareness
>>> > > > [2] https://github.com/apache/ignite-3/pull/1080
>>> > > >
>>> > >
>>> >
>>>
>>

Re: [DISCUSSION] IEP-95 Client Partition Awareness (Ignite 3)

Posted by Pavel Tupitsyn <pt...@apache.org>.
Igniters, thanks for your input. I'll move on with the implementation.

On Thu, Sep 15, 2022 at 6:46 PM Pavel Tupitsyn <pt...@apache.org> wrote:

> Mirza,
>
> This is a good point.
>
> I assumed that assignment change is caused by a topology change, like in
> Ignite 2.x, and this affects all tables, so one flag is enough.
> In Ignite 3, though, assignment can change due to configuration update
> (number of replicas, etc), and this affects only a single table.
>
> We could somehow include the list of affected table ids with the flag.
> But I'm not sure we should do that. Configuration change seems to be a
> rare scenario.
>
> On Thu, Sep 15, 2022 at 6:26 PM Mirza Aliev <al...@gmail.com> wrote:
>
>> Pavel, thank you for the IEP!
>>
>> I've read the IEP and checked PR briefly, and it is not clear to me how a
>> client will determine which table's assignment it should update.
>> I can assume that once a client receives the flag that indicates that
>> assignments for some table have been changed,
>> it will request assignments for all tables that are relevant to that
>> client
>> as long as we cannot say which table's assignments were changed.
>> Am I right in my assumption? If yes, it seems to me kinda inefficient to
>> check assignments for all tables. WDYT?
>>
>>
>> чт, 15 сент. 2022 г. в 11:07, Pavel Tupitsyn <pt...@apache.org>:
>>
>> > Igor,
>> >
>> > > not clear how a server would know when assignment has changed
>> >
>> > On the server, TableManager [1] maintains the current assignment.
>> > I've made some changes there (see the linked POC) to subscribe to those
>> > updates.
>> >
>> > However, as I understand, this logic is not yet complete and will be
>> > changed soon.
>> > In any case, the server should maintain up-to-date assignment one way or
>> > another, because server-side API needs to route requests as well.
>> >
>> > [1]
>> >
>> >
>> https://github.com/apache/ignite-3/pull/1080/files#diff-8539b597e51096e7007250e746e696d4e16351d09c3756b4989a1c331f788ead
>> >
>> > On Thu, Sep 15, 2022 at 10:29 AM Igor Sapego <is...@apache.org>
>> wrote:
>> >
>> > > Pavel,
>> > >
>> > > Great, this feature showed great results in Ignite 2, so It's a good
>> idea
>> > > to implement
>> > > it in Ignite 3 as well.
>> > >
>> > > The IEP itself looks good to me, except it's not clear how a server
>> would
>> > > know when
>> > > assignment has changed.
>> > >
>> > > Regardless of the Tracking Assignment Changes section, I like the
>> first
>> > > approach
>> > > the best. Yeah, idle clients do not get updates, but why would idle
>> > clients
>> > > need
>> > > assignment update anyway if they are idle?
>> > >
>> > > Best Regards,
>> > > Igor
>> > >
>> > >
>> > > On Thu, Sep 15, 2022 at 11:21 AM Pavel Tupitsyn <ptupitsyn@apache.org
>> >
>> > > wrote:
>> > >
>> > > > Igniters,
>> > > >
>> > > > Please review the IEP for client partition awareness in Ignite 3 and
>> > let
>> > > me
>> > > > know what you think.
>> > > >
>> > > > [1]
>> > > >
>> > > >
>> > >
>> >
>> https://cwiki.apache.org/confluence/display/IGNITE/IEP-95+Client+Partition+Awareness
>> > > > [2] https://github.com/apache/ignite-3/pull/1080
>> > > >
>> > >
>> >
>>
>

Re: [DISCUSSION] IEP-95 Client Partition Awareness (Ignite 3)

Posted by Pavel Tupitsyn <pt...@apache.org>.
Mirza,

This is a good point.

I assumed that assignment change is caused by a topology change, like in
Ignite 2.x, and this affects all tables, so one flag is enough.
In Ignite 3, though, assignment can change due to configuration update
(number of replicas, etc), and this affects only a single table.

We could somehow include the list of affected table ids with the flag.
But I'm not sure we should do that. Configuration change seems to be a rare
scenario.

On Thu, Sep 15, 2022 at 6:26 PM Mirza Aliev <al...@gmail.com> wrote:

> Pavel, thank you for the IEP!
>
> I've read the IEP and checked PR briefly, and it is not clear to me how a
> client will determine which table's assignment it should update.
> I can assume that once a client receives the flag that indicates that
> assignments for some table have been changed,
> it will request assignments for all tables that are relevant to that client
> as long as we cannot say which table's assignments were changed.
> Am I right in my assumption? If yes, it seems to me kinda inefficient to
> check assignments for all tables. WDYT?
>
>
> чт, 15 сент. 2022 г. в 11:07, Pavel Tupitsyn <pt...@apache.org>:
>
> > Igor,
> >
> > > not clear how a server would know when assignment has changed
> >
> > On the server, TableManager [1] maintains the current assignment.
> > I've made some changes there (see the linked POC) to subscribe to those
> > updates.
> >
> > However, as I understand, this logic is not yet complete and will be
> > changed soon.
> > In any case, the server should maintain up-to-date assignment one way or
> > another, because server-side API needs to route requests as well.
> >
> > [1]
> >
> >
> https://github.com/apache/ignite-3/pull/1080/files#diff-8539b597e51096e7007250e746e696d4e16351d09c3756b4989a1c331f788ead
> >
> > On Thu, Sep 15, 2022 at 10:29 AM Igor Sapego <is...@apache.org> wrote:
> >
> > > Pavel,
> > >
> > > Great, this feature showed great results in Ignite 2, so It's a good
> idea
> > > to implement
> > > it in Ignite 3 as well.
> > >
> > > The IEP itself looks good to me, except it's not clear how a server
> would
> > > know when
> > > assignment has changed.
> > >
> > > Regardless of the Tracking Assignment Changes section, I like the first
> > > approach
> > > the best. Yeah, idle clients do not get updates, but why would idle
> > clients
> > > need
> > > assignment update anyway if they are idle?
> > >
> > > Best Regards,
> > > Igor
> > >
> > >
> > > On Thu, Sep 15, 2022 at 11:21 AM Pavel Tupitsyn <pt...@apache.org>
> > > wrote:
> > >
> > > > Igniters,
> > > >
> > > > Please review the IEP for client partition awareness in Ignite 3 and
> > let
> > > me
> > > > know what you think.
> > > >
> > > > [1]
> > > >
> > > >
> > >
> >
> https://cwiki.apache.org/confluence/display/IGNITE/IEP-95+Client+Partition+Awareness
> > > > [2] https://github.com/apache/ignite-3/pull/1080
> > > >
> > >
> >
>

Re: [DISCUSSION] IEP-95 Client Partition Awareness (Ignite 3)

Posted by Mirza Aliev <al...@gmail.com>.
Pavel, thank you for the IEP!

I've read the IEP and checked PR briefly, and it is not clear to me how a
client will determine which table's assignment it should update.
I can assume that once a client receives the flag that indicates that
assignments for some table have been changed,
it will request assignments for all tables that are relevant to that client
as long as we cannot say which table's assignments were changed.
Am I right in my assumption? If yes, it seems to me kinda inefficient to
check assignments for all tables. WDYT?


чт, 15 сент. 2022 г. в 11:07, Pavel Tupitsyn <pt...@apache.org>:

> Igor,
>
> > not clear how a server would know when assignment has changed
>
> On the server, TableManager [1] maintains the current assignment.
> I've made some changes there (see the linked POC) to subscribe to those
> updates.
>
> However, as I understand, this logic is not yet complete and will be
> changed soon.
> In any case, the server should maintain up-to-date assignment one way or
> another, because server-side API needs to route requests as well.
>
> [1]
>
> https://github.com/apache/ignite-3/pull/1080/files#diff-8539b597e51096e7007250e746e696d4e16351d09c3756b4989a1c331f788ead
>
> On Thu, Sep 15, 2022 at 10:29 AM Igor Sapego <is...@apache.org> wrote:
>
> > Pavel,
> >
> > Great, this feature showed great results in Ignite 2, so It's a good idea
> > to implement
> > it in Ignite 3 as well.
> >
> > The IEP itself looks good to me, except it's not clear how a server would
> > know when
> > assignment has changed.
> >
> > Regardless of the Tracking Assignment Changes section, I like the first
> > approach
> > the best. Yeah, idle clients do not get updates, but why would idle
> clients
> > need
> > assignment update anyway if they are idle?
> >
> > Best Regards,
> > Igor
> >
> >
> > On Thu, Sep 15, 2022 at 11:21 AM Pavel Tupitsyn <pt...@apache.org>
> > wrote:
> >
> > > Igniters,
> > >
> > > Please review the IEP for client partition awareness in Ignite 3 and
> let
> > me
> > > know what you think.
> > >
> > > [1]
> > >
> > >
> >
> https://cwiki.apache.org/confluence/display/IGNITE/IEP-95+Client+Partition+Awareness
> > > [2] https://github.com/apache/ignite-3/pull/1080
> > >
> >
>

Re: [DISCUSSION] IEP-95 Client Partition Awareness (Ignite 3)

Posted by Pavel Tupitsyn <pt...@apache.org>.
Igor,

> not clear how a server would know when assignment has changed

On the server, TableManager [1] maintains the current assignment.
I've made some changes there (see the linked POC) to subscribe to those
updates.

However, as I understand, this logic is not yet complete and will be
changed soon.
In any case, the server should maintain up-to-date assignment one way or
another, because server-side API needs to route requests as well.

[1]
https://github.com/apache/ignite-3/pull/1080/files#diff-8539b597e51096e7007250e746e696d4e16351d09c3756b4989a1c331f788ead

On Thu, Sep 15, 2022 at 10:29 AM Igor Sapego <is...@apache.org> wrote:

> Pavel,
>
> Great, this feature showed great results in Ignite 2, so It's a good idea
> to implement
> it in Ignite 3 as well.
>
> The IEP itself looks good to me, except it's not clear how a server would
> know when
> assignment has changed.
>
> Regardless of the Tracking Assignment Changes section, I like the first
> approach
> the best. Yeah, idle clients do not get updates, but why would idle clients
> need
> assignment update anyway if they are idle?
>
> Best Regards,
> Igor
>
>
> On Thu, Sep 15, 2022 at 11:21 AM Pavel Tupitsyn <pt...@apache.org>
> wrote:
>
> > Igniters,
> >
> > Please review the IEP for client partition awareness in Ignite 3 and let
> me
> > know what you think.
> >
> > [1]
> >
> >
> https://cwiki.apache.org/confluence/display/IGNITE/IEP-95+Client+Partition+Awareness
> > [2] https://github.com/apache/ignite-3/pull/1080
> >
>

Re: [DISCUSSION] IEP-95 Client Partition Awareness (Ignite 3)

Posted by Igor Sapego <is...@apache.org>.
Pavel,

Great, this feature showed great results in Ignite 2, so It's a good idea
to implement
it in Ignite 3 as well.

The IEP itself looks good to me, except it's not clear how a server would
know when
assignment has changed.

Regardless of the Tracking Assignment Changes section, I like the first
approach
the best. Yeah, idle clients do not get updates, but why would idle clients
need
assignment update anyway if they are idle?

Best Regards,
Igor


On Thu, Sep 15, 2022 at 11:21 AM Pavel Tupitsyn <pt...@apache.org>
wrote:

> Igniters,
>
> Please review the IEP for client partition awareness in Ignite 3 and let me
> know what you think.
>
> [1]
>
> https://cwiki.apache.org/confluence/display/IGNITE/IEP-95+Client+Partition+Awareness
> [2] https://github.com/apache/ignite-3/pull/1080
>