Cloud Whitepaper

Azure SQL Hyperscale: High-performance DBaaS

Azure SQL Hyperscale: The DBaaS from Microsoft

Azure SQL hyperscale is a new database as a service (DBaaS) offering from microsoft. microsoft built Azure sql hyperscale on the experiences learned by microsoft Azure sql database. Azure sql hyperscale strives for improvements in security and availability plus lower and more flexible cost, and higher performance.

Azure SQL Database Design

The Azure SQL hyperscale database has the following design principles:

  • supports a database size of up to 100 tb
  • provides nearly instantaneous database backups (based on file snapshots stored in Azure blob storage) regardless of size with no input/output impact on compute
  • provides fast database restores (based on file snapshots) in minutes rather than hours or days
  • provides higher overall performance due to a higher log throughput and faster transaction commit times regardless of data volumes
  • provides rapid scale-out by provisioning one or more read-only nodes for offloading the read workload and for use as hot-standbys
  • provides rapid scale-up in constant time of the compute resources to accommodate heavy workloads when needed, and then scale the compute resources back down when not required

Azure SQL Database vs. Azure SQL Hyperscale

The following chart shows a comparison of the Azure SQL database service versus the Hyperscale service tier:

[see pdf for chart]

For upsize/downsize, the table expresses the values in Big-O notation. O(data) or O(n) would be time dependent on the size of the data with larger values taking longer to complete (‘linear time’). O(1) corresponds to a time step of 1 to complete regardless of size (‘constant time’).

SQL Server Features in Azure SQL Hyperscale

The design of Azure SQL hyperscale made use of the following existing SQL server features:

  • page Version store maintains versions of database records
  • Accelerated database recovery (ADR) coupled with page Version store helps to eliminate the undo phase in many cases providing the ‘constant time’ bounded by the checkpointing interval
  • Resilient buffer pool extension (BPE) was made resilient (recoverable after failure) for Azure SQL Hyperscale
  • Remote block I/O (RBIO) protocol is a strongly typed stateless protocol that distributes components of the database engine across multiple tiers
  • Snapshot backup/restore was extended to allow backup/restore to work on Azure storage (Xstore) and thus enables multi-terabyte databases to work in ‘constant time’ with impacting cpu or input/output cost in the compute tier
  • I/O stack Virtualization was exploited to help hide the storage hierarchy from the compute process

Architectural Overview of Azure SQL Hyperscale

The following diagram visualizes the architecture of Azure SQL Hyperscale.

[see pdf for diagram]

The core service tiers are as follows:

  • Compute nodes is where the relational engine lives
  • Page servers are systems representing a scaled-out storage engine
  • Log service node accepts log records from the primary compute node, persists them in a durable cache, and forwards the log records to the rest of the Compute nodes
  • Azure standard storage node is the destination for data from page servers and is used for backup purposes as well as for replication

How to Configure Azure SQL Hyperscale

Configure a database service tier for azure sql hyperscale by selecting an azure sql database. Then configure the database using the vcore-based purchasing model. The following screen capture image of the azure dashboard displays the option for hyperscale on-demand scalable storage with data up to 200,000 input/output operations per second with a latency of 1 to 2 milliseconds and log up to 7,000 input/output operations per second with a latency of 5 to 10 milliseconds. However, the capability to change from hyperscale to another service tier is not supported.

Azure SQL

Azure SQL hyperscale is based on the idea of separating compute and storage that other vendors such as Amazon and oracle have modeled products on. However, Azure SQL Hyperscale architecture also separates durability and availability. That separation helps meet a customer need for the balancing of cost, performance, and availability.

Microsoft has released a single database version of azure sql hyperscale. However, Microsoft is working on future improvements for bulk operations, multiple-master variants, better support for the hybrid transaction/analytical processing (HTAP) as can be found in MariaDB, and making use of the log service for other services such as audit and security.

Azure SQL hyperscale is designed to be able to migrate from Azure SQL databases. And Azure SQL Hyperscale is intended to have no impact on current applications and tools designed for Azure SQL databases. The lack of adverse effects is good news for third-party vendors, including IDERA.