Hi Jeremy,
The client supports parallel requests. You would not want to spin up multiple clients. That would be very costly in terms of JVM use and context switches.
There are two client configs you can use to increase the parallelism:
max_connections (default 50)
selectors (default 8)
The default settings are usually good enough to get you up to hundreds of requests per second out of a single client. If you find yourself needing to get up to thousands of requests a second, you might want to bump selectors up to about 20 and maybe bump max_connections up to around 100. Increasing the selectors increases the number of threads available to the java.nio selector manager, which allows is to handle more requests in parallel. max_connections is the maximum number of open connections the client can have to each voldemort server for sending requests to them. Increasing these numbers too much can have significant negative impact on the JVM environment that your app lives in.
You'll also want to make sure that your voldemort servers can handle both the connections and the number of requests being sent over them. So, you need to have enough servers and, selectors and I/O capability. You'll probably have to play around a bit with the server configs.
We run clusters that have 22 servers in them, serving 20+k connections a piece and handling hundreds of thousands of requests a second to about more than 1000 upstream application instances. And we have some client instances that have been able to funnel more than 10,000 requests a second back to clusters containing 30 nodes. But we also back our storage with SSD, which helps a lot with the throughput capabilities.