> Are riak client's akin to a db connection ? If so, do I need to be concerned
> with client pooling ?
> e.g. If I have a web app, whereby each dispatched request from
> webmachine/mochiweb is its own process (afik), than is then delegated to my
> resource code that then needs to interact with riak.
> Do I need to be concerned with resource starvation (too may open files or
> socket connections etc) and hence need to maintain a pool of riak clients
> that are parcelled out?
There is no need to "close" a riak client. None of the current
clients keep a persistent connection to Riak.
It is also the case that none of the current clients attempts to
explicitly do any sort of connection pooling (though some of them may
end up doing so, due to underlying http implementations). So, if it's
possible on your machine to start enough processes all connecting to
Riak at the same time, I suppose it is probably possible to run into
file or socket count limitations.
One reason you may want to hang on to a client for a while, though, is
to prevent vector clock growth. Each client should have a different
ID, and that ID will be stored in an object's vector clock on update.
A vector clock will grow in size (by a constant amount) with each new
client ID, but will stay the same size when reusing client IDs.