Comments (4)
Are you using enterprise server with user/password authentication enabled?
If so, the authentication portion is indeed using the connection timeout (default 1 second) and not the transaction timeout. The temporary workaround is to set the connection timeout at startup:
as_config cfg; as_config_init(&cfg); cfg.conn_timeout_ms = 900000; aerospike_init(client, &cfg); aerospike_connect(client, &err);
from aerospike-client-c.
We are using community edition for now.
Just for my test case I have also set the following, but nothing seems to affect the real timeout.
as_config config;
as_config_init(&config);
as_config_add_host(&config, "<my_host_1>", 3000);
as_config_add_host(&config, "<my_host_2>", 3000);
config.conn_timeout_ms = 3000000;
config.policies.timeout = 200000;
config.policies.operate.retry = AS_POLICY_RETRY_ONCE;
config.policies.operate.timeout = 600000;
config.policies.info.timeout = 400000;
config.policies.read.timeout = 700000;
config.policies.remove.timeout = 800000;
It still fails with connection timeout after 1 sec.
from aerospike-client-c.
You have identified a bug, but it's not the one you think. AS_POLICY_RETRY_ONCE was specified, but the client retried twice after the initial failure. This will be fixed in the next release.
Timeouts can occur for the following reasons:
- Client can't connect by specified timeout.
- Client does not receive response by specified timeout.
- Server times out the transaction during it's own processing.
- Client can't obtain a valid node after N retries.
- Client can't obtain a valid connection after N retries. The retry count is usually the limiting factor, not the timeout value. The reasoning is that if you can't get a connection after N retries, you never will, so just timeout early.
Your application is timing out because of #5. The reason is that Aerospike server probably ran out of sockets. Socket limit is controlled by OS settings (Linux = ulimit -n). Aerospike Server service config also further limits socket count with "proto-fd-max ".
The retry policy is an enum, but it can be overloaded to be an integer. The following would retry up to 100 times.
policy.retry = 100;
We will also make retry an integer in the next release which will still be backwards compatible.
from aerospike-client-c.
Version 3.1.19 has been released.
from aerospike-client-c.
Related Issues (20)
- warning: 'MSG_NOSIGNAL' macro redefined (on macOS) HOT 1
- Deleting bins by setting values to null or empty string HOT 1
- Undefined symbols in static library HOT 2
- cmake support HOT 4
- Is this project still under maintenance HOT 1
- Unable to found benchmarks in aerospike-client-c HOT 2
- Logstash Pipeline Error
- Crash in as_node_ensure_login_shm when remote servers are restarted HOT 16
- Compile failed with "the clang compiler does not support '-march=nocona'" HOT 2
- crash inside as_cluster_tend on arm64 HOT 4
- Give a name to worker threads HOT 3
- apple silicon / arm support HOT 9
- Release tagged 4.6.24 refers to missing .gitmodules HOT 1
- On batch reads only AS_POLICY_REPLICA_SEQUENCE will actually find new nodes for requests, AS_POLICY_REPLICA_ANY will try the same node and fail again. HOT 6
- aerospike-client-c link error with extra compiler flags -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer HOT 1
- can not build without lua HOT 1
- Missing as_buffer.h in installed includes HOT 1
- scan callback failing with memory fault issue HOT 1
- Build fails for 6.4.1 with luajit HOT 1
- crash on exit in as_cluster_tender (after libuv event loop is stopped) HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aerospike-client-c.