Technical Feature Advantage: Shared Data Architecture / Separated Compute and Storage

Separated compute and storage architecture is a design approach for databases and data platforms that decouples the processing power (compute) from the data storage layer. This means the compute nodes, responsible for executing queries and processing data, are independent of the storage nodes that store the actual data.

In StarRocks, this architecture offers significant advantages:


  • Scalability:

    • Compute: Independently scale compute nodes up or down to match query workloads, ensuring optimal performance during peak times or for demanding tasks.

    • Storage: Scale storage separately to accommodate growing data volumes without impacting query performance.

  • Elasticity: Add or remove compute nodes on-demand to meet fluctuating needs, providing flexibility and cost-effectiveness.

  • Cost Optimization:

    • Right-Sizing: Allocate compute resources precisely for current workloads, avoiding overprovisioning and reducing costs.

    • Storage Flexibility: Choose cost-effective storage solutions like cloud object storage (S3) or local disks based on specific needs.

  • Availability:

    • Independent Failures: Isolated compute nodes enhance fault tolerance, as failures in one node don’t affect data availability or other nodes.

    • Maintenance: Perform maintenance or upgrades on compute nodes without disrupting data access.

  • Performance:

    • Optimized Resources: Dedicate compute nodes purely to processing, reducing resource contention and boosting query performance.

    • Parallel Processing: Distribute queries across multiple compute nodes for faster execution, especially for large-scale analytics.

  • Cloud-Native Alignment: Seamlessly integrates with cloud environments that embrace separation of compute and storage for agility and cost-efficiency.

Usage in StarRocks:

  • Deployment:

    • Deploy compute nodes (FE) separately from storage nodes (BE).

    • Connect to various storage systems like S3, or local disks.

  • Configuration:

    • Specify storage paths and properties in table schemas.

    • Manage compute and storage resources independently through StarRocks configuration.

  • Query Execution:

    • StarRocks seamlessly fetches data from storage for processing on compute nodes, returning results without users needing to manage the separation explicitly.

Overall, separated compute and storage architecture in StarRocks empowers organizations to:

  • Build flexible, scalable, and cost-effective data platforms.

  • Optimize resource utilization and performance.

  • Enhance availability and resilience.

  • Embrace cloud-native best practices.