We are currently evaluating Couchbase for a distributed cache use case and I am looking to get clarity on the following:
- Does the C++ client provide the ability to set timeout at Connection-level, Authentication-level and Request-level. The documentation here talks about Java, .net and PHP clients only.
- Will moxi (client side) work with a Couchbase bucket? The reason for going Moxi route is to reuse long-running connections (saving on TCP connection setup handshake time) and to multiplex multiple clients into shared connections (reducing the file descriptor usage on the servers). Note that in our environment, we expect very large number of client processes .
- If Moxi is not an option, can you describe how the C++ smart client deals with connections.
We are looking for ways to save on on connection setup handshake time but at the same time avoid starving/crashing the server/cluster by making very large number of file descriptors) because of our large number of client processes.
Note that since the smart clients use persistent connections, what best practices do you provide for large number of client process connecting to a cluster without sacrificing stability/performance(i.e.
On one extreme you can have child process that house the smart clients holding to the connections even though not all of them will be making get/put operations while on the other extreme you can connect/shutdown for every cache operation within the child processes(which obviously is a very bad option)