I have read other similar topics prior to this post, I’m still trying to make myself clearer on how to provision memory in data cluster considering Replica & especially Quorum. Below is my approach.
Should the calculation for Aerospike be like this? Let me know if this is the way or something I have missed(completely).
Each node the data+index that application uses will be 18GB MAX ( This will be our LWM for the Namespace in AeroSpike).
18GB*5nodes = 90/2replica = 45GB(Actual Data+Index) in cluster without replication.
Now for atleast 1Replica . That will be 45GB+45GB = 90 GB in Total including Primary+Secondary (Data&Index).
I will allocate LWM as 18GB Per node and HWM will be around 28GB for each node. So NS per node I will set it to 30GB. Leaving 2GB for OS or later for NS.
NAMESPACE_NAME=30GB for each node.
Incase of any 2 nodes failure/seperated we can expect the data to get evicted until aerospike hits LWM.
- 3Node * 18GB will be LWM. (App expected data to be available per node)
So if we reframe the requirement -> Lets say you need a cluster that will use 45GB Primary only( for data + index). 18GB Per Node with one replica that can support in the event of 2 Node failure. Above configuration should help. I see few clusters in aerospike are provisioned without Quorum into consideration. Is this approach is apt ?