is there a vbucket aware ruby client?
Dallas, at the moment there is not. We are in the process of planning out the various clients that we will begin work on and you can certainly cast your vote for Ruby! (http://forums.membase.org/thread/membase-client-library-survey). In general, you should be able to achieve all of the benefits and performance of Membase through a combination of any standard memcache client and a client-side Moxi process. Ruby (like PHP) is particularly well suited to using an external proxy that can maintain persistent connections to the backend servers as well as pool connections from many short-lived client processes which do not have shared memory between them.
Let me know if you need any help getting that setup in the interim.
Forum support is great for free but sometimes you need a guaranteed response time and dedicated resources for your questions or issues.Consider purchasing enterprise-level support from Couchbase: http://www.couchbase.com/products-and-services/overviewCall or email "sales -at- couchbase-dot- com" today!
after setting up client side moxi's we saw thousands of client connect errors from our rails app. the process was monitored by monit and nagios, and never showed unavailability (but we had to stop using the local moxi instances due the large number of errors). i tried raising the concurrency, the number of threads and also the number of downstream connections (none of these things helped in our case). most of the time when we saw the errors, they were grouped together (20-40 at a time). once we switched to using the membase nodes directly, all connect errors stopped (although then we started seeing timeouts due to slow responses from membase likely due the extra network hops incurred from membase nodes proxying requests to each other).
I'm curious, did you have Moxi setup to go through a load balancer or was it connected directly to the Membase servers?
it was setup to connect directly to the membase nodes with the following options
-d -P /opt/moxi/sessions.pid -t 8 -Z port_listen=16000,downstream_max=64
There might be some copy-&-paste clipping in your post? client-side moxi is usually started with a REST URL to a membase server so that moxi can dynamically learn of the membase cluster configuration. For example...
./moxi -d -P /opt/moxi/sessions.pid -t 8 -Z port_listen=16000,downstream_max=64 http://HOST:8091/pools/default/bucketsStreaming/default
Note the REST URL is the last parameter.
Also, to help diagnose this, instead of "-d", using "-vvv" (very very verbose) should be helpful.
Dallas, if you can set this back up and reproduce the connect issues, it would be useful to take a look at "stats proxy" from Moxi. You can simply telnet ot the port that it is listening on and type "stats proxy" and send over the output.
© 2013 COUCHBASE All rights reserved.