EC2 でのテスト セットアップでは、次のことを行いました。
- 1 つの Aerospike サーバーが ZoneA で実行されています (Aerospike-A など)。
- 同じクラスターの別のノードが ZoneB (Aerospike-B など) で実行されています。
- 上記のクラスターを使用するアプリケーションは、ZoneA で実行されています。
次のように AerospikeClinet を初期化しています。
hosts= new Host[]; hosts[0] = new Host(PUBLIC_IP_OF_AEROSPIKE-A, 3000); AerospikeClient client = new AerospikeClient(policy, hosts);
上記のセットアップでは、以下の動作が得られます:
- Aerospike-A と Aerospike-B の両方で書き込みが行われています。
読み取りは Aerospike-A でのみ行われます (データは約 100 万レコードで、900 MB のメモリと 1.3 GB のディスクを占有します)
Question: Why are reads not going to both the nodes?
- Aerospike-B を降ろせば、すべてが完璧に機能します。停止はありません。
Aerospike-A を停止すると、すべての書き込みと読み取りが失敗し始めます。他のノードがトラフィックを受け取るまで 5 分間待ちましたが、うまくいきませんでした。
Questions: a. In above scenario, I would expect Aerospike-B to take all the traffic. But this is not happening. Is there anything I am doing wrong? b. Should I be giving both the hosts while initializing the client? c. I had executed "clinfo -v 'config-set:context=service;paxos-recovery-policy=auto-dun-all'" on both the nodes. Is that creating a problem?