Hi All,
I am looking to on easy way out on architecture problems we facing in HA + DR mode with active -active cluster. I have asked a question on bin conversion on this thread on maintaining counters Bin convergence and Support of multiple counters in XDR.
Now we are trying to solve one more XDR data update problem. Since we trying to be pure HA to solve a high scale problem.
Let us explain a problem: We receive http requests and one HTTP request can further be split into multiple parts. And individual part progress is tracked individually. When all part is complete, we have to notify customer on success of given request.
Problem statement here is :
-
In aeropike : record key is request id and each part is tracked in separate bin which has Map data structure and MAP.KEY is used as part id.
-
If we try to be pure HA here, then individual part of a request can be processed on different cluster which points to one of the cluster of Aerospike XDR.
-
So what we require here is, Key level convergence in bin → MAP collection. So that final image should be consistent.
-
But as per bin level convergence, this may result in race condition . For example: DC1 updates on request id 1 for part A: <A, DataA> in Aeropsike cluster DC1 and DC1 updates on request id 1 for part B: <B, DataB> in Aeropsike cluster DC2. Even though both updated different key in map but final image of bin will have only one of the key A or B.
Is there an easy way out for this? Or we have to remove MAP and use Bin names as key of parts.