なんでハイパーにスケールするん?
meetup app Osaka@4
2019/12/28 @shinsukeoda
SQL Database Hyperscale
GA してます
今日の内容は、概ね↓のサイトから
Hyperscale service tier
https://docs.microsoft.com/en-us/azure/sql-
database/sql-database-service-tier-hyperscale
コンポーネント
Compute
クエリ処理する
通常のキャッシュアウトも Local SSD の
RBPEX でキャッシュ
< 0.5ms (non-covering)
なるべく Page Server にアクセスしないよ
うに
Secondary はフェールオーバーのホット
スタンバイ + read only な secondary
Page Server
起動時に Data File の内容を全て Local SSD
の RBPEX でキャッシュ
< 2.5ms (convering)
クエリで必要なリードのアクセスは Data File
に行かない
スタンバイ済のレプリカがオンラインで準備
されていて、障害時は即時切替
レプリカが無いと、障害発生時に RBPEX への
キャッシュを読み込む時間が掛かる
Log Service から伝達されたログを反映 +
Data File に書き込み
Log Service
Primary Compute からログを受け取り、
Landing Zone に書き込む
< 2.5ms
Landing Zone に書き込んだらコミット
Page Server への書き込みでは無い!
Page Server, Secondary Compute に「非同
期」でログを転送、Log term log storage for
PTIR にもログを書き込む
ログの反映には、数ms 程度の遅延
Shared Disk 方式ではあるが、データの遅延がある
Azure Storage
データベース内の全てのデータファイルを格納
DB のバックアップは、Storage の snapshot を使用す
る
従来のバックアップは
SQL Server の CPU リソースを使用する
ディスクの読み取りが発生
=>サイズ増 => 時間増
Hyperscale では、Storage の機能でバックアップする
ので、サーバーのリソースに影響しない
スナップショットバックアップのため、リストアも高速
サイズ増 => 時間増の影響が少ない
SQL Server とは別物?
NO!Compute で sqlserver.exe が動いている
今までの機能の積み重ね + α
Snapshot Backup
Buffer Pool Extensions
Accelerated Database Recovery
ストレージ層の分離
I/O が仮想化されている
SQL Server Data File = Hyperscale Page Server
SQL Server Log File = Hyperscale Log Service
速いの?
コンポーネントをみても分かる通り、多
少の速度の犠牲は仕方なし
https://portal.azure.com/#create/Microsoft.SQL
Database
Compute Node (Secondary Replica) の
追加に、データコピーが不要
速くなるの?
Log Service の Landing Zone を Ultra
Storage に変更するような検討も行われ
ている。
< 2.5ms が < 0.5ms に

What's hyperscale