Search code examples
google-cloud-bigtable

Single instance vs. multiple instances on Bigtable


When scaling up Bigtable for multiple use cases, what are the performance considerations of using one instance with more tables and nodes vs. using multiple instances with fewer nodes each?


Solution

  • I am the product manager of Google Cloud Bigtable.

    There are several considerations, including flexibility, performance isolation, and cost. In the end, the answer depends on your specific situation and parameters of your workloads, data sharing, need for workload isolation, etc.

    Using separate clusters gets you much better performance isolation, since each cluster has separate dedicated Bigtable server nodes, and depending on your set of use cases, may or may not be more expensive than a single larger cluster.

    Given that you can easily resize a cluster, you can get more throughput for the cluster in case you need more aggregate read/write traffic; however, you won't be able to cap a particular use case or table to a specific amount of resources, and performance issues in one table could affect another table on the same cluster (depending on the distribution of data on the cluster).

    Using a single cluster for multiple workloads lets you share data (e.g., tables) between the use cases, if that is useful for you.