I run an Aerospike cluster v3.4 with two nodes. The cluster contains only 19 records (this is just a test instance ). Using the Java Client API, I wrote a small application that queries all these data periodically:
Statement statement = new Statement();
statement.setNamespace("testNs");
statement.setSetName("testSet");
RecordSet rs = client.query(null, statement);
while (rs.next()) {} ...
This work fine usually, but if I stop one of the working nodes while running the query periodically, I will get an exception:
Exception in thread "main" com.aerospike.client.AerospikeException$Timeout: Client timeout: timeout=30000 iterations=26 failedNodes=0 failedConns=25
at com.aerospike.client.command.SyncCommand.execute(SyncCommand.java:131)
at com.aerospike.client.query.QueryExecutor$QueryThread.run(QueryExecutor.java:134)
I tried to prevent this exception, and set the policy settings to a higher timeout, more retries and so on but I could not adjust those settings in a way to prevent this Exception and just receive the query results (maybe much slower, but that is stilll ok).
Is it possible to set the policy so that the queries survive a stopped or failed node?
Configuration has mesh topology set up and only in-memory storage.