A YugabyteDB universe can be scaled horizontally to increase the aggregate vCPUs, memory, and disk in the database by dynamically adding nodes to a running universe or by increasing the number of pods in the
yb-tserver StatefulSet in the case of Kubernetes deployments.
A YugabyteDB universe is scaled out so that it can handle the following:
- More transactions per second.
- Greater number of concurrent client connections.
- Larger datasets.
A YugabyteDB universe can also be scaled in dynamically by draining all the data from existing universe nodes (or Kubernetes pods), and subsequently removing them from the universe.
Every table in YugabyteDB is transparently sharded using its primary key. The shards are called tablets. Each tablet consists of a set of rows in a table. In YugabyteDB, tables are automatically split into tablets during the table creation if possible. Tablets can also be split dynamically.
The following table summarizes YugabyteDB support for scalability and sharding across YSQL and YCQL APIs:
|Scale transactions per sec||Yes||Yes||Scale out a universe to handle a greater number of concurrent transactions per second.|
|Data distribution support||Hash sharding,
|Hash sharding||Sharding is used to distribute data across a universe's nodes.
Tables can be pre-split at creation time, and dynamically split at runtime.