Hi,


I have been working on a POC using the Ignite v1.9 C# client and have been
simulating clusters of Ignite nodes by running collections of Ignite
processes on the same physical machine.



As a part of this I am running 4 Ignite nodes (where each node is a windows
forms application for simplicity so you can see when it is running) that
each creates four caches: two are replicated and two and partitioned. The
partitioned caches each use an affinity map that uses a command line
argument containing the index to map the node into the affinity map (the
argument is placed into a user attribute registered with the call to start
the Ignite node). The affinity map function maps all available nodes into
the returned map meaning that partial affinity maps are returned until all
4 ignite nodes have initialised.



I have a batch file that runs all four nodes simultaneously. Typically,
only one to three of the windows apps are observed to appear, and often one
of the processes is absent from the task monitor in Windows. If one of the
running apps is closed the missing service becomes available. From my
logging I often see only one Ignite process reporting calls into
IAffinityFunction::AssignPartitions
that is typically called only twice, when I expected it to be called four
times as each new node comes on line.



On rare occasions all four nodes will correctly initialise, but this is an
exception.



I don’t have a small reproducer case yet but I wanted to first ask if this
deadlock or race condition behaviour is known in Ignite with respect to
partitioned caches with affinity maps.



Thanks,

Raymond.

Reply via email to