As query workloads grow, you need a way to add compute capacity without disrupting running jobs. Hologres supports both vertical and horizontal elastic scaling for compute groups, so you can match resources to workload demand — scaling individual query performance or concurrent throughput as needed.
Scaling directions
A Hologres instance can be divided into multiple compute groups. Each compute group supports one of two scaling directions, configured independently.
Direction | Available since | How it scales | Best for |
Vertical (scale-up/down) | Hologres V2.0 | Increases or decreases the computing resources of a compute group | Medium-to-large query workloads; high-concurrency, small-task workloads |
Horizontal (scale-out/in) | Hologres V4.0 | Increases or decreases the number of clusters in a compute group | High-concurrency, small-task workloads requiring flexible throughput and isolation |
When to scale vertically
Vertical scaling adds or removes computing resources from a single compute group. Use vertical scaling when individual queries are slow or resource-intensive — for example, complex analytical queries that need more computing resources to run faster.
When to scale horizontally
Horizontal scaling adds or removes clusters within a compute group. Use horizontal scaling when the number of concurrent queries is growing and you need more flexible throughput and isolation capabilities.
Scaling methods
Method | Direction | Description |
Manual scaling | Vertical | Manually adjust compute group resources or cluster count. See Compute group management. |
Time-based scaling (Beta) | Vertical | Schedule vertical scaling tasks to run at set times. See Time-based scaling (Beta). |
Auto scaling (Beta) | Horizontal | Set a scaling limit and let Hologres scale out automatically based on load. See Multi-cluster and auto scaling (Beta). |
Resource terminology
The following terms apply across all scaling features, grouped by the feature they belong to.
Time-based scaling
Term | Definition |
Compute group reserved resources | The baseline resources allocated to a compute group from the instance's reserved resources. Set when creating the compute group and adjustable later. |
Compute group elastic resources | Resources dynamically added on top of reserved resources through time-based scaling. |
Total computing resources of a compute group | Reserved resources + elastic resources. |
Multi-cluster and auto scaling
Term | Definition |
Reserved cluster count | The number of clusters reserved for a compute group. Set when creating the compute group and adjustable later. Resources for reserved clusters come from instance reserved resources. |
Specifications of a single cluster | The resource size of each reserved cluster. Set when creating the compute group and adjustable later. |
Compute group reserved resources | Specifications of a single cluster x Reserved cluster count. |
Compute group elastic resources | Specifications of a single cluster x (Current cluster count - Reserved cluster count). |
Total computing resources of a compute group | Reserved resources + elastic resources. |
Instance-level resources
Term | Definition |
Instance reserved resources | The total computing resources reserved for an instance, available under both subscription and pay-as-you-go billing. Divided into allocated and unallocated portions. |
Instance allocated resources | The portion of instance reserved resources assigned to compute groups as their reserved resources. |
Instance unallocated resources | The portion of instance reserved resources not yet assigned to any compute group. |
Instance elastic resources | The total resources scaled out across all compute groups via time-based scaling or auto scaling, beyond their reserved allocations. |
Total computing resources of an instance | Instance reserved resources + instance elastic resources. |