Hello devs,

We are working towards adopting Apache Ignite in our cloud-native solution,
but I have some basic questions whose answers I have not found in the docs.
I was hoping you could help me.

We want to deploy Apache Ignite to a multi-AZ Kubernetes cluster. We are
evaluating whether we go with Ignite 2.x or Ignite 3.x (our preference).

We plan to deploy Ignite in embedded mode to multiple nodes that span cross
AZs, ensuring resilience to AZ failures. However, for that to work, it is
crucial that all data have backups that are stored in distinct AZs. I have
been searching ways to do that in Ignite 3, but haven't found any yet.

A practical example: Imagine we have 3 AZs, and each AZ has 3 nodes (total
of 9 nodes). We wanted to configure the system ensuring that all data have
2 backups, and that these 2 backups are always stored in the 2 other AZs
(for example, if some data was stored in a partition that belongs to AZ 0,
we want to ensure that the two backups are stored in partitions that belong
to AZ 1 and AZ 2).

Without explicitly configuring that, the two backups could also be mapped
to AZ 0, hence, if AZ 0 goes down, the data would be gone.

One way of solving the problem would be replicating the dataset to all
nodes, but we want to ideally avoid that, as we have a lot of data.

To achieve our goals, I believe we would need some kind of configurable AZ
affinity, to hint Ignite which nodes are in each AZ, and how backups should
be distributed. Is this possible at all in Ignite 3? Does somebody have any
suggestions on how to achieve this? And, in case this is not possible in
Ignite 3, is there a feature in the roadmap that could provide this in the
future?

For Ignite 2, we found ClusterNodeAttributeAffinityBackupFilter
<https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/cache/affinity/rendezvous/ClusterNodeAttributeAffinityBackupFilter.html>,
which looks like could do the job (but I haven't tested it yet, as we are
initially doing PoCs with Ignite 3). If possible, could you confirm that
this could be used to achieve our goals in case we go with Ignite 2?

Thank you! I appreciate any help!
Felipe

Reply via email to