You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geode.apache.org by Anilkumar Gingade <ag...@pivotal.io> on 2020/04/17 22:03:33 UTC
Checking for a member is still part of distributed system
Is there a better way to know if a member has left the distributed system,
than following:
I am checking using:
"partitionedRegion.getDistributionManager().isCurrentMember(requester));"
This returns true, even though the AdvisorListener on
ParitionedRegion already processed memberDeparted() event.
I want to know if a member has left after invoking the membershipListener.
-Anil.
Re: Checking for a member is still part of distributed system
Posted by Anilkumar Gingade <ag...@pivotal.io>.
Thanks Bruce.
Will take a look at "WaitForViewInstallation".
-Anil.
On Fri, Apr 17, 2020 at 3:44 PM Anilkumar Gingade <ag...@pivotal.io>
wrote:
> Thanks Kirk.
> This is for PR clear; I ended up registering/adding a new membership
> listener on DistributionManager (DM).
>
> I was trying to take advantage of MembershipListener on PR region-advisor.
> It turns out that this gets called even before the view is updated on DM.
>
> -Anil
>
> On Fri, Apr 17, 2020 at 3:36 PM Kirk Lund <kl...@apache.org> wrote:
>
>> Any requirements for this to be a User API vs internal API?
>>
>> For internal APIs, you can register a MembershipListener on
>> DistributionManager -- at least one flavor of which returns a
>> Set<InternalDistributedMember> of current members which you could check
>> before relying on callbacks.
>>
>> On Fri, Apr 17, 2020 at 3:03 PM Anilkumar Gingade <ag...@pivotal.io>
>> wrote:
>>
>> > Is there a better way to know if a member has left the distributed
>> system,
>> > than following:
>> > I am checking using:
>> >
>> "partitionedRegion.getDistributionManager().isCurrentMember(requester));"
>> >
>> > This returns true, even though the AdvisorListener on
>> > ParitionedRegion already processed memberDeparted() event.
>> >
>> > I want to know if a member has left after invoking the
>> membershipListener.
>> >
>> > -Anil.
>> >
>>
>
Re: Checking for a member is still part of distributed system
Posted by Anilkumar Gingade <ag...@pivotal.io>.
Thanks Kirk.
This is for PR clear; I ended up registering/adding a new membership
listener on DistributionManager (DM).
I was trying to take advantage of MembershipListener on PR region-advisor.
It turns out that this gets called even before the view is updated on DM.
-Anil
On Fri, Apr 17, 2020 at 3:36 PM Kirk Lund <kl...@apache.org> wrote:
> Any requirements for this to be a User API vs internal API?
>
> For internal APIs, you can register a MembershipListener on
> DistributionManager -- at least one flavor of which returns a
> Set<InternalDistributedMember> of current members which you could check
> before relying on callbacks.
>
> On Fri, Apr 17, 2020 at 3:03 PM Anilkumar Gingade <ag...@pivotal.io>
> wrote:
>
> > Is there a better way to know if a member has left the distributed
> system,
> > than following:
> > I am checking using:
> > "partitionedRegion.getDistributionManager().isCurrentMember(requester));"
> >
> > This returns true, even though the AdvisorListener on
> > ParitionedRegion already processed memberDeparted() event.
> >
> > I want to know if a member has left after invoking the
> membershipListener.
> >
> > -Anil.
> >
>
Re: Checking for a member is still part of distributed system
Posted by Kirk Lund <kl...@apache.org>.
Any requirements for this to be a User API vs internal API?
For internal APIs, you can register a MembershipListener on
DistributionManager -- at least one flavor of which returns a
Set<InternalDistributedMember> of current members which you could check
before relying on callbacks.
On Fri, Apr 17, 2020 at 3:03 PM Anilkumar Gingade <ag...@pivotal.io>
wrote:
> Is there a better way to know if a member has left the distributed system,
> than following:
> I am checking using:
> "partitionedRegion.getDistributionManager().isCurrentMember(requester));"
>
> This returns true, even though the AdvisorListener on
> ParitionedRegion already processed memberDeparted() event.
>
> I want to know if a member has left after invoking the membershipListener.
>
> -Anil.
>
Re: Checking for a member is still part of distributed system
Posted by Bruce Schuchardt <bs...@pivotal.io>.
AdvisorListener.memberDeparted() is invoked from paths other than membership view changes, such as when a Region is destroyed. A member may still be in the cluster (membership view) after AdvisorListener.memberDeparted() has been invoked.
If isCurrentMember() returns true then the server is still a member. It may be in the process of being removed but until a new view is installed it's a valid member.
Across the cluster there can also be a lag between one server knowing about a departure and another server knowing about it. If you send a message during that interval that depends on the departure being known everywhere you can use the WaitForViewInstallation message.
On 4/17/20, 3:03 PM, "Anilkumar Gingade" <ag...@pivotal.io> wrote:
Is there a better way to know if a member has left the distributed system,
than following:
I am checking using:
"partitionedRegion.getDistributionManager().isCurrentMember(requester));"
This returns true, even though the AdvisorListener on
ParitionedRegion already processed memberDeparted() event.
I want to know if a member has left after invoking the membershipListener.
-Anil.