Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
話題の AlloyDB は本当に凄いデータベースなのでプレビューを使い倒した #devio2022
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
maroon1st
July 28, 2022
Programming
31k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
話題の AlloyDB は本当に凄いデータベースなのでプレビューを使い倒した #devio2022
クラスメソッド株式会社主催の DevelopersIO 2022 で登壇した資料です。
https://classmethod.jp/m/developers-io/
maroon1st
July 28, 2022
More Decks by maroon1st
See All by maroon1st
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
270
ついに来た!本格的なマルチクラウド時代の Google Cloud
maroon1st
0
660
JAWS-UG横浜 #100 祝・第100回スペシャルAWS は VPC レスの時代へ
maroon1st
0
370
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
380
Graviton と Nitro と私
maroon1st
0
440
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
920
業務自動化プラットフォーム Google Agentspace に入門してみる #devio2025
maroon1st
0
460
[JAWS DAYS 2025] 最近の DB の競合解決の仕組みが分かった気になってみた
maroon1st
0
700
ハワイアン航空 ステータスへの道 #HAairstudy
maroon1st
0
530
Other Decks in Programming
See All in Programming
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
450
React本体のコードリーディング
high_g_engineer
0
110
Embedded SREと共に達成した会員管理システムのAWS移行 - SRE NEXT 2026 ランチスポンサーセッション
niftycorp
PRO
1
3.2k
TSX の <Hoge<Fuga>> という構文に驚いた話 / tsx-type-argument-syntax
kanaru0928
0
130
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
1
260
AI時代、エンジニアはどう育つのか -未経験エンジニアの成長を間近で見て考えたこと-
thasu0123
0
200
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
490
Google Apps Script で Ruby を動かす
kawahara
0
120
地域 SRE コミュニティ最前線 - ホンマでっかSRE勉強会
tk3fftk
0
290
Claude Opus 4.6以後の受託開発エンジニアの変化(Claude Code開発ノウハウ大公開スペシャルbyクラスメソッド)
iidatakuma
1
900
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
120
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
17k
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
330
40k
RailsConf 2023
tenderlove
30
1.5k
Agile that works and the tools we love
rasmusluckow
331
22k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
470
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
230
The Cost Of JavaScript in 2023
addyosmani
55
10k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
270
First, design no harm
axbom
PRO
2
1.2k
Marketing to machines
jonoalderson
1
5.6k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
GraphQLとの向き合い方2022年版
quramy
50
15k
Transcript
話題の AlloyDB は 本当に凄いデータベースなので プレビューを使い倒した アライアンス統括部 大栗宗
2 Disclaimer 本資料は 2022 年 6月時点での情報です。 AlloyDB for PostgreSQL は資料作成時点でプレビューです。
一般提供時の仕様とは異なる可能性があります。 パフォーマンスについての言及をしていますが、ベンチマーク等の 具体的な数値結果の公表は行いません。
3 自己紹介 大栗 宗(@maroon1st) アライアンス統括部 某SIer → クラスメソッド → 某外資 →
クラスメソッド(2 回目) 現在のクラメソ歴は半年(累計 6 年)です! パートナー様のサービスをメインに取り扱っています。 ウィスキー、シガー、パイプをこよなく愛してます。 Cloudflare, Google Cloud, AWS, etc
4 AlloyDB の前に Google Cloud の データベースの振り返りから
サードパーティデータベース Google 独自実装のデータベース 5 Google Cloud のマネージドデータベース Cloud Bigtable Cloud
SQL Cloud Spanner Memorystore Cloud Firestore インメモリ リレーショナル ドキュメント ワイドカラム Redis Memcached MySQL PostgreSQL SQL Server
6 Google Cloud の RDBMS OSS が主体の Cloud SQL と
NewSQL である Cloud Spanner • OSS DB には豊富な実績とエコシステムがあるが、商用製品の 機能性と差がある。 • Cloud Spanner は極めて高い可用性で書き込みスケール可能だ が、NewSQL 独自のチューニングが必要。 • ユーザーは OSS DB のエコシステムと共に商用グレードの パフォーマンスや機能性を求めている。 Cloud SQL Cloud Spanner
サードパーティデータベース Google 独自実装のデータベース 7 Google Cloud のマネージドデータベース Cloud Bigtable Cloud
SQL Cloud Spanner Memorystore Cloud Firestore インメモリ リレーショナル ドキュメント ワイドカラム Redis Memcached MySQL PostgreSQL SQL Server AlloyDB PostgreSQL
8 AlloyDB for PostgreSQL PostgreSQL と互換性を持つフルマネージド型のエンタープラ イズワークロードのためのデータベースサービス • 人気のある OSS
DB である PostgreSQL • クラウドネイティブアーキテクチャ • Google の専門のエンジニアチーム • AI/ML の DNA
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
10 AlloyDB for PostgreSQL AlloyDB の特徴 1. 優れたパフォーマンスと拡張性 2. 業界トップクラスの可用性
3. リアルタイムのビジネスインサイト 4. 予測しやすく明朗な価格設定 5. 機械学習による管理とインサイト
11 AlloyDB for PostgreSQL の優れたパフォーマンス 標準的な PostgreSQL と比較して 4 倍、競合の類似サービス
と比較して 2 倍のトランザクションを処理 → インデリジェントなストレージ 標準的な PostgreSQL と比較して分析クエリが 最大 100 倍高速 → カラム型エンジン
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 がスケール して対応するシャードの再割り 当て 読み込み 読み込み
13 カラム型エンジン 分析クエリのためにカラム型 データをオンメモリで保持 • トランザクション向けな行形式を分析 向けの列形式へ自動変換 • AI/ML によりワークロードを学習して
適切な列やテーブルを選択 • クエリプランナーが適切なフォーマッ トのデータを判断する • (私見) メモリから大幅に溢れる量の データの場合は BigQuery などの分 析専用サービスを併用 Primary or Read Pool Ultra-fast Cache Scale Out AlloyDB Storage カラムナフォーマット AI/ML により列形式 へ自動変換 行形式 クエリ ハイブリッド スキャン DRAM
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
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/
16 ここでもう一度 Disclaimer 本資料は 2022 年 6月時点での情報です。 AlloyDB for PostgreSQL
は資料作成時点でプレビューです。 一般提供時の仕様とは異なる可能性があります。 パフォーマンスについての言及をしていますが、ベンチマーク等の 具体的な数値結果の公表は行いません。
17 OLTP の傾向(スループット) • 極めて良好なパフォーマン スを発揮する • 高多重度の負荷ではパ フォーマンスの落ち込みが 顕著
• 現在プレビューのため 、 GA 時に高負荷時のパ フォーマンス改善を期待 実行ユーザー数
18 OLTP の傾向(レイテンシ) • レイテンシの中央値は高負 荷でも低いまま • 通常のレイテンシは低いが 高負荷時にばらつきが大 きくなる
• 現在プレビューのため 、 GA 時に高負荷時の安定 性を期待
19 OLTP の傾向(スループット) • Read Pool へ WAL 配布を 行う負荷が発生するはず
• Read Pool を1台構成すると 12〜14%程度のスルー プットの低下が見られた • Read Pool を2台構成すると 15〜22%程度のスルー プットの低下 実行ユーザー数
20 分析クエリ(OLAP)の傾向 ワークロードの前提 • クラスタタイプ:高可用性 • AlloyDB マシンタイプ:16 vCPU, 128
GB ◦ パラメータ類:フラグやパラメータはカラム型エンジンのレコメン ド以外は全てデフォルト • 使用ツール:HammerDB 4.4 ◦ TPROC-H:TPC-H ライクで意思決定支援ベンチマーク ◦ pg_scale_fact:30 ( 62 GB 程度 )
21 OLAP の傾向(比較内容) AI/ML により列形式への変換を自 動で実施するため既存のクエリ内 容で結果が変化 パラメータは全てデフォルトかカラ ム型エンジンの推奨値 (手動のチューニングは無し)
Primary or Read Pool Ultra-fast Cache Scale Out AlloyDB Storage カラムナフォーマット AI/ML により列形式 へ自動変換 行形式 クエリ ハイブリッド スキャン DRAM
22 OLAP の傾向(比較内容) 以下の状態で実行した時のレイテンシを比較 • カラム型エンジンを無効にした AlloyDB • TPROC-H を
5 回実施した統計情報を元にしたカラム型エ ンジンの推奨値を設定した AlloyDB 『最大 100 倍高速』とは比較前提が異なります
23 OLAP の傾向(レイテンシ) 分析クエリの種類によりレイテンシの変化は異なるが 最大で 27.5 倍の高速なクエリがあり、それ以外は概ね 120 〜 240
% の高速な結果
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))
25 カラム型エンジン AlloyDB は Query Insights に 対応しているのでクエリプラン を直感的に把握可能 •
最も多い行数と大きいコストがかかる 箇所でカラム型エンジンを利用してい る
26 まとめ • AlloyDB は PostgreSQL と互換性を持つフルマネージド型 のエンタープライズワークロードに対応するデータベース サービス •
インテリジェントなストレージで高速化と高可用性 • 内容次第だがカラム型エンジンで分析クエリを高速に • 現在プレビューなので GA までにアップデートを期待 • プレビュー中は無料で利用できるため自分のワークロード に合うか検証を気軽に行える
None