A OceanBase database is a multi-tenant distributed database with its resources managed in a resource pool for the tenants. A resource pool contains resource units. A resource unit contains specific resources such as CPUs, memory, disk space, and IOPS. Before you create a tenant, you must specify the resource range that the tenant can use. Resource pools and resource units help you isolate resources among tenants and balance loads.
The following are some basic concepts in resource management:
Resource unit
A resource unit is a container of resources. In fact, as replicas are stored in resource units, a resource unit is a container of replicas. A resource unit contains computing and storage resources (such as memory, CPUs, and IOPS). It is a basic unit for cluster load balancing. The distribution of resource units are dynamically adjusted among the nodes when you add, delete, scale out, and scale in nodes in the cluster.
Resource pool
A tenant has several resource pools, which contain all resources available to the tenant. A resource pool consists of several resource units with the same specifications (Unit Configs). A resource pool can belong to only one tenant. A resource unit describes a group of computing and storage resources on an OBServer and can be considered as a lightweight virtual machine. A resource unit consists of several CPU resources, memory resources, and disk resources. A tenant can have at most one resource unit on the same OBServer.
Resource configuration (Resource Config)
A resource configuration specifies the configuration of a resource unit. It contains the resource pool information, the information about the target tenant that the resource unit is allocated to, and the configuration information of the resource unit, such as the number of CPU cores and memory resources. You can change the resource configurations to dynamically adjust the computing resources of resource units and the resources of corresponding tenants.