Limiting a bucket to a few nodes in a cluster?
Hi,
Is it possible to create a bucket that does not spawn all the nodes of the cluster? So e.g. if the cluster is 5 nodes. Can I create a bucket that only spreads across say 2 nodes? Will be really helpful in providing/managing multi-tenancy to the consumers of the couchbase cluster.
regards,
-Piyush
Hi Mike
Thanks for your reply. I thought so, but just wanted to confirm. However, here is how/why it would help.
We are looking at deploying a single large cluster. Started out with 8 nodes currently, but it'll grow rapidly. The idea is to add new tenants on the same cluster, by simply creating a new bucket for them and allocating it.
You probably saw my other post from a few days back, where the cluster went in a tizzy and I couldn't do any operations on the cluster. Ultimately I had to bring down the whole cluster, delete *ONE* particular bucket's data files and restart the cluster. This impacted all the other tenants on this cluster. Everyone was down for that period of time.
If on the other hand, I could restrict the buckets to a few nodes, say bucket A to 3 nodes, and Buckets B to 5 nodes, I would have only brought down those 5 nodes with the problematic bucket. From a multi-tenancy scenario it would really go a long way.
Yes I know I could 2 independent clusters and have one tenant per cluster. But that becomes an admin's nightmare. we are looking 20+ tenants and as they get on-boarded, you can imagine the havoc it'll play if I have to do this every time something goes wrong with one bucket.
regards,
-Piyush
Why did you have to delete the entire bucket? Was that what someone told you to do or is that what you just ended up having to do in order to get things working again? The reason I ask is that the way we build our software what is supposed to happen when something goes wrong with those 5 nodes is that you should be able to remove them and rebalance all of your data onto the three working nodes. Then once you figure out what the problem is with the other five you can add them back and have an eight node cluster again. You should be able to do all of this without any of your tenants noticing.
On the monitor screen, I could see all the operations happening successfully on Bucket A. But bucket B (which I suspected was misbehaving or had become corrupt) showed no activity. Please refer to my other post: http://www.couchbase.com/forums/thread/cannot-enable-auto-failover-delet... in which I detailed the errors that were getting thrown while trying to fix the issue.
And after all else failed, I finally resorted to bringing down the cluster, deleting the bucket's data files and restarting all the 8 nodes all over again. Also, there was no way to know which nodes were bad and which healthy. None of them responding to requests.
It is not possible to do this and I am curious why you want to? With more nodes for each bucket the more resilient your application would be to failures. Can you provide the specific use case for why this setup would be beneficial to you?