Sizing a Database
Couchbase provides Capella features to help you size your database appropriately.
Sizing a database correctly is critical to its overall stability and performance. Couchbase Capella simplifies and eliminates most of the traditional complexities of sizing a Couchbase Server deployment. This makes it much easier for you to get started with a properly sized database.
A database deployment comprises the following configuration:
Sizing a database depends on the services you choose for it and the workload you place through the database. Each Couchbase service utilizes resources differently, so it’s important to know which resources are most important for each service as you size your database.
The following topics can help you understand Couchbase services and how to size them:
Each row in your database configuration represents a service group. Each service group includes the Couchbase services deployed on the node, and the system resources, such as compute and storage of the cloud VM, that the node is deployed with. Each service group also has a node quantity to represent the number of nodes in the database that have that configuration. A minimum of two nodes are required for a service, except for a data service where the minimum is three nodes.
Available compute instance types. RAM and CPU sizing is used to measure Compute. RAM sizing is measured in Capacity (GB). CPU sizing is measured by the number of vCPUs. The compute type is used for each node in the service configuration.
The amount of RAM and vCPUs in your deployment is sized in multiples, rather than arbitrary amounts. This is because the amount of RAM and vCPUs is always a multiple of the RAM and vCPUs.
The required SSD volume type in AWS EBS for the service. The options are GP3 or IO2. GP3 is general purpose to balance price and performance where you can provision performance independent of storage capacity. IO2 is higher performance and more durable with better reliability.
Capella databases deployed onto Google Cloud use SSD persistent disks (PD-SSD). These are best for high-performance database needs requiring lower latency and more IOPS than standard persistent disks provide.
The required amount of storage for the service. Storage sizing is measured by the capacity you determine in GB. The minimum disk size is 50 GB.
|Capella automatically selects the optimal storage type available from your cloud provider to meet the I/O requirements of your configuration.|
The required amount of input and output operations per second (IOPS) for the service. Increase the IOPS for a better disk throughput, but this does cost more to do so.
Each database service group has a default input/output operations per second (IOPS) rate of 3000. The storage speed is configurable based on the volume type used:
GP3: 3000 to 16000 IOPS
IO2: 1000 to 64000 IOPS
This value is automatically set by Capella based on the specified storage size and doesn’t allow for direct user customization.
The minimum specification supported in Couchbase Capella is:
16 GiB RAM
50 GiB Storage capacity
Number of nodes:
3 nodes for a data (K-V) service
2 nodes for all other services
Database templates provide pre-defined database configurations based on common workloads. Each template has a variety of different sizes, and selecting one populates the entire database configuration for you.
When applying a template, the Configuration Templates page displays the services and resources that make up the template. Templates are a good place to start when sizing your first database in Capella. You can always deploy a database using a template and modify it later to match your needs.
Custom deployments provide you with granular control to size and configure your database.
Custom deployments work well if you:
Already have experience with Couchbase Server.
Want to re-create an existing Couchbase deployment using Couchbase Capella.
When using a custom deployment, click Add Service Group to add different node configurations. Each node configuration represents a service group row in the Deployment Configuration.
The following custom configuration is available:
Which individual services run on the node.
Number of nodes by quantity for the node configuration.
Compute type instance that the node configuration runs on.
Disk type for the configuration.
Storage capacity for each node.
Input and output operations per second (IOPS).
To learn how to create a custom deployment, see Create a Database.