Hi,

Thanks for the reply.

I was looking down this road, however, everything is automated and the
cluster is activated by a script when all ServerNodes are in the baseline.

Is there a hook that can be called when the cluster is activated to do this
work?

Thanks.
Greg


On Fri, Aug 23, 2024 at 12:29 PM Jeremy McMillan <j...@gridgain.com> wrote:

> The example in the documentation explaining nodeFilter uses node
> attributes as a condition, but the logic might include dynamic node state
> like performance metrics to decide whether to run a service or not.
>
> It seems like the behavior you want/expect might be implemented better
> using clusterGroup
> https://ignite.apache.org/docs/2.15.0/services/services#clustergroup
>
> You would need to do something like (
> https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/cluster/ClusterGroup.html
> )
>
> // Cluster group over all nodes that have the user attribute "group" set to 
> the value "worker".
>  ClusterGroup workerNodes = cluster.forAttribute("group", "worker");
>
> .. and then start services with this
>
> https://ignite.apache.org/releases/2.15.0/javadoc/org/apache/ignite/IgniteSpringBean.html#services-org.apache.ignite.cluster.ClusterGroup-
>
> On Fri, Aug 23, 2024 at 8:35 AM Gregory Sylvain <greg.sylv...@ieee.org>
> wrote:
>
>> Hi Igniters,
>>
>> I'm running Ignite 2.15 cluster with native persistence enabled running
>> on RHEL 8 VMs.
>>
>> I am running a Service cluster of 5 ServerNodes and 32 Thick Clients.
>>
>> Each Service has a User Attribute that indicates which service to run.
>> Each ServerNode sets two User Attributes - indicating it should run two
>> services.
>>
>> When the Cluster starts up from nothing, it sets the BLT and starts all
>> services as expected.
>>
>> After the BLT is set, the cluster ports are opened (via firewalld) to
>> allow the clients to connect to the cluster and start utilizing the
>> services offered.
>>
>> If, after this point, a BLT cluster node restarts and drops out of the
>> cluster and then re-joins, the Node Filter's apply() method is invoked on
>> all ServerNodes *and *Thick Clients!
>>
>>
>>    - Q1: Why is a Node Filter running on a Thick Client and can I
>>    disable this?
>>
>>
>> So, if a Node Filter is invoked on a Thick Client and it gets passed a
>> ClusterNode representing a ServerNode that should run a specific service,
>> the filter should return *true*, according to the API.  However, I do
>> not want Clients to run services.
>>
>>
>>
>>    - Q2: Can I limit the Node Filter invocations to only BLT nodes (or
>>    at least only Server Nodes) ?
>>    - Q3: If Node Filters are intended to run on Thick Clients as well,
>>    can I just return false from the apply method and how does that affect the
>>    semantics of service balancing that I am trying to achieve?
>>
>>
>>
>>
>> Thanks in advance,
>> Greg
>>
>>
>> --
>>
>> *Greg Sylvain*
>>
>> Software Architect/Lead Developer on XOComm
>>
>> Booz | Allen | Hamilton
>>
>>
>>
>> sylvain_greg...@bah.com
>>
>> cell: 571.236.8951
>>
>> ofc: 703.633.3195
>>
>> Chantilly, VA
>>
>>
>>
>

Reply via email to