C#/.NET: Possible to assign different nodes different roles?

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

C#/.NET: Possible to assign different nodes different roles?

Hello,

I was assigned a POC where a cluster should not have a single point of failure -- more specifically, each node should be assigned a different role.

This means that loading the cache, querying, storage, etc. would be seen as their own individual roles and therefore kept separate, hosting on different ports.

For example, a node would be assigned the role of querying the cache; ideally, a port would be set up so that a client would connect to that port.

I was just wondering if (1) this was possible, and (2) if possible, how would I go about it?

Right now, I have this XML file where I start a cluster from a remote machine; I have a one C# project that connects to the cluster, creates a cache, and loads entries from an underlying RDBMS. Additionally, I have another C# project that connects a thin client to the cluster and queries the cache once loaded.

If I were to implement nodes operating separately with their own roles, would I need to have different XML files with the same [remoteHost] but different ports under the addresses property for each XML file? (i.e. XML file #1 has [remoteHost], [remoteHost]:10800; XML file #2 has [remoteHost], [remoteHost]:47500..47509).



Sent from the Apache Ignite Users mailing list archive at Nabble.com.
akorensh akorensh
Reply | Threaded
Open this post in threaded view
|

Re: C#/.NET: Possible to assign different nodes different roles?

Hi,
  You could use node filters:
https://ignite.apache.org/docs/latest/services/services#node-filter
  example of node filter:
https://github.com/apache/ignite/blob/master/examples/src/main/java/org/apache/ignite/examples/computegrid/ComputeFibonacciContinuationExample.java

  In general, it is not recommended to segregate nodes based on individual
responsibility, as it negates the main advantage of automatic scaling,
failover and backup.

see here:
https://ignite.apache.org/docs/latest/distributed-computing/distributed-computing

Thanks, Alex



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
Raymond Wilson Raymond Wilson
Reply | Threaded
Open this post in threaded view
|

Re: C#/.NET: Possible to assign different nodes different roles?

It is possible to do this via node filters or attributes.

We use differentiated fleets of client nodes that interact with server nodes to pull data processed at the server node level and then further process it at a cluster level. We assign a 'ROLE' attribute to each node and then filter those nodes from the Ignite cluster to form the compute projection to Apply() or Broadcast() a request to.

We do this in an auto scaled Kubernetes deployment on AWS.

Cheers,
Raymond.


On Fri, Dec 11, 2020 at 9:37 AM akorensh <[hidden email]> wrote:
Hi,
  You could use node filters:
https://ignite.apache.org/docs/latest/services/services#node-filter
  example of node filter:
https://github.com/apache/ignite/blob/master/examples/src/main/java/org/apache/ignite/examples/computegrid/ComputeFibonacciContinuationExample.java

  In general, it is not recommended to segregate nodes based on individual
responsibility, as it negates the main advantage of automatic scaling,
failover and backup.

see here:
https://ignite.apache.org/docs/latest/distributed-computing/distributed-computing

Thanks, Alex



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/


--

Raymond Wilson
Solution Architect, Civil Construction Software Systems (CCSS)
11 Birmingham Drive | Christchurch, New Zealand
<a href="tel:+64-21-2013317" style="background-color:transparent;color:rgb(54,53,69)" target="_blank">+64-21-2013317 Mobile
[hidden email]