8. SQL Database Hyperscale を理解するために
Socrates: The New SQL Server in the Cloud
https://www.microsoft.com/en-us/research/publication/socrates-the-new-sql-server-
in-the-cloud/
SQL Bits 2018 : Hyperscale for Azure SQL DB
https://sqlbits.com/Sessions/Event18/Hyperscale_for_Azure_SQL_DB
Introducing Azure SQL Database Hyperscale
https://msdn.microsoft.com/ja-jp/magazine/mt848637
New performance and scale enhancements for Azure SQL Database
https://myignite.techcommunity.microsoft.com/sessions/65798
Develop data application on a no-limits SQL data platform
https://mybuild.techcommunity.microsoft.com/sessions/76991?source=sessions
PASS Summit 2018 Day2 KEYNOTE
https://passstuff.com/collections/pass-summit-2018-session-recordings
8
10. SQL Database Hyperscale Overview
10
Local SSD
RBPEX
(Non Covering)
Local SSD
RBPEX
(Non Covering)
Local SSD
RBPEX
(Non Covering)
Page Server
Local SSD
RBPEX
(Covering)
Page Server
Local SSD
RBPEX
(Covering)
Page Server
Local SSD
RBPEX
(Covering)
Landing Zone
(Azure Premium Storage)
Long term log storage for PITR
(Azure Standard Storage)
Log Service
Local SSD
Log Cache
最大 100 TB の Hyperscale サービス レベル
https://docs.microsoft.com/ja-jp/azure/sql-database/sql-database-service-tier-
12. Hyperscale Data Flow : Read/Write
12PASS Summit 2018 Day2 Keynote の内容を元に記載
Application
Primary
SQL Server
RBPEX
Xlog Service
Secondary
(Failover Targets)
SQL Server
RBPEX
Application
Azure Storage
Page Server #1
SQL Server
RBPEX
Page Server #2
SQL Server
RBPEX
Page Server #N
SQL Server
RBPEX
Azure Storage
13. Compute Node (Query Engine)
クエリエンジン ≒ Compute Node
Local SSD を使用した RBPEX の活用
Page Server のアクセスを抑えるため、
メモリ + ローカル SSD を Buffer Pool として活用
Compute の RBPEX はDB のすべてのデータはカバーできない
RBPEX のサイズは CPU コア数に応じて変化
初回データアクセス以外はローカルリソースの
SSD キャッシュ (RBPEX) が効果的に利用される
ローカルリソースを使用したアクセスの方が高速
Local RBPEX : < 0.5 ms (ローカルアクセス)
Page Server : < 2 ms (リモートアクセス)
プライマリ/セカンダリで同一の Page Server を参照
共有ストレージ型のアーキテクチャを採用
新規セカンダリの追加時に DB のコピーが不要
プライマリとセカンダリは疎結合
プライマリは、セカンダリが何台存在するか把握しない
13
Local SSD
RBPEX
(Non Covering)
Local SSD
RBPEX
(Non Covering)
Local SSD
RBPEX
(Non Covering)
Page Server
Local SSD
RBPEX
(Covering)
Page Server
Local SSD
RBPEX
(Covering)
Page Server
Local SSD
RBPEX
(Covering)
14. Page Servers (Data File)
データファイル ≒ Page Server
Standard Storage のアクセスを可能な限り抑止
Standard Storage = 低速だが安価
自サーバーがホストする必要のある Data File をすべてを
RBPEX に保持
Page Server の起動時にキャッシュさせる
データファイルの完全なコピーを保持している
冗長化されており、障害発生時も Standard Storage へのアクセ
スを抑止できる
格納データの増加に合わせて Page Server を新規に追加
格納されているデータの増加に合わせて Page Server が自動的
に追加される
(Compute では、Page Server が追加されると、データファイルが
追加されるように見える)
バックアップ処理を Storage のスナップショットで実現
Compute 層で CPU / IO コストをかけることなく、バックアップ処
理の負荷をストレージにオフロード
スナップショットを使用することで、DB サイズに依存せず、一定時
間でバックアップ/ リストアを可能
14
Page Server
Local SSD
RBPEX
(Covering)
Page Server
Local SSD
RBPEX
(Covering)
Page Server
Local SSD
RBPEX
(Covering)
15. Log Service (Log File)
ログファイル ≒ Log Service
最初に Azure Premium Storage に保存 (Landing Zone)
Landing Zone の書き込み < 2.5 ms
今後 Ultra SSD になると < 0.5 ms に改善
トランザクションは、Landing Zone への書き込みが完了する
ことで Commit 完了
Landing Zone の書き込み性能が、トランザクション性能に影響を
与える
(今後 Ultra SSD による書き込み性能向上を計画)
Secondary/Page Server の適用は非同期で実施される
Single Database と異なる読み取り特性となる
Single Database のビジネスクリティカルの場合は、
AlwaysOn 可用性グループベース
Secondary のログの適用を待って、トランザクションが完了する
HS は非同期連携のため、読み取りのタイムラグが数 ms 発生
キャッシュされていないページのログレコードは反映しない
Hot Data がセカンダリにキャッシュされていない可能性を考慮
15
Landing Zone
(Azure Premium Storage)
Long term log storage for PITR
(Azure Standard Storage)
Log Service
Local SSD
Log Cache
17. Read IO - サービス階層の比較
17
Develop data application on a no-limits SQL data platform の内容を元に記載
https://mybuild.techcommunity.microsoft.com/sessions/76991?source=sessions
Local Disk Remote Storage
Local SSD
Compute Node
Local SSD
Page Servers
General Purpose
Standard
Basic
Business Critical
Premium
Local SSD
19. Write IO
19
Primary
Compute
SQL Bits 2018 : Hyperscale for Azure SQL DB の内容を元に記載
https://sqlbits.com/Sessions/Event18/Hyperscale_for_Azure_SQL_DB
Secondar
y
Compute
Landing Zone
(Azure Premium Storage)
Txcommit
Page
Server
Page
Server
Page
Server
Data
File
Data
File
Data
File
プライマリコンピューターが Landing Zone に
ログ書き込み
遅延 : < 2.5 ms
Hyperscale は、Multi Master ではないため、書き込みは
Primary からのみ実行される
LZ でログが強化された後に、トランザクションを
コミット
強化 : Landing Zone 内で耐久性のあるログブロックと
なった状態
Log Service はメモリキャッシュで新しい
トランザクションをステージング
バッファキャッシュから Destage され、Long term log
storage に送信
セカンダリコンピューターに、
非同期でログを適用
ページサーバーに非同期でログを適用
ページサーバーはチェックポイントでデータを
データファイルに書き込み
Long term log storage for PITR
(Azure Standard Storage)
Log Service
Memory
Cache
SSD Cache
20. 参考) MSR 論文に記載されているログプロセス
20
Socrates: The New SQL Server in the Cloud より引用
https://www.microsoft.com/en-us/research/publication/socrates-the-new-sql-server-in-the-