$30 off During Our Annual Pro Sale. View Details »

話題の AlloyDB は本当に凄いデータベースなのでプレビューを使い倒した #devio2022

話題の AlloyDB は本当に凄いデータベースなのでプレビューを使い倒した #devio2022

クラスメソッド株式会社主催の DevelopersIO 2022 で登壇した資料です。
https://classmethod.jp/m/developers-io/

maroon1st

July 28, 2022
Tweet

More Decks by maroon1st

Other Decks in Programming

Transcript

  1. 話題の AlloyDB は

    本当に凄いデータベースなので

    プレビューを使い倒した


    アライアンス統括部 大栗宗


    View Slide

  2. 2
    Disclaimer
    本資料は 2022 年 6月時点での情報です。
    AlloyDB for PostgreSQL は資料作成時点でプレビューです。
    一般提供時の仕様とは異なる可能性があります。
    パフォーマンスについての言及をしていますが、ベンチマーク等の
    具体的な数値結果の公表は行いません。

    View Slide

  3. 3
    自己紹介
    大栗 宗(@maroon1st)
    アライアンス統括部
    某SIer → クラスメソッド →
    某外資 → クラスメソッド(2 回目)
    現在のクラメソ歴は半年(累計 6 年)です!
    パートナー様のサービスをメインに取り扱っています。
    ウィスキー、シガー、パイプをこよなく愛してます。
    Cloudflare, Google Cloud, AWS, etc

    View Slide

  4. 4
    AlloyDB の前に
    Google Cloud の
    データベースの振り返りから

    View Slide

  5. サードパーティデータベース Google 独自実装のデータベース
    5
    Google Cloud のマネージドデータベース
    Cloud Bigtable
    Cloud SQL Cloud Spanner
    Memorystore Cloud Firestore
    インメモリ リレーショナル ドキュメント ワイドカラム
    Redis
    Memcached
    MySQL
    PostgreSQL
    SQL Server

    View Slide

  6. 6
    Google Cloud の RDBMS
    OSS が主体の Cloud SQL と NewSQL である Cloud Spanner
    • OSS DB には豊富な実績とエコシステムがあるが、商用製品の
    機能性と差がある。
    • Cloud Spanner は極めて高い可用性で書き込みスケール可能だ
    が、NewSQL 独自のチューニングが必要。
    • ユーザーは OSS DB のエコシステムと共に商用グレードの
    パフォーマンスや機能性を求めている。
    Cloud SQL Cloud Spanner

    View Slide

  7. サードパーティデータベース Google 独自実装のデータベース
    7
    Google Cloud のマネージドデータベース
    Cloud Bigtable
    Cloud SQL Cloud Spanner
    Memorystore Cloud Firestore
    インメモリ リレーショナル ドキュメント ワイドカラム
    Redis
    Memcached
    MySQL
    PostgreSQL
    SQL Server
    AlloyDB
    PostgreSQL

    View Slide

  8. 8
    AlloyDB for PostgreSQL
    PostgreSQL と互換性を持つフルマネージド型のエンタープラ
    イズワークロードのためのデータベースサービス
    • 人気のある OSS DB である PostgreSQL
    • クラウドネイティブアーキテクチャ
    • Google の専門のエンジニアチーム
    • AI/ML の DNA

    View Slide

  9. Read Pool
    Read Pool
    9
    AlloyDB の全体概要
    Cluster
    ● AlloyDB のリソース管
    理単位で拡張するスト
    レージを含む
    Primary Instance
    ● 読み書きを行うインス
    タンス
    Failover Replica
    ● Primary Instance の
    フェイルオーバー先
    Read Pool
    ● 読み取り専用のインス
    タンス群でプールごと
    に固定 IP を持つ
    Regional Storage Layer
    Failover Replica
    Ultra-fast Cache
    Columnar Engine
    Optimized PostgreSQL
    Primary Instance
    Ultra-fast Cache
    Columnar Engine
    Optimized PostgreSQL
    Write / Read IP
    Read Pool
    Instance
    Ultra-fast Cache
    Columnar Engine
    Optimized PostgreSQL
    Read Pool
    Instance
    Ultra-fast Cache
    Columnar Engine
    Optimized PostgreSQL
    Read Pool
    Instance
    Ultra-fast Cache
    Columnar Engine
    Optimized PostgreSQL
    Read IP
    Read Pool
    Instance
    Ultra-fast Cache
    Columnar Engine
    Optimized PostgreSQL
    Read Pool
    Instance
    Ultra-fast Cache
    Columnar Engine
    Optimized PostgreSQL
    Read Pool
    Instance
    Ultra-fast Cache
    Columnar Engine
    Optimized PostgreSQL
    Read IP

    View Slide

  10. 10
    AlloyDB for PostgreSQL
    AlloyDB の特徴
    1. 優れたパフォーマンスと拡張性
    2. 業界トップクラスの可用性
    3. リアルタイムのビジネスインサイト
    4. 予測しやすく明朗な価格設定
    5. 機械学習による管理とインサイト

    View Slide

  11. 11
    AlloyDB for PostgreSQL の優れたパフォーマンス
    標準的な PostgreSQL と比較して 4 倍、競合の類似サービス
    と比較して 2 倍のトランザクションを処理
    → インデリジェントなストレージ
    標準的な PostgreSQL と比較して分析クエリが
    最大 100 倍高速
    → カラム型エンジン

    View Slide

  12. 12
    インテリジェントなストレージ
    WAL
    Primary Read Pool
    Ultra-fast Cache Ultra-fast Cache
    Buffer Cache Buffer Cache
    LPS LPS LPS LPS LPS
    Optimized PostgreSQL Optimized PostgreSQL
    regional block storage
    分散ファイルシステム - Colossus
    regional log storage
    WAL 書き込み
    DB エンジンと分離したスト
    レージシステム
    ● WAL 書き込みだけで済み Dirty
    Page の書き込み不要
    ● log processing service (LPS) が
    実体化したブロックを書く
    ● 読み込み時は各レイヤーの
    キャッシュと LPS のアクセス
    ● ホットデータは LPS がスケール
    して対応するシャードの再割り
    当て
    読み込み 読み込み

    View Slide

  13. 13
    カラム型エンジン
    分析クエリのためにカラム型
    データをオンメモリで保持
    ● トランザクション向けな行形式を分析
    向けの列形式へ自動変換
    ● AI/ML によりワークロードを学習して
    適切な列やテーブルを選択
    ● クエリプランナーが適切なフォーマッ
    トのデータを判断する
    ● (私見) メモリから大幅に溢れる量の
    データの場合は BigQuery などの分
    析専用サービスを併用
    Primary or Read Pool
    Ultra-fast Cache
    Scale Out AlloyDB Storage
    カラムナフォーマット
    AI/ML により列形式
    へ自動変換
    行形式
    クエリ
    ハイブリッド
    スキャン
    DRAM

    View Slide

  14. 14
    OLTP と OLAP のワークロード
    OLTP と OLAP の両方のワークロードをサポートする
    ハイブリッドトランザクション/分析処理(HTAP)
    ● Oracle Exadata
    ● SAP HANA
    ● IBM Db2 with BLU Acceleration
    ● Oracle MySQL HeatWave
    ● PingCAP TiDB
    ● Snowflake Unistore
    → ハードウェア/ソフトウェア全てフラッグシップ
    → オンメモリ DB でカラム型データ
    → OLTP にカラム型キャッシュ
    → OLTP にカラム型キャッシュ
    → OLAP が行型ストレージエンジンを追加
    → 行型と列型のデータを同時に持つ NewSQL

    View Slide

  15. 15
    トランザクションワークロード(OLTP)の傾向
    ワークロードの前提
    ● クラスタタイプ:高可用性
    ● AlloyDB マシンタイプ:8 vCPU, 64 GB
    ○ パラメータ類:フラグやパラメータは全てデフォルト
    ● 使用ツール:HammerDB 4.4
    ○ TPROC-C:TPC-C ライクで倉庫の在庫管理を模したもの
    ○ warehouse:2000
    ● 参考:HammerDB で RDBMS のベンチマークを取ってみる
    (PostgreSQL編)
    https://dev.classmethod.jp/articles/benchmarking-postgresql-with-hammerdb/

    View Slide

  16. 16
    ここでもう一度 Disclaimer
    本資料は 2022 年 6月時点での情報です。
    AlloyDB for PostgreSQL は資料作成時点でプレビューです。
    一般提供時の仕様とは異なる可能性があります。
    パフォーマンスについての言及をしていますが、ベンチマーク等の
    具体的な数値結果の公表は行いません。

    View Slide

  17. 17
    OLTP の傾向(スループット)
    ● 極めて良好なパフォーマン
    スを発揮する
    ● 高多重度の負荷ではパ
    フォーマンスの落ち込みが
    顕著
    ● 現在プレビューのため 、
    GA 時に高負荷時のパ
    フォーマンス改善を期待
    実行ユーザー数

    View Slide

  18. 18
    OLTP の傾向(レイテンシ)
    ● レイテンシの中央値は高負
    荷でも低いまま
    ● 通常のレイテンシは低いが
    高負荷時にばらつきが大
    きくなる
    ● 現在プレビューのため 、
    GA 時に高負荷時の安定
    性を期待

    View Slide

  19. 19
    OLTP の傾向(スループット)
    ● Read Pool へ WAL 配布を
    行う負荷が発生するはず
    ● Read Pool を1台構成すると
    12〜14%程度のスルー
    プットの低下が見られた
    ● Read Pool を2台構成すると
    15〜22%程度のスルー
    プットの低下
    実行ユーザー数

    View Slide

  20. 20
    分析クエリ(OLAP)の傾向
    ワークロードの前提
    ● クラスタタイプ:高可用性
    ● AlloyDB マシンタイプ:16 vCPU, 128 GB
    ○ パラメータ類:フラグやパラメータはカラム型エンジンのレコメン
    ド以外は全てデフォルト
    ● 使用ツール:HammerDB 4.4
    ○ TPROC-H:TPC-H ライクで意思決定支援ベンチマーク
    ○ pg_scale_fact:30 ( 62 GB 程度 )

    View Slide

  21. 21
    OLAP の傾向(比較内容)
    AI/ML により列形式への変換を自
    動で実施するため既存のクエリ内
    容で結果が変化
    パラメータは全てデフォルトかカラ
    ム型エンジンの推奨値
    (手動のチューニングは無し)
    Primary or Read Pool
    Ultra-fast Cache
    Scale Out AlloyDB Storage
    カラムナフォーマット
    AI/ML により列形式
    へ自動変換
    行形式
    クエリ
    ハイブリッド
    スキャン
    DRAM

    View Slide

  22. 22
    OLAP の傾向(比較内容)
    以下の状態で実行した時のレイテンシを比較
    ● カラム型エンジンを無効にした AlloyDB
    ● TPROC-H を 5 回実施した統計情報を元にしたカラム型エ
    ンジンの推奨値を設定した AlloyDB
    『最大 100 倍高速』とは比較前提が異なります

    View Slide

  23. 23
    OLAP の傾向(レイテンシ)
    分析クエリの種類によりレイテンシの変化は異なるが
    最大で 27.5 倍の高速なクエリがあり、それ以外は概ね
    120 〜 240 % の高速な結果

    View Slide

  24. 24
    カラム型エンジンを使うクエリの実行計画
    多数のデータをスキャンする箇所でカラム型エンジン
    Finalize Aggregate (cost=37819.99..37820.00 rows=1 width=32)
    -> Gather (cost=37819.77..37819.98 rows=2 width=32)
    Workers Planned: 2
    -> Partial Aggregate (cost=36819.77..36819.78 rows=1 width=32)
    -> Parallel Append (cost=0.00..29316.32 rows=1500690 width=12)
    -> Parallel Custom Scan (columnar scan) on lineitem (cost=20.00..29312.31 rows=1500689 width=12)
    Filter: ((l_shipdate >= '1996-01-01'::date) AND (l_shipdate < '1997-01-01 00:00:00'::timestamp without
    time zone) AND (l_discount >= 0.06) AND (l_discount <= 0.08) AND (l_quantity < '25'::numeric))
    CU quals: ((l_shipdate >= '1996-01-01'::date) AND (l_discount >= 0.06) AND (l_quantity <
    '25'::numeric) AND (l_shipdate < '1997-01-01 00:00:00'::timestamp without time zone) AND (l_discount <= 0.08))
    Columnar cache search mode: native
    -> Parallel Seq Scan on lineitem (cost=0.00..4.01 rows=1 width=12)
    Filter: ((l_shipdate >= '1996-01-01'::date) AND (l_shipdate < '1997-01-01 00:00:00'::timestamp without
    time zone) AND (l_discount >= 0.06) AND (l_discount <= 0.08) AND (l_quantity < '25'::numeric))

    View Slide

  25. 25
    カラム型エンジン
    AlloyDB は Query Insights に
    対応しているのでクエリプラン
    を直感的に把握可能
    ● 最も多い行数と大きいコストがかかる
    箇所でカラム型エンジンを利用してい

    View Slide

  26. 26
    まとめ
    ● AlloyDB は PostgreSQL と互換性を持つフルマネージド型
    のエンタープライズワークロードに対応するデータベース
    サービス
    ● インテリジェントなストレージで高速化と高可用性
    ● 内容次第だがカラム型エンジンで分析クエリを高速に
    ● 現在プレビューなので GA までにアップデートを期待
    ● プレビュー中は無料で利用できるため自分のワークロード
    に合うか検証を気軽に行える

    View Slide

  27. View Slide