Download as pdf or txt
Download as pdf or txt
You are on page 1of 70

Azure SQL Hyperscale Revealed:

High-performance Scalable Solutions


for Critical Data Workloads 1st Edition
Zoran Bara■
Visit to download the full and correct content document:
https://ebookmeta.com/product/azure-sql-hyperscale-revealed-high-performance-scal
able-solutions-for-critical-data-workloads-1st-edition-zoran-barac/
More products digital (pdf, epub, mobi) instant
download maybe you interests ...

Azure SQL Hyperscale Revealed: High-performance


Scalable Solutions for Critical Data Workloads 1st
Edition Zoran Bara■

https://ebookmeta.com/product/azure-sql-hyperscale-revealed-high-
performance-scalable-solutions-for-critical-data-workloads-1st-
edition-zoran-barac-2/

SQL Server 2022 Revealed: A Hybrid Data Platform


Powered by Security, Performance, and Availability 1st
Edition Bob Ward

https://ebookmeta.com/product/sql-server-2022-revealed-a-hybrid-
data-platform-powered-by-security-performance-and-
availability-1st-edition-bob-ward/

High Performance Drupal Fast and Scalable Designs 1st


Edition Sheltren

https://ebookmeta.com/product/high-performance-drupal-fast-and-
scalable-designs-1st-edition-sheltren/

Azure Security For Critical Workloads: Implementing


Modern Security Controls for Authentication,
Authorization and Auditing 1st Edition Sagar Lad

https://ebookmeta.com/product/azure-security-for-critical-
workloads-implementing-modern-security-controls-for-
authentication-authorization-and-auditing-1st-edition-sagar-lad/
Expert Performance Indexing in Azure SQL and SQL Server
2022 Fourth Edition Edward Pollack

https://ebookmeta.com/product/expert-performance-indexing-in-
azure-sql-and-sql-server-2022-fourth-edition-edward-pollack/

Azure Arc-enabled Data Services Revealed: Deploying


Azure Data Services on Any Infrastructure 2nd Edition
Ben Weissman

https://ebookmeta.com/product/azure-arc-enabled-data-services-
revealed-deploying-azure-data-services-on-any-infrastructure-2nd-
edition-ben-weissman/

Developing Cloud-Native Solutions with Microsoft Azure


and .NET: Build Highly Scalable Solutions for the
Enterprise 1st Edition Ashirwad Satapathi

https://ebookmeta.com/product/developing-cloud-native-solutions-
with-microsoft-azure-and-net-build-highly-scalable-solutions-for-
the-enterprise-1st-edition-ashirwad-satapathi/

Modern Data Architecture on Azure: Design Data-centric


Solutions on Microsoft Azure 1st Edition Sagar Lad

https://ebookmeta.com/product/modern-data-architecture-on-azure-
design-data-centric-solutions-on-microsoft-azure-1st-edition-
sagar-lad/

Principles of High-Performance Processor Design: For


High Performance Computing, Deep Neural Networks and
Data Science Junichiro Makino

https://ebookmeta.com/product/principles-of-high-performance-
processor-design-for-high-performance-computing-deep-neural-
networks-and-data-science-junichiro-makino/
Azure SQL Hyperscale
Revealed
High-performance Scalable Solutions
for Critical Data Workloads

Zoran Barać
Daniel Scott-Raynsford
Azure SQL Hyperscale Revealed: High-performance Scalable Solutions for Critical
Data Workloads
Zoran Barać Daniel Scott-Raynsford
Resolution Drive, Auckland, 0930, New Zealand Victory Road, Auckland, 0604, New Zealand

ISBN-13 (pbk): 978-1-4842-9224-2 ISBN-13 (electronic): 978-1-4842-9225-9


https://doi.org/10.1007/978-1-4842-9225-9

Copyright © 2023 by Zoran Barać and Daniel Scott-Raynsford


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the
material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation,
broadcasting, reproduction on microfilms or in any other physical way, and transmission or information
storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now
known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with
every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an
editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the
trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not
identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to
proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication,
neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or
omissions that may be made. The publisher makes no warranty, express or implied, with respect to the
material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Jonathan Gennick
Development Editor: Laura Berendson
Editorial Assistant: Shaul Elson
Cover image by Felipe Portella from Unsplash
Distributed to the book trade worldwide by Springer Science+Business Media New York, 1 New York Plaza,
Suite 4600, New York, NY 10004-1562, USA. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@
springer-sbm.com, or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole
member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc
is a Delaware corporation.
For information on translations, please e-mail booktranslations@springernature.com; for reprint,
paperback, or audio rights, please e-mail bookpermissions@springernature.com.
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and
licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales
web page at www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is available to
readers on GitHub. For more detailed information, please visit www.apress.com/source-code.
Printed on acid-free paper
Table of Contents
About the Authors���������������������������������������������������������������������������������������������������� xi

About the Technical Reviewers����������������������������������������������������������������������������� xiii

Introduction�������������������������������������������������������������������������������������������������������������xv

Part I: Architecture����������������������������������������������������������������������������������������� 1
Chapter 1: The Journey to Hyperscale Architecture in Azure SQL��������������������������� 3
SQL on Azure��������������������������������������������������������������������������������������������������������������������������������� 5
The Basics of Azure SQL���������������������������������������������������������������������������������������������������������� 5
Azure SQL Platform as a Service�������������������������������������������������������������������������������������������������� 7
Deployment Models����������������������������������������������������������������������������������������������������������������� 9
Purchasing Models and Service Tiers����������������������������������������������������������������������������������� 10
Availability Models and Redundancy������������������������������������������������������������������������������������� 13
Standard Availability Model: Locally Redundant Availability�������������������������������������������������� 15
General Purpose Service Tier: Zone-­Redundant Availability�������������������������������������������������� 16
Premium and Business Critical Service Tier: Locally Redundant Availability������������������������ 18
Premium and Business Critical Service Tier: Zone-­Redundant Availability��������������������������� 19
Protecting Against Regional Outages Using Failover Groups with
Geo-redundant Availability���������������������������������������������������������������������������������������������������� 21
The Hyperscale Service Tier������������������������������������������������������������������������������������������������������� 22
Hyperscale Architecture Overview���������������������������������������������������������������������������������������� 24
Deploying Your First Hyperscale Database���������������������������������������������������������������������������� 25
Cleaning Up��������������������������������������������������������������������������������������������������������������������������� 34
Summary������������������������������������������������������������������������������������������������������������������������������������ 35

iii
Table of Contents

Chapter 2: Azure SQL Hyperscale Architecture Concepts and Foundations����������� 37


Hyperscale Azure SQL Scalability and Durability������������������������������������������������������������������������ 38
Foundations of Azure SQL Hyperscale���������������������������������������������������������������������������������������� 40
The Buffer Pool Extension����������������������������������������������������������������������������������������������������� 41
The Resilient Buffer Pool Extension��������������������������������������������������������������������������������������� 41
Investigating the Size of RBPEX�������������������������������������������������������������������������������������������� 41
Row Versioning–Based Isolation Level���������������������������������������������������������������������������������� 45
Accelerated Database Recovery�������������������������������������������������������������������������������������������� 48
Multitier Architecture Concepts in Hyperscale���������������������������������������������������������������������������� 49
Compute Nodes��������������������������������������������������������������������������������������������������������������������� 50
Log Service���������������������������������������������������������������������������������������������������������������������������� 58
Page Servers������������������������������������������������������������������������������������������������������������������������� 61
Azure Standard Storage�������������������������������������������������������������������������������������������������������� 68
How Do the Tiers Work Together?������������������������������������������������������������������������������������������ 70
Summary������������������������������������������������������������������������������������������������������������������������������������ 74

Part II: Planning and Deployment����������������������������������������������������������������� 75


Chapter 3: Planning an Azure SQL DB Hyperscale Environment���������������������������� 77
Considerations When Planning for Hyperscale��������������������������������������������������������������������������� 77
The Azure SQL Database Logical Server������������������������������������������������������������������������������� 78
Considerations for Reliability������������������������������������������������������������������������������������������������� 81
Considerations for Network Connectivity������������������������������������������������������������������������������ 94
Considerations for Security������������������������������������������������������������������������������������������������� 108
Considerations for Operational Excellence�������������������������������������������������������������������������� 119
Summary���������������������������������������������������������������������������������������������������������������������������������� 124

Chapter 4: Deploying a Highly Available Hyperscale Database


into a Virtual Network������������������������������������������������������������������������� 125
An Example Hyperscale Production Environment��������������������������������������������������������������������� 126
The Starting Environment��������������������������������������������������������������������������������������������������������� 129
The Starting Environment Deployment Script��������������������������������������������������������������������� 131

iv
Table of Contents

Deploying the Starting Environment Using the Azure Cloud Shell��������������������������������������� 133
Creating a SQL Administrators Group���������������������������������������������������������������������������������� 136
Deploying a Highly Available Hyperscale Database into a Virtual Network������������������������������� 139
Basic Configuration of the Database����������������������������������������������������������������������������������� 141
Configuring Network Connectivity��������������������������������������������������������������������������������������� 146
The Final Configuration Tasks and Deployment������������������������������������������������������������������� 150
Deleting the Example Environment������������������������������������������������������������������������������������������� 155
Summary���������������������������������������������������������������������������������������������������������������������������������� 157

Chapter 5: Administering a Hyperscale Database in a Virtual Network


in the Azure Portal������������������������������������������������������������������������������ 159
Administering a Hyperscale Database in a Virtual Network������������������������������������������������������ 160
Deploying a Management VM and Azure Bastion���������������������������������������������������������������� 163
Using the Management VM with an Azure Bastion�������������������������������������������������������������� 167
Summary���������������������������������������������������������������������������������������������������������������������������������� 170

Chapter 6: Configuring Transparent Data Encryption to Bring Your Own Key������ 171
Enabling Customer-Managed Key Transparent Data Encryption����������������������������������������������� 172
Creating a User-Assigned Managed Identity����������������������������������������������������������������������� 174
Granting the Key Vault Crypto Officer Role to a User����������������������������������������������������������� 175
Generating a Key in the Azure Key Vault������������������������������������������������������������������������������ 178
Granting Access to the Key by the User-Assigned Managed Identity���������������������������������� 180
Assigning the User-Assigned Managed Identity to the Logical Server�������������������������������� 182
Enabling Customer-Managed TDE��������������������������������������������������������������������������������������� 184
Summary���������������������������������������������������������������������������������������������������������������������������������� 185

Chapter 7: Enabling Geo-replication for Disaster Recovery��������������������������������� 187


Deploying a Hyperscale Geo Replica����������������������������������������������������������������������������������������� 188
Creating a Logical Server in the Failover Region���������������������������������������������������������������� 189
Connecting a Logical Server to a Virtual Network with Private Link����������������������������������� 191
Enabling the Customer-Managed Key TDE�������������������������������������������������������������������������� 196
Enabling Geo-replication of a Hyperscale Database����������������������������������������������������������� 198
Summary���������������������������������������������������������������������������������������������������������������������������������� 200

v
Table of Contents

Chapter 8: Configuring Security Features and Enabling Diagnostic


and Audit Logs������������������������������������������������������������������������������������ 203
Enabling Microsoft Defender for SQL���������������������������������������������������������������������������������������� 204
Storing Diagnostic and Audit Logs�������������������������������������������������������������������������������������������� 206
Sending Audit Logs to a Log Analytics Workspace�������������������������������������������������������������� 207
Sending Database Diagnostic Logs to Log Analytics����������������������������������������������������������� 209
Summary���������������������������������������������������������������������������������������������������������������������������������� 211

Chapter 9: Deploying Azure SQL DB Hyperscale Using PowerShell���������������������� 213


Introduction to Infrastructure as Code�������������������������������������������������������������������������������������� 214
Imperative vs. Declarative Infrastructure as Code�������������������������������������������������������������������� 215
Deploying Hyperscale Using Azure PowerShell������������������������������������������������������������������������ 216
The Azure PowerShell Modules������������������������������������������������������������������������������������������� 216
Deploying the Starting Environment������������������������������������������������������������������������������������ 218
The Complete Deployment PowerShell Script��������������������������������������������������������������������� 218
Azure PowerShell Commands in Detail������������������������������������������������������������������������������� 220
Summary���������������������������������������������������������������������������������������������������������������������������������� 239

Chapter 10: Deploying Azure SQL DB Hyperscale Using Bash and Azure CLI������� 241
Deploying Hyperscale Using the Azure CLI������������������������������������������������������������������������������� 241
The Azure CLI����������������������������������������������������������������������������������������������������������������������� 242
Deploying the Starting Environment������������������������������������������������������������������������������������ 243
The Complete Deployment Bash Script������������������������������������������������������������������������������� 245
Azure CLI Commands in Detail�������������������������������������������������������������������������������������������� 247
Summary���������������������������������������������������������������������������������������������������������������������������������� 264

Chapter 11: Deploying Azure SQL DB Hyperscale Using Azure Bicep������������������� 267
About Azure Bicep��������������������������������������������������������������������������������������������������������������������� 268
Deploying Using Azure Bicep���������������������������������������������������������������������������������������������������� 268
A Complete Azure Bicep Deployment���������������������������������������������������������������������������������� 268
Hyperscale Resources in Azure Bicep��������������������������������������������������������������������������������� 271
Summary���������������������������������������������������������������������������������������������������������������������������������� 284

vi
Table of Contents

Chapter 12: Testing Hyperscale Database Performance Against Other


Azure SQL Deployment Options��������������������������������������������������������� 285
HammerDB�������������������������������������������������������������������������������������������������������������������������������� 286
HammerDB TPROC-C Workload������������������������������������������������������������������������������������������� 287
HammerDB Step-by-Step���������������������������������������������������������������������������������������������������� 287
Schema Build Performance Metrics������������������������������������������������������������������������������������ 301
TPROC-C Workload Metrics������������������������������������������������������������������������������������������������� 312
Summary���������������������������������������������������������������������������������������������������������������������������������� 336

Part III: Operation and Management����������������������������������������������������������� 339


Chapter 13: Monitoring and Scaling��������������������������������������������������������������������� 341
Monitoring Platform Metrics����������������������������������������������������������������������������������������������������� 342
Viewing Metrics with the Metrics Explorer�������������������������������������������������������������������������� 342
Streaming Metrics to a Log Analytics Workspace��������������������������������������������������������������� 344
Alerting on Platform Metrics����������������������������������������������������������������������������������������������� 345
Monitoring and Tuning Database Performance������������������������������������������������������������������������� 351
Monitoring Query Performance������������������������������������������������������������������������������������������� 351
Performance Recommendations����������������������������������������������������������������������������������������� 352
Automatically Tuning Database Performance���������������������������������������������������������������������� 352
Gathering Insights from the Database�������������������������������������������������������������������������������������� 353
SQL Analytics���������������������������������������������������������������������������������������������������������������������������� 354
Scaling a Hyperscale Database������������������������������������������������������������������������������������������������ 357
Manually Scaling Up a Hyperscale Database���������������������������������������������������������������������� 358
Manually Scaling Out a Hyperscale Database��������������������������������������������������������������������� 359
Autoscaling a Hyperscale Database������������������������������������������������������������������������������������ 360
Summary���������������������������������������������������������������������������������������������������������������������������������� 360

Chapter 14: Backup, Restore, and Disaster Recovery������������������������������������������ 361


Hyperscale Database Backups������������������������������������������������������������������������������������������������� 361
Backup Retention Policy������������������������������������������������������������������������������������������������������ 362
Backup Storage Redundancy���������������������������������������������������������������������������������������������� 365
Monitoring Backup Storage Consumption with Azure Monitor Metrics������������������������������� 367

vii
Table of Contents

Hyperscale Database Restores������������������������������������������������������������������������������������������������� 368


Example 1: Restore to Same Region, LRS to LRS���������������������������������������������������������������� 369
Example 2: Restore to Same Region, LRS to GRS���������������������������������������������������������������� 371
Example 3: Restore to the Same Region, GRS to GRS��������������������������������������������������������� 372
Example 4: Geo Restore to Different Region, GRS to LRS���������������������������������������������������� 372
Example 5: Geo-restore to Different Region, GRS to GRS���������������������������������������������������� 373
Comparing Restore Performance of Hyperscale to Traditional Azure SQL Databases��������� 375
Disaster Recovery��������������������������������������������������������������������������������������������������������������������� 377
Summary���������������������������������������������������������������������������������������������������������������������������������� 379

Chapter 15: Security and Updating����������������������������������������������������������������������� 381


Azure SQL Database Security Overview������������������������������������������������������������������������������������ 381
Network Security����������������������������������������������������������������������������������������������������������������� 384
Access Management����������������������������������������������������������������������������������������������������������� 387
Auditing and Azure Threat Detection����������������������������������������������������������������������������������� 390
Information Protection��������������������������������������������������������������������������������������������������������� 392
Updating and Maintenance Events������������������������������������������������������������������������������������������� 396
Summary���������������������������������������������������������������������������������������������������������������������������������� 398

Chapter 16: Managing Costs�������������������������������������������������������������������������������� 399


Azure Hybrid Benefit����������������������������������������������������������������������������������������������������������������� 399
Reserving Capacity������������������������������������������������������������������������������������������������������������������� 401
Purchasing Reserved Capacity�������������������������������������������������������������������������������������������� 401
Estimating Reserved Capacity Benefits������������������������������������������������������������������������������� 402
Utilizing Reservations���������������������������������������������������������������������������������������������������������� 402
Scaling In and Scaling Down Replicas�������������������������������������������������������������������������������������� 403
Summary���������������������������������������������������������������������������������������������������������������������������������� 405

Part IV: Migration��������������������������������������������������������������������������������������� 407


Chapter 17: Determining Whether Hyperscale Is Appropriate������������������������������ 409
Key Considerations for Hyperscale������������������������������������������������������������������������������������������� 409
Scalability���������������������������������������������������������������������������������������������������������������������������� 410
Reliability����������������������������������������������������������������������������������������������������������������������������� 413

viii
Table of Contents

Business Continuity������������������������������������������������������������������������������������������������������������� 413


Cost������������������������������������������������������������������������������������������������������������������������������������� 416
Summary���������������������������������������������������������������������������������������������������������������������������������� 418

Chapter 18: Migrating to Hyperscale�������������������������������������������������������������������� 419


Common Migration Methods����������������������������������������������������������������������������������������������������� 419
In-Place Conversion of an Azure SQL Database to Hyperscale������������������������������������������� 421
Migrating to Hyperscale with Data Migration Assistant������������������������������������������������������ 425
Migrating to Hyperscale with the Azure Database Migration Service��������������������������������� 432
Migrating with ADS with the Azure SQL Migration Extension���������������������������������������������� 443
Migrating to Hyperscale Using Import Database����������������������������������������������������������������� 444
Migrating to Hyperscale Using a Data Sync and Cutover���������������������������������������������������� 446
Summary���������������������������������������������������������������������������������������������������������������������������������� 447

Chapter 19: Reverse Migrating Away from Hyperscale���������������������������������������� 449


Reverse Migration Methods������������������������������������������������������������������������������������������������������ 450
Reverse Migration Using the Azure Portal��������������������������������������������������������������������������� 450
Reverse Migration Using Transact SQL�������������������������������������������������������������������������������� 453
Reverse Migration Using Azure CLI�������������������������������������������������������������������������������������� 454
Common Pitfalls of the Reverse Migration Process������������������������������������������������������������������ 456
Migrating to an Unsupported Service Tier��������������������������������������������������������������������������� 456
Database Not Eligible for Reverse Migration����������������������������������������������������������������������� 457
Summary���������������������������������������������������������������������������������������������������������������������������������� 457

Chapter 20: Conclusion����������������������������������������������������������������������������������������� 459

Index��������������������������������������������������������������������������������������������������������������������� 461

ix
About the Authors
Zoran Barać is a cloud architect and data specialist
with more than 15 years of hands-on experience in
data optimization, administration, and architecture. He
is a Certified Microsoft Trainer (MCT) and Microsoft
Certified Solutions Expert (MCSE) with a master‘s degree
in information technology. Sharing knowledge and
contributing to the SQL Server community are his passions.
He is also an organizer of the Auckland SQL User Meetup
Group, an active blogger, and a speaker at different SQL events such as Data Summits,
SQL Saturdays, SQL Fridays, meetups, etc.

Daniel Scott-Raynsford is a partner technology strategist


at Microsoft with 15 years of experience as a software
developer and solution architect. He specializes in DevOps
and continuous delivery practices. He was a Microsoft MVP
in cloud and data center management for three years before
joining Microsoft and is an active PowerShell open-­source
contributor and Microsoft DSC Community Committee
member. He is also a contributor to the Azure Architecture
Center on multitenant architecture practices.

xi
About the Technical Reviewers
Jonathan Cowley is a cloud infrastructure engineer,
DevOps practitioner, and technical documentation writer
with more than 15 years of experience in various roles and
environments, in both small and large corporations and
public organizations. He has been Microsoft Azure and AWS
certified. He enjoys connecting people and information and
solving challenging problems.

Vitor Fava has earned the title of Most Valuable Professional


(MVP AI and Data Platform) and the main certifications
related to SQL Server, such as MCP, MCTS, MCITP, MCSA,
and MCSE. A DBA with more than 20 years of experience
in database and information technology, Vitor works on
the development, implementation, maintenance, and
support of large corporate database servers. Vitor graduated
with a degree in information systems from Universidade
Presbiteriana Mackenzie/SP, with an emphasis on high-
performance and mission-critical database environment
management.He has been a speaker at several technology events, such as SQLBITS,
SQL Saturday, The Developers Conference (TDC), SQL Porto, InteropMix, and several
discussion groups focused on database technology. Vitor also provides advanced
training in SQL Server and Azure SQL Database, in addition to acting as an MCT
in official Microsoft training. He is also the chapter leader of the PASS Chapter SQL
Maniacs in São Paulo, Brazil.

xiii
Introduction
Azure SQL is a platform-as-a-service (PaaS) relational database management system
(RDBMS) that is provided as part of the Azure cloud and based on the Microsoft SQL
Server platform. This offering contains service tiers that make it suitable for a wide
range of use cases, from small single-user applications to mission-critical lines of
business workloads. However, there is only one service tier that provides the high level
of scalability and resilience that is required by some of today’s largest cloud-based
workloads: Hyperscale.
In this book, we’ll take you through the capabilities and basics of the Azure SQL
Database Hyperscale service tier. You’ll learn the basics of designing, deploying, and
managing Azure SQL Hyperscale databases. We’ll look in detail at the resilience (high
availability and disaster recovery) and scalability of Azure SQL Hyperscale databases and
how to tune them. We will also look at the different techniques you can use to deploy and
configure Azure SQL Hyperscale.
Monitoring and securing Azure SQL Hyperscale databases will also be covered to
ensure your workloads continue to perform and operate securely. This book will be your
guide to deciding when Hyperscale is a good fit for migrating your existing workloads
and what architectural considerations you should make in your application. Finally,
you’ll learn how to migrate existing workloads to Azure SQL Database Hyperscale.
This book is intended for data architects, software engineers, cloud engineers,
and site reliability engineers and operators to learn everything they need to know to
successfully design, deploy, manage, and operate Azure SQL Database Hyperscale.
You’ll learn what makes Azure SQL Database Hyperscale architecture different
from a more traditional database architecture and why it’s important to understand the
architecture.
To get the most out of this book, you should have a basic knowledge of public cloud
principles and economics as well as a fundamental knowledge of Azure, Microsoft SQL
Server, and RDBMSs. It is not required to have experience using Azure SQL Database.
This book will provide you with everything you need to know to effectively build and
operate the Hyperscale tier of Azure SQL Database without prior experience.

xv
Introduction

Although this book covers concepts that apply to Azure SQL Database in general,
it is intended to provide everything you need to know to run an Azure SQL Database
Hyperscale tier in Azure without requiring any other material. You may find content that
is covered in other more general books on running SQL in Azure, but this book looks at
these concepts through the Hyperscale lens. Hyperscale has special use cases that make
it unique, which also require specific knowledge to get the most out of it.
Thank you for venturing into the world of Hyperscale database technology.
A note about the recently announced automatic compute scaling with serverless for
Hyperscale in Azure SQL Database: At the time of writing this book, the possibility of
an automatically scaling Hyperscale with a serverless compute tier was merely an item
on the roadmap. We did not, therefore, cover it in detail, even though we were aware it
was planned. However, serverless Hyperscale has just arrived in public preview. This
development does not change the guidance provided in this book, but serverless should
be considered for Hyperscale workloads that need high levels of elasticity. It is yet another
tool in the amazing array of data storage services available in Microsoft Azure and should
be on your list of considerations when determining if Hyperscale is right for you.
Serverless Hyperscale automatically adjusts the compute resources of a database
based on its workload and usage patterns. It also allows different replicas of the
database to scale independently for optimal performance and cost efficiency. Serverless
Hyperscale is different from provisioned compute Hyperscale, which requires a fixed
number of resources and manual rescaling.
For more information on the serverless Hyperscale announcement, see this page
https://techcommunity.microsoft.com/t5/azure-sql-blog/automatic-compute-
scaling-with-serverless-for-hyperscale-in/ba-p/3624440.

xvi
CHAPTER 1

The Journey to
Hyperscale Architecture
in Azure SQL
Every day, many billions or even trillions of transactions are processed by the ever-­
growing number of Azure SQL databases deployed globally in the Microsoft Azure public
and government clouds. The number of transactions and the size of these databases
are continuously increasing. The accelerating adoption of public cloud technology has
enabled new use cases for Azure SQL databases as well as the migration of larger line-of-­
business applications from on-premises SQL servers.
As the public cloud continues to mature, businesses are moving more of their
mission-critical workloads to Azure. This results in the need to support larger and larger
databases.
Accompanying this move to the cloud, the demand for IT departments and
engineering teams to provide more application features with greater resilience and
security has also increased. This pressure has caused organizations to look at how
they can cut down on the operational costs of maintaining their infrastructure. The
requirement to reduce operational expenditure has led toward running more databases
as platform-as-a-service (PaaS) solutions—where the cloud provider takes care of the
day-to-day operations of the infrastructure—freeing the organization to focus on higher-­
value tasks.
As well as the migration of enterprise-scale databases, an increase in the adoption
of software-as-a-service (SaaS) solutions by consumers and organizations has led to
SaaS providers needing larger databases, higher transaction throughput, and increasing
resilience—while also being able to scale quickly.

3
© Zoran Barać and Daniel Scott-Raynsford 2023
Z. Barać and D. Scott-Raynsford, Azure SQL Hyperscale Revealed,
https://doi.org/10.1007/978-1-4842-9225-9_1
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

This explosive shift by organizations to adopting SaaS has also facilitated a need by
SaaS providers to manage costs as they scale. This has often resulted in a change from a
single database per tenant to a multitenant approach. A multitenant approach can help
to reduce costs, but it also increases the need for larger capacities and throughput, while
being able to assure isolation and avoid challenges such as noisy neighbors. For an in-­
depth explanation on that, see https://learn.microsoft.com/azure/architecture/
antipatterns/noisy-neighbor/noisy-neighbor.
The growth trend toward SaaS is expected to continue as organizations and SaaS
providers accommodate the expectations of their customers to gain greater value
from their data with analytics and machine learning. This growth in demand for better
analytics and machine learning abilities also facilitates the need to collect more data,
such as usage telemetry and customer behavior data.
New types of application workloads and patterns, such as event streaming
architectures and the Internet of Things (IoT), have also increased the demands on
relational database management systems. Although alternative architectures exist to
reduce the impact of these application workloads on the relational database, they don’t
completely mitigate the need for larger relational databases as a part of applications.
Customers are expecting solutions that can integrate with and accept data from other
services and data sources. This is leading organizations and SaaS providers to build a
greater level of integration into their software and also to be seen as platforms with an
ecosystem of third-party applications and extensions springing up around them. This is
further pushing the scale and elasticity required by the relational database management
system (RDBMS) underlying these platforms.
Applications are also consuming data from more and more systems and providing
their own combined insights and enhancements. For example, applications that
integrate with Microsoft Teams might retrieve calling and messaging data and combine
it with other data sources to provide additional functionality. As the volume of data
increases within these systems, so does the need for more capacity in the application
database that collects it.
Azure provides the Azure SQL Database service, a PaaS product, that includes
several different tiers offering options for capacity and resilience while also enabling a
high degree of scale.
The changing data landscape, driven by the cloud, SaaS, and newer workloads, has
resulted in the need for a design change to the Azure SQL Database architecture to be
pushed to the limit, requiring a completely new internal architectural approach: the
Hyperscale architecture.
4
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

Hyperscale is the newest service tier of the Azure SQL Database and provides
highly scalable compute and storage that enables it to significantly exceed the limits of
the other tiers of service. This is achieved by substantial alterations to the underlying
architecture. These changes are discussed in more detail in Chapter 2.

Tip Throughout this book we’ll often refer to the Azure SQL Database Hyperscale
service tier as just Hyperscale to make it easier on you, the reader.

At its core, Hyperscale helps us address these changing requirements, without


the need to adopt radically different architectures or fundamentally change our
applications—which in this new world of high demand for applications and features is a
great thing.

SQL on Azure
It’s been a long and progressive journey of more than 12 years from the beginnings of
Azure SQL called CloudDB all the way up to the new Azure SQL Database Hyperscale
service tier and Hyperscale architecture.
Before we can get into the details of Hyperscale, we will start by looking at the
different ways that SQL workloads can be hosted in Azure. This will give us a view of
where Hyperscale fits within the portfolio and when it is a good choice for a workload.

The Basics of Azure SQL


There are many benefits to hosting your data workloads in the cloud. Whether you
want to utilize modern cloud offerings using Azure SQL Database, migrate an existing
workload and retain your current SQL Server version running on an Azure virtual
machine (VM), or simply adopt the newest SQL Server features, Azure SQL might be the
right choice for you.
Fundamentally, there are two distinct ways SQL workloads can be deployed in Azure.

• As infrastructure as a service (IaaS) using SQL Server on Azure VMs


• As a platform as a service (PaaS) using Azure SQL Database (DB) or
Azure SQL Managed Instance (MI)

5
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

Both Azure SQL deployment types (IaaS and PaaS) offer you redundant, secure, and
consistent cloud database services. However, with IaaS you are responsible for more of
the system, requiring a greater amount of effort from you in maintaining and ensuring
the system is resilient and secure.

Tip Azure SQL MI is a PaaS database service with a higher level of isolation and
compatibility with SQL Server on Azure VMs or on-premises SQL Servers.

Running SQL Server on Azure VMs provides you with the ability to configure every
aspect of the underlying infrastructure, such as compute, memory, and storage as well
as the operating system and SQL Server configuration. This high level of configurability
comes with an increased operational cost and complexity. For example, operating
system and SQL Server upgrades and patching are the user’s responsibility.
By comparison, Azure SQL DB (and Azure SQL MI) is a managed database service
where users do not need to worry about SQL Server maintenance tasks—such as
upgrades, patching, or backups—or service availability. The Azure platform abstracts
and manages these important aspects of your environment automatically, significantly
reducing operational costs and complexity. This often results in a much lower total cost
of ownership (TCO).
Generally, PaaS provides significant benefits that make it extremely attractive;
however, in some cases, IaaS is still required. Some applications might need access to the
underlying SQL instance or features of SQL Server that are not available on Azure SQL DB.

Tip For some workloads that need features that Azure SQL DB does not provide,
Azure SQL MI might still be an option. This could still allow the workload to be
moved to Azure, while leveraging the significant benefits of PaaS. For a comparison
between Azure SQL DB and Azure SQL MI features, see https://learn.
microsoft.com/azure/azure-sql/database/features-comparison.

Workloads that are being migrated from on-premises or a private cloud often require
IaaS when they are first migrated into Azure but will be able to be re-platformed onto
Azure SQL DB after some modernization. The benefits of this usually far outweigh the
engineering costs of modernization. Another reason that IaaS might be needed is to gain
a higher level of infrastructure isolation for regulatory compliance reasons.

6
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

Figure 1-1 compares the administration needs and costs of on-premises, private
cloud machines, IaaS, and PaaS. We can see that PaaS has lower administration needs
and costs than IaaS.

Figure 1-1. Continuum of cost and administration of different hosting models

We will be focusing primarily on Azure SQL DB, as this is the only deployment model
that supports the newest service tier: Hyperscale.

Azure SQL Platform as a Service


When you select Azure SQL PaaS, you are getting a fully managed database service.
Whichever deployment model you choose, you will always have some level of
redundancy, starting with local redundancy and if available zone or geo-redundancy.

7
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

There are four key decisions you need to make when deploying a SQL workload
on Azure.
1. Choose a deployment model.
2. Specify a purchasing model.
3. Specify a service tier.
4. Choose an availability model; this will depend on which service
tiers you deployed.

Figure 1-2 shows a map of the deployment models, purchasing models, service tiers,
and availability models available when selecting Azure SQL PaaS. As this book is all
about Hyperscale, the most important area is the Hyperscale service tier.

Figure 1-2. Azure SQL DB deployment models, purchasing models, service tiers,
and availability models
8
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

Deployment Models
The PaaS deployment models are divided into two types.

• Azure SQL Database

• Azure SQL Managed Instance

When you deploy an instance of Azure SQL DB, you have two deployment options:
a single database or elastic pools. When using elastic pools, you can allow multiple
databases to share a specified number of resources at a set price.

Tip Elastic pools are an excellent model for building SaaS applications, where
each tenant has their own database; however, elastic pools don’t currently support
Hyperscale.

Azure SQL MI offers both single-instance and instance pool deployment options.
Single instance supports only a single SQL Server instance, while instance pools allow
multiple SQL Server instances.
Table 1-1 shows the deployment options available with Azure SQL PaaS, as well as
the features and recommended use cases.

9
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

Table 1-1. Azure SQL PaaS Deployment Options


Managed Instances Databases
Single Instance Instance Pool Single Database Elastic Pool
• Fully managed service.
• Minimum four • Hosting instance • Hyperscale Service • Price optimization—
vCores per instance. with smaller core tier availability. shared resources.
• 16TB size storage number (two • Serverless compute • Ability to limit
for the General vCores). tier for the General necessary resources
Purpose service tier. Purpose service tier. per database.

• Supports most on-premises instance/ • The most used SQL Server features are
database-level capabilities. supported.
• High compatibility with SQL Server • 99.99 percent to 99.995 percent availability
on-­premises. guaranteed.
• At least 99.99 percent availability • Built-in backups, patching, recovery.
guaranteed. • Latest stable database engine version.
• Built-in backups, patching, recovery.
• Latest stable database engine version.
• Easy migration from SQL Server.

Tip You can use the Azure Portal to check the usage and properties for an
existing MI pool, but not to deploy a pool. Instead, use a PowerShell session or the
Azure CLI.

Purchasing Models and Service Tiers


Within Azure SQL all deployment offerings are provisioned on virtual infrastructure.
Purchasing models and service tiers define the back-end hardware capabilities for specific
deployments, such as machine instance and CPU generation, vCores, memory, and
capacity. You need to consider the ideal hardware configuration based on your workload
requirements. The exact offerings can vary depending on your deployment region.

10
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

Figure 1-3 shows the compute tier and hardware configuration for the General
Purpose service tier for the Azure SQL Database deployment option.

Figure 1-3. Service and compute tier: Azure SQL DB General Purpose service tier

There are two different purchasing models—vCore and DTU—each with multiple
service tiers. The DTU purchasing model is based on data transaction units (DTUs).
DTUs are a blended measurement of a machine’s specifications—CPU, memory, reads,
and writes. Figure 1-4 shows available purchasing models and service tiers for single
Azure SQL Database deployment.

11
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

Figure 1-4. Single Azure SQL DB purchasing models and service tiers available

Tip For more information on DTU modeling, review this page: https://learn.
microsoft.com/azure/azure-sql/database/service-tiers-dtu.

There are multiple service tier options within the DTU purchasing model:

• Basic: Use for less demanding workloads: up to 5 DTU, up to 2GB


data, read latency of 5ms, and write latency of 10ms.

• Standard: Use for workloads with typical requirements: up to 3000


DTUs (S12), up to 1TB data, read latency of 5ms, and write latency
of 10ms.

• Premium: Use for I/O-intensive workloads: up to 4000 DTUs, up to


4TB data, read and write latency of 2ms, read scale-out and zone-­
redundant options available.

The vCore purchasing model represents a choice of specific virtual hardware


specifications. You select the generation of the hardware—starting with the CPU
configuration, number of cores, maximum memory, and storage capacity. This model is
transparent and cost efficient and gives you the flexibility to translate your on-premises
workload infrastructure requirements to the cloud.

12
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

There are multiple service tier options within the vCore purchasing model.

• General Purpose

• Azure SQL DB: 2–128 vCores, up to 625GB memory, and up to


4TB data.

• Azure SQL MI: 4–80 vCores, Standard-series 5.1GB RAM/vCore,


and up to 16TB data. Premium-series 7GB RAM/vCore, and up to
16TB data.

• Azure SQL DB Serverless: 0.5–80 vCores, up to 240GB memory,


and up to 4TB data.

• Business Critical

• Azure SQL DB: 2–128 vCores, up to 625GB memory, and up to


4TB data.

• Azure SQL MI: 4–80 vCores, Standard-series 5.1GB RAM/vCore


and up to 4TB data. Premium-series 7GB RAM/vCore, and up to
16TB data.

• Hyperscale

• Standard-series (Gen5): 2–80 vCores, up to 415GB memory, and


up to 100TB data.

• Premium-series: 2–128 vCores, up to 625GB memory, and up to


100TB data.

• Premium-series memory-optimized: 2–128 vCores, up to 830GB


memory, and up to 100TB data.

• DC-series (enables confidential computing): 2–8 vCores, up to


36GB memory, and up to 100TB data.

You can choose the vCore purchasing model only for managed instances with the
General Purpose or Business Critical service tier.

Availability Models and Redundancy


There are two main availability models in Azure SQL PaaS offerings.

13
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

• Standard: Separates compute and storage tiers. It relies on the


high availability of the remote storage tier. This can result in some
performance degradation during maintenance activities, so it is
suitable for more budget-conscious users.

• Premium: Like the Always On availability option for VMs. It relies on


a failover cluster of database engine processes. It is more reliable as
there is always a quorum of available database engine nodes. This
suits mission-critical applications with high I/O performance needs.
It minimizes any performance impact to your workload during
maintenance activities.

Depending on which service tiers you deployed, it may leverage the Standard
availability architecture for the Basic, Standard, and General Purpose service tiers or the
Premium availability architecture for the Premium and Business Critical service tiers.
There are three types of redundancy when running SQL workloads in Azure.

• Local redundancy: All Azure SQL PaaS deployments offer local


redundancy. Local redundancy relies on the single data center being
available.

• Zone redundancy: This replicates a database across multiple


availability zones within the same Azure region. Azure availability
zones are physically separate locations within each Azure region that
are tolerant to local failures. To enable zone redundancy, you need to
deploy your services within a region that supports availability zones.
This protects your workload against failure of a single availability
zone. For more information on Azure availability zones, see this page:
https://learn.microsoft.com/azure/availability-zones/az-
overview.

• Geo-redundancy: There are multiple ways to achieve geo-redundancy


using failover groups (FOGs) or active geo-replication. Geo-­
replication is an Azure SQL Database business continuity and
disaster recovery feature (asynchronous replication). This protects
your workload against failure of an entire region.

14
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

Tip Zone-redundant configuration is available only for Azure SQL Database


deployment and only for Gen5 hardware or newer. Using zone-redundant
configuration with SQL Managed Instance is not currently supported.

Depending on which service tier you select, it may leverage either the Standard or
Premium availability architecture model.

• Standard availability model: DTU purchasing model Basic and


Standard service tiers and vCore purchasing model General Purpose
service tier

• Premium availability model: DTU purchasing model Premium


service tier and vCore purchasing model Business Critical
service tiers

 tandard Availability Model: Locally


S
Redundant Availability
Basic, Standard, and General Purpose service tiers leverage the Standard availability
model, which offers resilience to failure using locally redundant remote Azure Premium
storage to store data and log files (.mdf and .ldf files). Backup files are stored on geo-­
redundant Azure Standard storage. High availability is accomplished in a similar way
for the SQL Server Failover Cluster Instance (FCI), by using shared disk storage to store
database files.
Figure 1-5 shows the Azure SQL PaaS Standard availability model architecture used
by the Basic, Standard, and General Purpose service tiers.

15
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

Figure 1-5. Azure SQL PaaS Standard availability model architecture

General Purpose Service Tier: Zone-­Redundant Availability


Like Basic and Standard, the General Purpose service tiers leverage the Standard availability
model. In addition to local redundancy, which is included with all Azure SQL PaaS
deployment options, the General Purpose service tiers can offer zone redundancy as well.
This provides resilience to failure across different availability zones within the same
region. Zone-redundant configuration for serverless and provisioned General Purpose
tiers are available in only some regions.

16
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

Tip Be aware that with the General Purpose service tier, the zone-redundant
option is available only when the Gen5 (or newer) hardware configuration is
selected. Selecting zone redundancy incurs an additional cost.

Figure 1-6 shows the Azure SQL PaaS Standard availability model with zone
redundancy used by the General Purpose service tier.

Figure 1-6. Azure SQL PaaS Standard availability model with zone
redundancy enabled

17
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

 remium and Business Critical Service Tier: Locally


P
Redundant Availability
The Premium and Business Critical service tiers leverage the Premium availability
model, which offers resilience to failure using multiple replicas in synchronous data
commit mode. Every replica has integrated compute and storage, which means that
every node has an attached solid-state disk (SSD) with databases and log files on it (.mdf
and .ldf files). High availability is accomplished in a similar way as with SQL Server
Always On availability groups, by replicating nodes across the cluster using synchronous
data commit mode.
Figure 1-7 shows the Azure SQL PaaS Premium availability model architecture used
by the Premium and Business Critical service tiers.

18
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

Figure 1-7. Azure SQL PaaS Premium availability model architecture

 remium and Business Critical Service Tier:


P
Zone-­Redundant Availability
As mentioned earlier, the Premium and Business Critical service tiers leverage the
Premium availability model, which offers resilience to failure using multiple replicas
in synchronous data commit mode. Moreover, the zone-redundant deployment option
provides additional resilience to an Azure availability zone (AZ) failure, if the failure is

19
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

confined to a single AZ rather than an entire region. High availability is accomplished


in a similar way for SQL Server Always On availability groups, replicating nodes across
multiple availability zones in synchronous data commit mode.

Tip Azure SQL Database service tiers using the Standard availability model
provides a greater than 99.99 percent uptime availability guarantee. Nevertheless,
Premium and Business Critical service tiers—leveraging the Premium availability
model with zone-redundant deployments—provide a greater than 99.995 percent
uptime guarantee.

Figure 1-8 shows the Azure SQL PaaS Premium availability model with zone
redundancy enabled for the Premium and Business Critical service tiers.

20
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

Figure 1-8. Azure SQL PaaS Premium availability model with zone
redundancy enabled

 rotecting Against Regional Outages Using Failover


P
Groups with Geo-redundant Availability
To protect your SQL instance against failure of an entire Azure region and to achieve
geo-redundancy with good disaster recovery capability, you can use failover groups.
Failover groups enable asynchronous replication between multiple Azure regions (or
within regions).

21
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

Figure 1-9 shows geo-replication using failover groups via asynchronous replication
between multiple Azure regions.

Figure 1-9. Geo-replication between multiple Azure regions using failover groups

The Hyperscale Service Tier


A traditional monolithic cloud architecture has its purposes but has several limitations,
in particular relating to large database support and length of recovery time. For the
past decade, Microsoft has been aiming to develop a new architecture model that can
override these issues.

22
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

The goal of the new model has been to decouple compute, storage, and log services,
while at the same time offering highly scalable storage and compute performance tiers.
At the time of writing, there is an Azure SQL database deployment model and the
Hyperscale service tier under the vCore purchasing model, which leverages a new
architecture, which in this book we will call the Hyperscale architecture.
Table 1-2 compares the traditional Azure SQL architecture and the Azure Hyperscale
architecture.

Tip Hyperscale is available only under the Azure SQL Single Database


deployment option; you cannot use the Hyperscale service tier with elastic pool
deployment.

Table 1-2. Traditional Azure SQL Architecture vs. Azure Hyperscale Architecture
Traditional Architecture Hyperscale Architecture

Max Azure SQL DB: 4TB. 100TB.


Storage Azure SQL MI Business
Size Critical: 5.5TB.
Azure SQL MI General
Purpose: 16TB.
CPU Up to 128 vCores. Standard-series (Gen5): Up to 80 vCores.
Premium-series: Up to 128 vCores.
Memory Standard-series (Gen5): Standard-series (Gen5): up to 415.23 GB memory.
up to 625 GB memory. Premium-series: up to 625 GB memory.
Premium-series (memory optimized): up to 830.47 GB
memory.
Latency Premium availability Latency can vary and mostly depends on the workload and
model: 1–2ms. usage patterns.
Standard availability Hyperscale is a multitiered architecture with caching at
model: 5-10ms. multiple levels, data being accessed primarily via a cache
on the compute node. In such cases, average latency will
be similar as for Business Critical or Premium service tiers
(1–2ms).
(continued)
23
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

Table 1-2. (continued)

Traditional Architecture Hyperscale Architecture

Log Depending on vCores 105MB/s regardless of the number of vCores.


Throughput number.
Up to 96 MB/s per node.
Log Size Up to 1TB log size. Unlimited log size.
Read 1 read scale-out replica. Up to 4 HA/Read scale-out replicas.
scale-out Up to 30 named replicas.
Backup Depending on database Snapshot-based backup and restore operations do not
and size. depend on database size.
Restore

Tip The main question you should ask yourself is whether your data workload
demands are exceeding the limits of your current Azure SQL service tier—in which
case you might consider moving your data workload to a more suitable service tier
such as Azure SQL Hyperscale, leveraging the Hyperscale architecture scale-out
capability.

Hyperscale Architecture Overview


Azure SQL Hyperscale utilizes the four-tier architecture concept, which includes the
remote durable storage service to achieve superior performance, scalability, and
durability. Figure 1-10 shows the four-tier Hyperscale architecture concept of decoupling
the compute layer from log services and scale-out storage.

24
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

Figure 1-10. Four-tier Hyperscale architecture concept

Deploying Your First Hyperscale Database


Now that we have covered the basic options available when deploying a SQL workload
in Azure, it’s time to provision our very first Hyperscale database. For this, we’re going to
use a user interface–driven process in the Azure Portal.

25
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

Tip Deploying services using the Azure Portal is a great way to get started,
but it is strongly recommended that as you mature in your use of Azure, you
adopt infrastructure as code. To learn more about infrastructure as code,
refer to ­https://learn.microsoft.com/devops/deliver/what-is-
infrastructure-as-code. We will favor using infrastructure as code in the
examples throughout this book.

You will need access to an Azure subscription that you have appropriate permissions
to create new services in. The Contributor or Owner role in the Azure subscription will
be adequate permissions. If you’re not the subscription owner, you should first check
with the account owner for the subscription if you may deploy a Hyperscale database as
there will be a cost for every hour that you have the service deployed.

Tip If you don’t have access to an Azure subscription, you can sign up for a free
Azure one with USD $200 credit to use within 30 days; see https://aka.ms/
AzureFree. After you have consumed the USD $200 credit, the free services will
still be available to you for one year, but unfortunately the Hyperscale tier of Azure
SQL DB is not currently among the free services.

The Azure Portal is under constant improvements, and it is quite possible that the
user interface you see by the time this book is released will be slightly different. But
the fundamental elements should remain. That is a reason why we will provide many
examples as code.
In our example, we’re going to deploy a zone-redundant Hyperscale database with
two vCores running on Gen5 hardware in the Azure East US region with one high-­
availability secondary replica.
So, let’s get started.
1. Open your browser and navigate to https://portal.azure.com.
2. Sign in using credentials that give you access to the Azure
subscription you’ll be deploying your Hyperscale database into.
3. Click the “Create a resource” button in the home dashboard.

26
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

4. Click Create under SQL Database on the “Create a


resource” blade.

5. The Create a SQL Database blade will open showing the Basics
configuration options of our database.

27
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

6. Make sure Subscription is set to the name of the subscription you


have permission to deploy into.

7. Set the resource group to an existing resource group that you want
to create your Hyperscale database into or click New to create
a new resource group. In our example, we are going to create
our hyperscale resources in an existing resource group called
sqlhyperscalerevealed-rg that is in the Azure East US region.

8. Enter the name of the Hyperscale database to create in the


“Database name” box. We are using hyperscaledb for this
example.
9. Although Azure SQL Database is a PaaS service, there is still
an underlying SQL Database server. We need to create a new
logical instance of a SQL Database server by clicking the “Create
new” button.

28
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

10. Every SQL Database server must have a unique name, not just
within our environment, but globally. For this example, we are
using sqlhyperscalerevealed01, but you should use a name that
is likely to be globally unique.

11. Set the location to the Azure region in which you want to deploy
the SQL Database server. This is the Azure region where your
Hyperscale database will be stored and should usually be as
geographically close to your application or users as possible.

Important Azure SQL Database Hyperscale is enabled in most Azure


regions. However, if it is not enabled in the region you chose, select an
alternate region, or see this page for more information: https://learn.
microsoft.com/azure/azure-sql/database/service-tier-
hyperscale?view=azuresql#regions.

12. Set the authentication method to “Use only Azure Active Directory
(Azure AD) authentication.”

Tip You can choose to use SQL authentication or to use both SQL and Azure AD
authentication, but it is recommended you use Azure AD authentication to enable
the central management of identities. However, some third-party applications may
not support this. We will cover security best practices in detail in Chapter 15.

13. Click the “Set admin” button to select the Azure AD user or
group that will be granted the admin role on this SQL Database
server. But for this example, we will select our own Azure AD user
account to be the admin.

Tip It is good practice to set the admin role to a separate Azure AD group that is
created for this SQL Database server. Membership in this group should be carefully
governed.

29
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

14. Click OK on the Create SQL Database Server blade.

15. We will return to the Create SQL Database blade to continue


configuration.

16. As noted earlier in this chapter, Hyperscale does not support


elastic pools, so specify No when asked if we want to use SQL
elastic pools.
17. Select the Production environment. This affects the default
compute and storage options that are suggested for the database.
However, because we are going to specify Hyperscale, we can’t
accept the defaults anyway.
18. Click the “Configure database” button. This will open the
Configure blade.

19. Set the service tier to “Hyperscale (On-demand scalable storage).”

30
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

20. The Hardware Configuration option should be set to “Standard-


series (Gen5).”

21. We can leave the vCores option set to 2.

22. Set High-Availability Secondary Replicas to 1 Replica.

23. Specify Yes when asked if you would like to make this database
zone redundant.

24. Click the Apply button.

25. We will return to the Create SQL Database blade again. We will not
change any of the other deployment options, such as Networking
and Security for this example, as we can change most of them
after deployment.

31
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

26. Click the “Review + create” button.

27. Review the estimated cost per month and scan through the
configuration to confirm we’re configuring what we expected.
There are ways to reduce the estimated cost per month (such
as purchasing reserved capacity), but these will be discussed in
Chapter 16.

Important The Azure SQL Database Hyperscale tier is billed hourly. So, once the
resources are deployed, you’ll begin to be billed. Deleting the database resource
will cause you to stop being billed, but you will be charged for at least one hour.

28. Click the Create button.

29. After a few seconds, our resources will begin to be deployed, and a
deployment progress window will be displayed.

32
Chapter 1 The Journey to Hyperscale Architecture in Azure SQL

30. Once the deployment has been completed, we can click the
sqlhyperscalerevealed01/hyperscaledb resource (or whatever
you called it in your subscription) to be taken directly to the
database.

31. We will be taken to the Overview blade of our new Hyperscale


database.

Congratulations! You have deployed your first Hyperscale database and can begin
to use it. There are other administrative tasks we would typically do from here, such
as granting access to the database and opening network access to our applications
and users, but they will all be covered in later chapters. For now, this is enough to
demonstrate just how easy it is to get a Hyperscale database up and running in Azure.

33
Another random document with
no related content on Scribd:
"That," growled Lindsay, "loses us Lacy and proves nothing."
"Not entirely," drawled Grant. "It does prove that whatever agency is
directing these things does not require the presence of this ship as a
tip-off."
"A lot of help that is."
"Well, I'm nominated for the next try. Unanimously. I'm the only one
voting any more."
Jenna gasped.
"What's the matter, Jenna?" asked Grant.
"I just realized that you were all that's left. Just like that—and in a few
hours. Poor Lacy."
"Lacy?" said Grant. "He—got his release. It's what he's wanted. May
we all find what we want as quickly."
"I hate to see any one courting death, though," said Jenna.
"My only regret for Lacy is that we don't know whether he—and
Garrard, by the way—went in the same way."
"Meaning?" asked Grant.
"The rest got it as they headed out to defuse the things," said
Lindsay. "At about a hundred feet. We can only assume that Garrard
and Lacy went in the same way. I'd like better than an assumption."
"Why?"
"A hundred feet is too distant to detect the human body without
radiation. It presupposes either a warning of some type or—" Lindsay
scowled and stopped. He mumbled something about a conference
with General Haynes. He stepped to the autopilot and set it for the
next location. Then he left to seek the privacy of his own office from
which to call General Haynes. As he left, Jenna lifted a worried face
to Jack Grant.
"Jack," Jenna said, "he doesn't trust me any more."
"It does look bad," said Grant. "After all, every one of them came in
your presence."
"They came in your presence, and his."
"Admitted. But—"
"I know," she said, with deep feeling. "But I can't help being Martian.
My loyalty is with Ralph."
"Jenna," said Grant softly, "we know that. All of us know it. Yet, there's
some agency that is tipping them off. There's been robombs at the
other sites for hours now, and not one of them has gone off. They're
tying up production until we arrive, and they'll continue to tie up the
area until we make a false move. Something or someone is giving
them the tip-off. I know it isn't me, you know it isn't you, and Ralph
knows it isn't him. The areas are completely cleared, but, of course,
there may have been watchers. But Garrard would have gone out
unlighted, and possibly Lacy would have done the same."
"Jack," she pleaded, "do you suspect me, too?"
"Jenna, you know I do. I rationalize myself, and tell myself that it isn't
so. But nevertheless, there is that lingering doubt. Evidence, Jenna.
Evidence."
"Jack, a criminal is considered innocent until proven guilty."
"Jenna, that's for the safety of all who may be accused. But
considering a man guiltless does not prevent people from making
charges. And there have been many occasions where the accused
was forced to go through a strenuous period before proving his
innocence. What they really mean is that they will not punish a man
against whom no true conviction is brought. Until he is convicted, he
can not be punished. And it is up to the authorities to prove his guilt. It
is also up to him to prove his innocence. But considering him
innocent permits his own testimony to be considered as valid as that
of any witness instead of marking it off of the books as the word of a
guilty man."
"And I?"
"Forgive me, Jenna. I think the world of you, and there is in me a
rather violent mental storm. One side—the larger side, insists that
you are loyal, and above reproach. The other side, that tells me to
beware of the woman in you, that if you were really clever and
treacherous, you would hurl these doubts out in the open and cause
suspicion to fall upon yourself. And, you are Martian. A sort of racial
instinct warns me. It's unfair, and I dislike myself thoroughly for it."
Tears welled in Jenna's deep eyes. "Jack, please. What can I do?"
"I don't know," he told her.
"I ... feel miserable," she sobbed.
"It's a tough load to bear," he said softly, putting a hand on her
shoulder.
"It's unfair," she said shakily. "Look, Jack, I know you too well to
believe that hard exterior. You put that on because you're excessively
soft inside and people can hurt you too easily if you're not careful. I
am like that, but I'm not as soft as you are."
Jack laughed a bit. It was a false laugh, designed to lift her out of the
doldrums.
It failed.
"For eight long years," she said earnestly, "I've taken from Ralph
everything that any woman would find ideal. I've had companionship,
tenderness, love and affection. Complete compatibility. He's met my
every mood. And not only because it will please me for him to mirror
my moods, but because he feels that way too, and his moods change
as mine do. He is absolutely happy to follow or lead me into any
change of mood and we're never far apart. I've been protected and
loved by the man I wanted. That's perfection.
"But for four of those years, I've been unable to reciprocate."
"Now, Jenna, that's not true."
"I love him—even more, now. And I'd do nothing to stand in the way
of his happiness. But Jack, remember I'm Martian and he is denied
his right to command a battle squadron. Because of me. He's stuck in
this noncombat group—because of my heritage. In all that time, he
has never shown it, yet he must know. If anything, he has become
more tender, more protecting, more affectionate. More tolerant. Yet
what can I do to give him release from this? Suicide isn't the proper
answer. That would deprive me of what I want, and his desire is not
completely to the service. But he cannot have his cake and eat it too."
"That's quite a load, Jenna," said Grant tenderly. "I hadn't realized."
"I ignore it, mostly. But there are times when it creeps up and gets
me. I wake at night, thinking deeply. I fret, and go sleepless, wishing
there were a way out."
"I think you've well made up for it."
"No," she said with a shake of his head. "He must feel denied of his
right to honor by his affiliation—made in the face of public objection to
mixed-marriage. I ... am now worse. An enemy alien."
"You are a Terran citizen," stated Grant.
"I have papers to prove it," she said scornfully. "And any doctor that
didn't see the papers but examined me perfunctorily would pronounce
me Martian. Ours will always be—a sterile marriage. It cannot be
otherwise. Yet until this shadow came, we were both happy."
"Poor Jenna," said Grant, putting her head down on his shoulder and
patting the back of it. "And now that the first doubt has crept in, the
rest of Pandora's Troubles all come roaring in through the initial
breach."
"And now this," she sobbed. "Grant, it's worse than torture."

Grant's mind whipped back and forth between several types of torture
he'd heard about and wondered what she meant.
"No amount of torture could pry a secret from you, could it?" she
asked.
"I like to think I'm that way," he said.
"You think a lot of me," she said. "Would you talk to save me from
torture?"
A bead of sweat popped out on Jack's forehead as he thought it over.
"That's a double curse," he said grimly. "You'd prefer torture to
misloyalty and I'd be torn between the two because it is against all
natural instincts for a male to harm a female. That's a forty-thousand-
year heritage, Jenna."
"Well," she said, "I'm in that position but I'm without the means to say
the word and relieve his torture."
"And he," said Grant, with feeling, "is pretty much in the same boat."
"Before this all happened there was enough to outweigh any doubt.
But I'm practically accused of treachery."
Grant smiled tolerantly. "Most of that is in your own mind," he said
gently. "You've kept your fears bottled up too long, and they're
fermenting into all sorts of questionings and worries."
"Then I'm not really under suspicion?"
Grant laughed. "My dear, if they're reading your mind without your
will, that's not treachery. Frankly, I've studied the problem myself, and
I know that such is impossible. In no known science has there ever
been a situation where a transmitter can be heard without the
transmitter aware of its output. By 'transmitter' I mean people talking,
men holding radioactives, radio, subradio, light, sound, and fury.
Furthermore, since unwitting aid is ruled out, if such aid is given, it is
given willingly. And that, Jenna, I refuse to believe."
"Truly?" she pleaded.
"I'll stake my life on it," he said. "All the evidence may be damning but
somehow, it's too pat. Coincidence may be a little strained, but far
from improbable in any sense. Fact of the matter is, Jenna, there's no
sense in going out on the Q-T. I'm going out with all recorders open
and working furiously, I'm going to record not only my ideas, but my
transient thoughts and my overt acts. I'll show 'em a bold front. And,
by showing a bold front, I'll win. And if I do not, you'll all know just
what goes on and you'll know how to act on the next one."
Grant laughed and shook the girl gently. He removed a handkerchief
from his breast pocket and dabbed her wet eyes with it, and told her
to get that elfin chin up again.
"Thanks," she whispered, the tears welling up again. "Thanks, Jack ...
for ... faith!"

When the door opened to admit Lindsay, her face was once more
composed. She put down her cigarette and said: "Any ideas, Ralph?"
His worried face grew darker. "It seems to get down to the problem of
defusing a bomb that explodes when you approach it with that intent."
Grant laughed. "As I said before, we can detonate 'em but it's hard on
the personnel."
"Oh, Jack!" cried Jenna.
"Well," he grinned, "it's true. And regardless of whether we lose a few
fellows who'd prefer death anyway, we are most definitely keeping the
production areas uncontaminated. That's something."
Lindsay scowled. "It's not good enough," he said. "A man's life should
be worth more than that."
Grant shook his head. "It's more than mere production, Ralph.
Production means many lives. And is one man's life worth more than
many men's?"
"To me, my life is."
Grant laughed, taking the sting out of his matter-of-fact statement,
"You're selfish."
Lindsay nodded glumly. "I admit it. How're you going to tackle that
one out there?"
"Boldly, brashly, and brazenly. Whatever agency is manipulating
these things will find me slightly different. I hope I'm confusing
enough to make them wonder."
"I wish—" said Lindsay.
"Forget it," said Jack. "I've got to go, and there's little sense in
stewing about it. I'll be back, and then we can handle the rest of these
things with ease. No chin up, fella. You're in the hot spot of doing a
hard job."
"I know," he muttered.
When he looked up, Grant had left.
Lindsay passed his hand over his face with the gesture of a
completely baffled and worn-out man. He looked up at his wife.
"Jenna," he pleaded, "is there—?"
"Don't you trust me, Ralph?"
"My whole being cries out to trust you, Jenna. But there is still
wonder."
"There is nothing I can say that will erase that. Nothing. If I am
actress enough to play treachery, I'm also liar enough to swear a
false oath."
Lindsay nodded.
"Nothing," she repeated dully.
"You think a lot of Grant," he said flatly.
"I've loved them all," she said.
"Grant more than the rest."
"Jack, despite his hard exterior, is an understanding soul."
"That may save him," muttered Lindsay.
"Ralph!"
The jocular voice of Jack Grant broke in: "I'm taking off in the battle
buggy now."
"And then again it may not," said Lindsay harshly.
"I'm not a machine, Ralph. I'm a woman."
"So was Circe!"
"Is that what you think of me?"
The loudspeaker chattered: "This is no road for a human being, folks.
They paved it with rubble, I think. My tools are rattling around like
mad. If any agency is using anything for detection, they're listening to
the rattle of machinery in this battle buggy."
Jenna and Ralph faced the radio panel and both hated it for its flat
tones. But they could not turn it off.
"He'll go like Roberts, like Harris," snarled Lindsay. "Like—Lacy."
"No!"
"We'll see," he said tritely.

Silence fell, and then the voice again: "I'm approaching the thing.
Y'know, it's fearfully quiet out here with the area evacuated and all
machinery stopped. The wall shields make the landscape unreal, like
the ghost-sequence in a horror movie. Terra was never intended to be
seen under a greenish light. You know how people look under
mercury vapor lights? That's how Terra looks, sort of."
"Jenna?"
"Yes Ralph."
"You're not ... you're not—?"
"What can I say?" she pleaded. "I'm only human."
He looked up bitterly. The question was in his eyes. He did not need
to voice it. Jenna knew what he was thinking. And he knew that she
understood, for the hurt was in her eyes.
"Hey!" came Grant's voice. "I've got us a mascot! C'mere, Ears. Nice
fella. 'Tis a woebegone pup, spaniel. Lonely and aching for someone
to scratch his tummy. Up, Ears! You're my good luck! The mutt is
sitting on the seat like he knew what it was all about. A sharp little
rascal. I'll bring him home to you."
Jack drove on, one hand on the wheel and the right hand on the
dog's head, stroking gently. Who, he wondered, would leave a pet in
a contaminated area? Abandoned to something that no dog could
possibly understand.
And he thought, briefly, that he and the dog were in the same boat.
"You can carry my tool bag," he told the pup over the rumble of the
battle buggy.
Jenna and Ralph listened to Grant talking to the dog. The man rattled
on, speaking lightly, caressingly to the animal, and his words were
banal to the tensity in the scanning room.
"I wish I knew," said Lindsay.
"Ralph, stop it!" cried his wife. "Stop playing around the point. If you
think I'm guilty, come out and say so!"
"I'm ... not certain."
"Have you no faith in me?"
"Jenna, I—"
"Folks, I'm stopping the buggy, and Ears and I will go over and see
that thing right now. So far, there's been no mental disturbances,
Jenna. That's the one thing I'm watching for."
Lindsay looked at her.
"I don't feel anything," she said. He wondered, again, and it was in his
face.
Her voice went out, and Grant answered. "If either of us feel anything
—?"
"I'll let you know," she promised.
"Will you?" muttered her husband.
"I will," she blazed at him.
"Lindsay," snapped Grant, "get off of it! Jenna has no more treachery
in her soul than I have, and I know my own heart!"
Ralph Lindsay calmed. Jenna looked at him and knew that the man
outside was a sort of safety valve. Her husband was on the verge of
breakdown, she guessed, and she was in a nervous state herself.
The man out there had been holding the group together for hours,
now. What would happen if he went—?
"No!" she pleaded.
But something inside of her knew that he would go, like the rest.
"No!" she said with a half-scream.
"'No' what?" asked Lindsay.
"Grant mustn't!"
Lindsay looked at her. "Isn't that his job?" he said flatly.
"Yes, but—"
"Perhaps you can fix it," said her husband cynically. She looked at
him in disbelief. Was this the man she loved?
Then he turned the knife in the wound. "Or," he said vindictively, "is
that your job?"
"Lindsay, shut up, you fool!"
Lindsay opened his mouth and then closed it again. "Trouble with
you, Lindsay, is that you've a rankle or two in your system which
should have been burned out a long time ago. You poor fool, don't
you know that every man reaches a crossroad every day? There's not
one of us who mustn't give up something to get something else.
That's why we have asylums—for people who can't make up their
minds, or people who dislike their decisions and try to go back,
mentally. The normal man accepts his decision and uses that as
experience in making the next one, instead of sitting there, spending
his life wondering what if he'd taken the other road. Add up your life,
Lindsay, and see whether the credits are better than the debits. You
can't have everything!"
Then the tone of his voice changed.
"I'm leaving the battle buggy now, and Ears and I are approaching the
thing. I have no fear of it, really. I'm ... curious. What makes these
things go off? This, fellers, is a physical phenomenon, developed by
human beings—"
"Martians," corrected Lindsay.
"They're classified as human," snapped Grant. "And a lot of them are
more human than the pure-white Terran. Spinach, I call it. Anyway,
there is a simple explanation for all this and when it is uncovered, all
of your rantings and ravings will go to pieces like a bit of charred
paper. Call it telepathy if you want—I'm not discounting though I'm
skeptical—but I don't feel any warnings yet."
Jenna sat down, closed her eyes, and composed her body into a
relaxed pose. She said nothing. Lindsay noted, and said: "Keep it
coming, Grant."
"Well," said Grant, "we're at the critical hundred feet, Ears and I.
Come here, mutt! That thing is dangerous! Dog doesn't care, folks.
Y'know, there's nothing like having a mutt around to teach you faith.
Jenna?"
She opened her eyes. "Yes?"
"I'm going in! You're Martian and you're sensitive. Maybe you can
catch the backwash if there's any mental shenanigans."
"I'll try."
"Believe it now?" called Lindsay.
"Not entirely. But I'm not missing any bets. Now, I am taking my little
hatchet in one hand and I'm going out to ... Jenna! You—!"
The storm burst, the sky flared bright, and the waves of sheer energy
beat the ship, stormed in through the windows and the radiation
counter shrilled madly. The pillar of fire mounted like a rolling cloud,
reaching for the sun.
"Grant," said Lindsay with a dry throat.
Jenna sobbed.
"What did he mean?" demanded Lindsay.
Jenna shook away her tears, swallowed deeply. "I know," she said. "I
know."
"You—?"
"I caught it," she said.
"Then it was you," he snapped harshly. "Tell me, Jenna, what kind of
enticement did you use to get him going?"
"You fool," she snarled at him. "Blind, stupid fool." She stood up,
blazing. "Yes," she said. "I've taken all you gave me, and took it
gladly, happily. And I hoped that I could make up to you for ... for ...
causing your loss. Yet you've never forgotten that I'm Martian, and
that if you'd married a Terran you could have the plaudits and the
admiration due any fighting officer. That's rankled in your soul until
you hate me!" she screamed. "And what could I do? I'd have made it
up to you," she said, her voice quieting, "but I didn't know how. And
now you think I'm responsible. Well," she said accusingly, "how do I
know but that you are planning revenge on Terra for being blind."
"Jenna, you—"
"Well, I do know. And if you think that I'm—"
"What do you want me to think?" he asked her. "What were Grant's
last words?"
"He—"
"Accused you!"
Jenna turned quietly. She stopped at the door. "I solved one fuse
because I thought Martian," she said quietly. "I'll solve the next one
for you! You've wanted to be free to join the Corps in space. Then
follow me close, because when I solve this one there will be no
question."
"Jenna—what is it?"
"It is the fuse itself," she said. "A rudimentary brain that reacts upon
receiving any thought of removal when that thought originates within
a hundred feet or so."
"Utterly fantastic!"
"Is it?" she asked. "Watch!"

Jenna passed through the door and left. Moments later, the whine of
a skyplane crescendoed and diminished. Jenna was heading for the
next site. Lindsay sat for a long time, his mind whirling.
Jenna was right. He'd been fretting over his denial of the right to
command. It hadn't been fair. A group of psychoneurotics—
commanded by one. Himself. Not denied the right to command
because of his wife, but because of his psychotic nature. For one,
any Terran who would enter a mixed-marriage was not possessed of
the normal adjustment, and the same true of any Martian. Secondly,
were he normal, fighting in combat would produce a psychotic
condition since he'd be set against his wife's countrymen.
He leaped up and ran to the driving panel. Harshly he threw the
autopilot out of gear and took the controls himself. The ship took off
raggedly and hissed through the upper air, racing.
"Jenna!" he called into the radio.
No answer.
"Jenna! Turn on your receiver! Please," he begged.
No answer.
His trembling hands turned up the power and the ship shuddered at
the overload drive. The upper air shrilled against rivet head and port
sill. The burble point came and the ship shook and rattled terribly. Yet
he knew that he had but an even chance. For Jenna was driving a
superspeed plane that could race as fast as the big ship—with less
danger in atmosphere.
No spacecraft was made to travel horizontally across a planet. But
Ralph Lindsay in a frenzy, swore at the sidelong pace, and turned his
ship to arrow through the upper air. The burble died, but throughout
the ship came the rattle of falling objects, dumped from table and
shelf.
He continued to cry into the microphone, and strained his ears for the
answer that was not there.
He depressed the nose of the ship and went into a steep, screaming
dive.
He—saw her. A minute speck, even through the telescope.
And at the moment he saw her, she stepped from the plane onto the
ground, and spoke to him through the radio.
"I've no receiver on, Ralph. But listen—and stay back!"
"Jenna!" he screamed.
"Your duty, remember?" she said quietly. "It is to solve these—things.
Your duty, I took away, and now I will return it."
"Jenna!" he pleaded. "I don't want—"
In futility, he gave up. She could not hear. An hypnosis took him, held
him in its grip.
"Ralph," she said. "Watch carefully."
He shook himself.
Angrily, he fought the controls. Madly he tried to urge another dyne
from the drivers. He would be—too late.
"Jenna! Don't!"
"Ralph, I'm approaching the bomb. I am now seventy feet from it.
See?"
Seventy feet?
"I'm seventy feet from it, Ralph, because I've thought only of you. Not
once have I thought of defus—"
The blast caught the diving ship and stopped it in its tracks, turned it
end for end and sent it rocketing crazily away from the mad scene of
turbulence. It arched high into the sky, tumbling. Numb, Lindsay
reacted automatically. War, hatred, suspicion. All boiled up in his
mind.
The answer? It was clear, finally. The how and the why and the
wherefore. His problem—solved.
But the solution was bitter in his mouth.
Instinctively driving the ship toward the next site Lindsay's eyes still
saw the pathetic figure silhouetted against that intolerable blast.
Solution? She had given him both solutions.
His mind went back through the years. She'd been his, completely.
He'd known all the happiness any man needed. Now he was free to
take his place—and he didn't want it. What was honor? A mind,
clinging to its own ideals. Was there more honor in clinging to his
choice or in becoming a public figure, abandoning his choice.
No, Jenna hadn't given it to him. He'd taken it.
More balance, more sensible evaluation of his own set of desires
would have kept him from driving her—

He landed his ship flatwise, furrowing the ground. Blindly, he looked


across the field toward the—ticking thing.
"Blast!" he snarled at the thing.
He selected tools. Then he faced it again. "Go ahead. Explode."
Briefly, he wondered how it would feel—and if any feeling were
possible in microseconds.
"I'm coming," he told it.
He hit it a ringing blow with a sledge hammer. "Blast!" he cried angrily.
Down within the robomb, a lacery lacework of silver in a mass of
complex hydrocarbon dielectrics sent impulses along flowing
filaments of metal to other shapeless tangles of silver globs.
Countercurrents flowed back and the filaments of metal became a
tangled highway of multi-purposed impulses. Countercurrents
canceled and mixed with flowing currents, creating new wave shapes
that flowed in both directions from the mixing point, and the silver-
shot masses at either end of the multitudinous filamentary
transmission lines accepted the false wave shapes, became
confused by their unfamiliarity, and sent forth more shapes of
meaningless nature.
It was unable to cope with a situation whereby it was commanded to
explode. The right act—upon that stimulus—had not been taught—
built into—it.
And still the thoughts beat upon the rudimentary brain.
Lindsay climbed atop the thing. "Blast!" he screamed.
The leering face of a Martian looked up at him, and smiled sneeringly.
Lindsay snapped his cutting torch and thrust the white-hot flame in
the Martian's eye, and the face distorted and became Jenna. She
lifted a hand and pushed the flame away. It went, cutting the hard
metal around her face. Characters were burned in her forehead, and
he read them without understanding. Tiny hands came out through
the cut in the metal and wiped Jenna's face from the top of the fuse.
They took the white-hot flame in their hands and directed it.
He lifted. He struck at Jack Grant's laughing face with a bar and
drove it loose.
"Blast," he told Jack Grant.
Violently, he pried upon the thing. It came up slowly, like Circe, rising
out of the sea—or was it Venus—or Jenna. It was exquisitely formed,
delicately shaped, but his hands took it and crushed the softly curving
figure into a geometrical cylinder, and the softness left it as he lifted it
out of the body of the bomb.
From the vacant hole there came a small flow of neutrons and they
registered on the counter he wore.
Lindsay jumped down, the mists clearing. He looked at the thing in
his hands and laughed. The laugh welled up and broke into a wild
sob. Lindsay crumpled to the ground, holding the fuse in his lap and
crying over it.
He cried with grief, raved at his own madness. He ignored his own
loss, for had he admitted that, he would have gone mad once more.
Paradox, paradox. He—who had tried to force death—was unable to
do so. He was alone and a failure. He hurled the fuse at the vast shell
of the robomb.
"Stinking failure," he snarled at it. Then came clearness. He picked
up the fuse once more and looked at it. Somewhere in his cloud of
madness he had succeeded in defus—
The auxiliary detonator went BANG! and startled him from the last
hazy mists of madness into cold reality.

Once back in the loneliness of his ship, he called Haynes. He


reported all, in a dull voice and asked for help. Later, the help came to
find Lindsay working over the two-ended artificial mind, measuring
minute electronic impulses and stimulating the nodules of the
filamentary connectors to see what happened. From this sample, he
knew that the Terran Technical Corps could devise a means of
confusing the mental fuses in other robombs.

Ralph Lindsay concluded his lecture to the members of his


reconstructed Decontamination Squadron. Then he turned away from
them and a bitterness twisted his mouth as he looked up into the sky
at the flight squadron that was passing overhead.
It still was not for Lindsay.
He picked up the counter-mentapath and started the battle buggy
across the rough field toward the waiting Martian robomb. In the back
of his mind was a half-formed prayer that some day he might find one
too complicated for him. But until that day he would search for that
peace he knew that he would never find.
THE END.
*** END OF THE PROJECT GUTENBERG EBOOK THE
UNDAMNED ***

Updated editions will replace the previous one—the old editions will
be renamed.

Creating the works from print editions not protected by U.S.


copyright law means that no one owns a United States copyright in
these works, so the Foundation (and you!) can copy and distribute it
in the United States without permission and without paying copyright
royalties. Special rules, set forth in the General Terms of Use part of
this license, apply to copying and distributing Project Gutenberg™
electronic works to protect the PROJECT GUTENBERG™ concept
and trademark. Project Gutenberg is a registered trademark, and
may not be used if you charge for an eBook, except by following the
terms of the trademark license, including paying royalties for use of
the Project Gutenberg trademark. If you do not charge anything for
copies of this eBook, complying with the trademark license is very
easy. You may use this eBook for nearly any purpose such as
creation of derivative works, reports, performances and research.
Project Gutenberg eBooks may be modified and printed and given
away—you may do practically ANYTHING in the United States with
eBooks not protected by U.S. copyright law. Redistribution is subject
to the trademark license, especially commercial redistribution.

START: FULL LICENSE

You might also like