If for example you have two Couchbase buckets, can you store them on separate data volumes (e.g. different paths in linux)? Here is the back story on why we would want to do this:
We are researching a new architecture to increase the performance of our Couchbase cluster. We have an application that analyzes large(ish) populations of data, then posts interesting findings to a work queue on a web application. For rough numbers, only about 3% of the data will be marked as “interesting” and flagged for viewing in the web application.
The process of getting the data into the database, and analyzing it for interesting opportunities is rather I/O intensive, and the workload is far too large to efficiently utilize RAM caching. The issue we have today is that the web application is fast, in so far as we are able to keep the 3% of documents in memcache.
This is where we decided that it makes sense to create two buckets: A “web” bucket for the web application were we can ensure nearly 100% cache-hit ratio, then an “analysis” bucket for the large data set that we use for analyzing the historical data.
The reason we would like to put each bucket on separate disks is for performance. The “web” data is our mission-critical data. Since we plan to pre-cache 100% of the data in memory, the disks don’t need to be terribly fast. But our clients can’t function with out this data, so we want to keep this backed by very safe storage.
Then for the “analysis” bucket, we need this storage to be very fast due to the I/O intensive workload. We would like to store this workload on the local SSD volumes. The “local” SSD volumes in Azure can be deleted, but that’s Ok since this is not mission-critical to our application, and thus we have more flexibility in our recovery times for rebalancing nodes, restoring from XDCR, etc.
But this entire model hinges on being able to store buckets on different physical paths. Is this possible?