Architecting an App with Couchbase backend


#1

Hi Guys,

I was wondering what is the logical reason when to partition a couchbase to multiple buckets?
Lets say I have an app that is expected to scale to hopefully hundreds of millions of users.
Is having one bucket for everything okay to do? Should i seperate them to multiple buckets/ multiple servers? Or having one bucket for everything is fine? Would it increase performance if i seperate different logical functionality into seperate instances of couchbase?

Thanks in advance!


#2

Couchbase has a limit current of 10 buckets per cluster. As all of the sharding happens automatically and each bucket is partitioned into 1024 containers (referred to as vBuckets) modeling your data in a way where one bucket is utilized is optimal for performance. Denormalizing your data for rapid access will provide maximum performance and maximum flexibility. Using multiple buckets is ideal for multi-tennancy situations where your cluster services multiple applications, or if your data model requires this level of abstraction.