Submit Search
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
4 likes
3,088 views
Yahoo!デベロッパーネットワーク
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL
Technology
Read more
1 of 75
Download now
Downloaded 31 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
More Related Content
PDF
PG-REXで学ぶPacemaker運用の実例
kazuhcurry
PDF
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
Hironobu Suzuki
PPTX
コンテナネットワーキング(CNI)最前線
Motonori Shindo
PPTX
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
NTT DATA Technology & Innovation
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
PPTX
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PPTX
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
PDF
大規模サービスを支えるネットワークインフラの全貌
LINE Corporation
PG-REXで学ぶPacemaker運用の実例
kazuhcurry
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
Hironobu Suzuki
コンテナネットワーキング(CNI)最前線
Motonori Shindo
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
NTT DATA Technology & Innovation
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
大規模サービスを支えるネットワークインフラの全貌
LINE Corporation
What's hot
(20)
PDF
Linux女子部 systemd徹底入門
Etsuji Nakai
PDF
Linux-HA Japanプロジェクトのこれまでとこれから
ksk_ha
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
PDF
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
PDF
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
Preferred Networks
PPTX
KeycloakでAPI認可に入門する
Hitachi, Ltd. OSS Solution Center.
PDF
データセンターネットワークの構成について
MicroAd, Inc.(Engineer)
PDF
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
PDF
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
PDF
BuildKitの概要と最近の機能
Kohei Tokunaga
PPTX
Dockerからcontainerdへの移行
Akihiro Suda
PDF
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
NTT DATA OSS Professional Services
PDF
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
Preferred Networks
PDF
Linux女子部 iptables復習編
Etsuji Nakai
PDF
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
PDF
これからはじめるインフラエンジニア
外道 父
PDF
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
Preferred Networks
PPTX
Prometheus入門から運用まで徹底解説
貴仁 大和屋
PDF
DPDKを用いたネットワークスタック,高性能通信基盤開発
slankdev
PDF
Dockerからcontainerdへの移行
Kohei Tokunaga
Linux女子部 systemd徹底入門
Etsuji Nakai
Linux-HA Japanプロジェクトのこれまでとこれから
ksk_ha
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
Preferred Networks
KeycloakでAPI認可に入門する
Hitachi, Ltd. OSS Solution Center.
データセンターネットワークの構成について
MicroAd, Inc.(Engineer)
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
BuildKitの概要と最近の機能
Kohei Tokunaga
Dockerからcontainerdへの移行
Akihiro Suda
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
NTT DATA OSS Professional Services
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
Preferred Networks
Linux女子部 iptables復習編
Etsuji Nakai
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
これからはじめるインフラエンジニア
外道 父
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
Preferred Networks
Prometheus入門から運用まで徹底解説
貴仁 大和屋
DPDKを用いたネットワークスタック,高性能通信基盤開発
slankdev
Dockerからcontainerdへの移行
Kohei Tokunaga
Ad
Similar to Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
(20)
PDF
MySQL at Yahoo! JAPAN #dbts2018
Yahoo!デベロッパーネットワーク
KEY
1台から500台までのMySQL運用(YAPC::Asia編)
Masahiro Nagano
PPT
Handlersocket 20140218
akirahiguchi
ODP
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
Mikiya Okuno
KEY
Web Operations and Perl kansai.pm#14
Masahiro Nagano
PDF
Lars George HBase Seminar with O'REILLY Oct.12 2012
Cloudera Japan
PDF
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Colin Charles
PDF
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
griddb
PDF
SQL Azure のシームレスな管理
junichi anno
PDF
States of Dolphin - MySQL最新技術情報2013秋 -
yoyamasaki
PDF
MySQL 5.6新機能解説@dbtechshowcase2012
Mikiya Okuno
PDF
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Takamasa Maejima
PDF
LINEのMySQL運用について
LINE Corporation
PDF
5分で作るMySQL Cluster環境
yoyamasaki
PDF
5分で作るMySQL Cluster環境
yoyamasaki
PDF
MHA for MySQLとDeNAのオープンソースの話
Yoshinori Matsunobu
PDF
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
infinite_loop
PDF
AWSのデータベースサービス全体像
Amazon Web Services Japan
PDF
MySQLトラブル解析入門
Mikiya Okuno
PPT
Linux/DB Tuning (DevSumi2010, Japanese)
Yoshinori Matsunobu
MySQL at Yahoo! JAPAN #dbts2018
Yahoo!デベロッパーネットワーク
1台から500台までのMySQL運用(YAPC::Asia編)
Masahiro Nagano
Handlersocket 20140218
akirahiguchi
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
Mikiya Okuno
Web Operations and Perl kansai.pm#14
Masahiro Nagano
Lars George HBase Seminar with O'REILLY Oct.12 2012
Cloudera Japan
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Colin Charles
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
griddb
SQL Azure のシームレスな管理
junichi anno
States of Dolphin - MySQL最新技術情報2013秋 -
yoyamasaki
MySQL 5.6新機能解説@dbtechshowcase2012
Mikiya Okuno
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Takamasa Maejima
LINEのMySQL運用について
LINE Corporation
5分で作るMySQL Cluster環境
yoyamasaki
5分で作るMySQL Cluster環境
yoyamasaki
MHA for MySQLとDeNAのオープンソースの話
Yoshinori Matsunobu
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
infinite_loop
AWSのデータベースサービス全体像
Amazon Web Services Japan
MySQLトラブル解析入門
Mikiya Okuno
Linux/DB Tuning (DevSumi2010, Japanese)
Yoshinori Matsunobu
Ad
More from Yahoo!デベロッパーネットワーク
(20)
PDF
ゼロから始める転移学習
Yahoo!デベロッパーネットワーク
PDF
継続的なモデルモニタリングを実現するKubernetes Operator
Yahoo!デベロッパーネットワーク
PDF
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
Yahoo!デベロッパーネットワーク
PDF
オンプレML基盤on Kubernetes パネルディスカッション
Yahoo!デベロッパーネットワーク
PDF
LakeTahoe
Yahoo!デベロッパーネットワーク
PDF
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
Yahoo!デベロッパーネットワーク
PDF
Persistent-memory-native Database High-availability Feature
Yahoo!デベロッパーネットワーク
PDF
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
Yahoo!デベロッパーネットワーク
PDF
eコマースと実店舗の相互利益を目指したデザイン #yjtc
Yahoo!デベロッパーネットワーク
PDF
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
Yahoo!デベロッパーネットワーク
PDF
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo!デベロッパーネットワーク
PDF
ビッグデータから人々のムードを捉える #yjtc
Yahoo!デベロッパーネットワーク
PDF
サイエンス領域におけるMLOpsの取り組み #yjtc
Yahoo!デベロッパーネットワーク
PDF
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
Yahoo!デベロッパーネットワーク
PDF
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo!デベロッパーネットワーク
PDF
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
Yahoo!デベロッパーネットワーク
PDF
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
Yahoo!デベロッパーネットワーク
PDF
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
Yahoo!デベロッパーネットワーク
PDF
「新しいおうち探し」のためのAIアシスト検索 #yjtc
Yahoo!デベロッパーネットワーク
PDF
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
Yahoo!デベロッパーネットワーク
ゼロから始める転移学習
Yahoo!デベロッパーネットワーク
継続的なモデルモニタリングを実現するKubernetes Operator
Yahoo!デベロッパーネットワーク
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
Yahoo!デベロッパーネットワーク
オンプレML基盤on Kubernetes パネルディスカッション
Yahoo!デベロッパーネットワーク
LakeTahoe
Yahoo!デベロッパーネットワーク
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
Yahoo!デベロッパーネットワーク
Persistent-memory-native Database High-availability Feature
Yahoo!デベロッパーネットワーク
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
Yahoo!デベロッパーネットワーク
eコマースと実店舗の相互利益を目指したデザイン #yjtc
Yahoo!デベロッパーネットワーク
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
Yahoo!デベロッパーネットワーク
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo!デベロッパーネットワーク
ビッグデータから人々のムードを捉える #yjtc
Yahoo!デベロッパーネットワーク
サイエンス領域におけるMLOpsの取り組み #yjtc
Yahoo!デベロッパーネットワーク
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
Yahoo!デベロッパーネットワーク
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo!デベロッパーネットワーク
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
Yahoo!デベロッパーネットワーク
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
Yahoo!デベロッパーネットワーク
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
Yahoo!デベロッパーネットワーク
「新しいおうち探し」のためのAIアシスト検索 #yjtc
Yahoo!デベロッパーネットワーク
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
Yahoo!デベロッパーネットワーク
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
1.
2017年6月19日 1 db tech showcase
OSS 2017 Yahoo! JAPANのプライベートRDBクラウドと マルチライター型 MySQL Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved
2.
本日の内容 1. Yahoo! JAPAN
の概要 2. Yahoo! JAPAN のMySQLの歴史と課題 3. プライベートRDBクラウドの構成 4. マルチライター型 MySQL PXCの特徴 5. PXC vs Group Replication 6. まとめ – Q&A
3.
自己紹介 • 三谷 智史(@mita2) •
ヤフー(株) • データ&サイエンスソリューション統括本部 データプラットフォーム本部 MySQL • 第6代黒帯 ~RDB~ • MySQLとの関わり • 2002年~ 主に利用して開発 • 2010年~ 主に運用・管理する立場 3
4.
本日の内容 1. Yahoo! JAPAN
の概要 2. Yahoo! JAPAN のMySQLの歴史と課題 3. プライベートRDBクラウドの構成 4. マルチライター型 MySQL PXCの特徴 5. PXC vs Group Replication 6. まとめ – Q&A
5.
Yahoo! JAPAN 利用者数 5 9,000万1日 ユニーク ブラウザ ※出所:Yahoo!
JAPAN社内データ(2016年4月-6月の平均)
6.
提供サービス 6 Media US Search Video Answer
Mail JP US JP Membership C2C Payment C2C EC B2C EC Local
7.
巨大なデータプラットフォーム 7 NoSQL Object Storage DWH Hadoop RDB 6000 node 150PB 1200 DBs 300,000 Query/day 1500 nodes 1000+ nodes
8.
巨大なデータプラットフォーム 8 NoSQL Object Storage DWH Hadoop RDB 6000 node 150PB 300,000 Query/day 1500 nodes 1000+ nodes 1000 MySQL
9.
本日の内容 1. Yahoo! JAPAN
の概要 2. Yahoo! JAPAN のMySQLの歴史と課題 3. プライベートRDBクラウドの構成 4. マルチライター型 MySQL PXCの特徴 5. PXC vs Group Replication 6. まとめ – Q&A
10.
0 200 400 600 800 1000 本番データベース数 V1 DBaaS 歴史 10 MySQLの 統合管理スタート
11.
クラスタ リング z 統合環境 初代構成 • マスターは 共有ストレージのHA •
1サーバに複数mysqld • Oracle Clusterware 11 共有ストレージ アクティブ サーバ スタンバイ サーバ スレーブやクライアント mysqld mysqld mysqld Failover
12.
共有ストレージ 採用理由 1. データロストが許容できない •
loss-less semi-sync replication は 当時、未登場 2. 同様のアーキテクチャによる Oracle databaseの運用ノウハウ 12
13.
集約することで解決できた課題 1. DB構築時間の短縮 2. 運用レベルの統一 3.
HA、冗長性の確保 4. 集約管理によるコスト削減 13
14.
新たな課題 14
15.
課題 15 メンテやリプレイスの負担が大きい
16.
課題 16 メンテやリプレイスの負担が大きい
17.
メンテナンス • 計画停止メンテナンス • 数分程度の更新停止を伴う 一斉メンテナンスを年に1~2回
実施 • セキュリティパッチ当てなど • 約200DB / 年 が対象 17
18.
もっとメンテナンスしたい 18 • 設定・SWバージョンの統一 • チューニング等の試行錯誤 •
障害の予行演習としてのメンテ
19.
課題 19 メンテやリプレイスの負担が大きい
20.
リプレイス • SW/HWのEOLにあわせて実施 • 3~5年に1度 •
約200DB / 年 • 旧→新でレプリ、サービス停止、接続先を切り替え • 正味の「寿命」は、もっと短い • 複数DB 利用サービスは負担大 20
21.
もっとリプレイスしたい • HW構成の統一 • DCラックの有効活用 •
長く使うのはコスト増 • × できるだけ長く使う • ○ 最新のHW/SW を常に利用する 21
22.
本日の内容 1. Yahoo! JAPAN
の概要 2. Yahoo! JAPAN のMySQLの歴史と課題 3. プライベートRDBクラウドの構成 4. マルチライター型 MySQL PXCの特徴 5. PXC vs Group Replication 6. まとめ – Q&A
23.
0 200 400 600 800 1000 本番データベース数 V1 DBaaS 解決策 23 第2世代 (DBaaS)
24.
解決策 マルチライター型 MySQL
25.
解決策 マルチライター型 MySQL
26.
OpenStack とは • OSSクラウドコンピューティングPJ https://www.openstack.org/software/
27.
ヤフーにおける豊富な運用実績 27 0 5 10 15 20 25 1 year ago
Half year… Today vCPU (x10k) Memory (x10TB) Block (x1PB)
28.
OpenStack Trove • Database
As A Service コンポーネント • Tesora Inc, を中心に 開発されている 28
29.
OpenStack Trove • 機能・API •
DBインスタンスの作成 • DBアカウントの管理 • DBの起動・停止 • リサイズ(VMスペック変更) • バックアップ取得 • etc… • 対応しているデータストア • MySQL, MariaDB, Percona, Redis, Cassandra… 29
30.
OpenStackの導入意図 1. APIによる自動化のしやすさ • 構成情報、ステータス、起動や停止 •
抽象化、自動化の役割分担 2. VMイメージによる構成管理 30
31.
解決策 マルチライター型 MySQL
32.
Percona XtraDB Cluster •
マルチライター型 高可用性ソリューション • Percona Server for MySQL • MySQL の fork • MySQL との高い互換性 • Percna XtraDB Cluster • さらにマルチライター対応したもの
33.
Multi Master ,
Multi Writer ? マルチマスター マルチライター Client Client
34.
マルチマスター • 従来のレプリケーションは非同期 • 同時書込すると・・・ •
レプリケーション停止 • データ不整合 34
35.
不整合の具体例 35 マスター1 COMMIT OK COMMIT OK マスター2 テーブル 変更 Binlog 追記 テーブル 変更 Binlog 追記 relaylog 追記 relaylog 追記 ログ適用ログ適用 UPDATE col1 = 1 UPDATE col1
= 2 col1=1col1=2 時間 不整合
36.
マルチライター • 同時に書き込み可 • 楽観的ロックによる不整合回避 (後述) 36
37.
Multi Master ,
Multi Writer ? • 不整合の考慮が必要 • 片方にのみ書込、Active/Standby • 同時更新で不整合は起こらない • 容易に高可用性構成が組める Client Client
38.
解決後 デプロイ メンテ例 38
39.
ゴールデンイメージ準備 1. 新しいゴールデンイメージ準備 39 $ yum
update イメージ作成用VM イメージ ファイル snapshot $ nova create-image $ mysql –e ‘select * from hoge’ 自動テスト実行
40.
無風化 2. 無風化する 40 mysql> UPDATE
clutercheck SET status = ‘DISABLED’ WHERE node = ‘node1’ ロードバランサ node1 node2 node3 httpd httpd httpd I’m offline
41.
OSから入れ替え 3. OS再インストール 41 $ nova
rebuild イメージ ファイル OpenStackのOS再インストールAPIを実行 node2 node3
42.
データの自動同期 4. データを同期 42 node1 node2
node3
43.
以上をローリングで繰り返す 43 node1 node2 node3
44.
デモ 44 member-1 デモ用 スクリプト member-2 member-3 イメージ ファイル SELECT
45.
頻繁にメンテを実行 • 150本番DB/月に対して実行 • 9ヶ月の実績 •
全自動 • SW構成は4パターンに集約 • v5.6 / v5.7 x 新旧イメージ 45
46.
課題 46 メンテやリプレイスの負担が大きい
47.
本日の内容 1. Yahoo! JAPAN
の概要 2. Yahoo! JAPAN のMySQLの歴史と課題 3. プライベートRDBクラウドの構成 4. マルチライター型 MySQL PXCの特徴 5. PXC vs Group Replication 6. まとめ – Q&A
48.
PXCの特徴 • Percona XtraDB
Cluster の特徴 1. 概要 2. ロック 3. データ同期遅延とFlow Control 4. リカバリの仕組み(SST/IST) 5. 制限事項
49.
PXC 概要 • マルチライターのMySQL •
用途 • ビルドイン 高可用性 • Read Scalability • Disaster Recovery • スレーブも追加可 49 async slave async slave
50.
PXCの特徴 • Percona XtraDB
Cluster の特徴 1. 概要 2. ロック 3. データ同期遅延とFlow Control 4. リカバリの仕組み(SST/IST) 5. 制限事項
51.
いつものロック
52.
いつものロック • ロックが競合した場合、後続は「待つ」
53.
PXCのロック 53 時間 行の値 トランザクション1
on ノード1 トランザクション2 on ノード2 T1 - mysql> BEGIN; Query OK, 0 rows affected (0.00 sec) mysql> UPDATE grplt.tbl SET col1 = 10, who_update = ‘A' WHERE pk = 1; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 T2 - mysql> BEGIN; Query OK, 0 rows affected (0.00 sec) mysql> UPDATE grplt.tbl SET col1 = 10, who_update = ‘B' WHERE pk = 1; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 T3 A mysql> COMMIT; Query OK, 0 rows affected (0.00 sec) (ノード1の更新内容が伝わってくる) T4 A mysql> COMMIT; ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction
54.
PXCのロック 54 時間 行の値 トランザクション1
on ノード1 トランザクション2 on ノード2 T1 - mysql> BEGIN; Query OK, 0 rows affected (0.00 sec) mysql> UPDATE grplt.tbl SET col1 = 10, who_update = ‘A' WHERE pk = 1; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 T2 - mysql> BEGIN; Query OK, 0 rows affected (0.00 sec) mysql> UPDATE grplt.tbl SET col1 = 10, who_update = ‘B' WHERE pk = 1; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 T3 A mysql> COMMIT; Query OK, 0 rows affected (0.00 sec) (ノード1の更新内容が伝わってくる) T4 A mysql> COMMIT; ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction • 異なるノードでロックが競合した場合、「先勝ち」 • デッドロックは必要に応じてリトライ • LBをSingle-Primaryで運用すれば、従来と同じ挙動に
55.
マルチライター型 MySQLの特徴 • Percona
XtraDB Cluster の特徴 1. 概要 2. ロック 3. データ同期遅延とFlow Control 4. リカバリの仕組み(SST/IST) 5. 制限事項
56.
Galera Replication http://galeracluster.com/documentation-webpages/certificationbasedreplication.html 56 • PXCはバイナリログとは違う仕組みで レプリケーションする •
Write Sets • トランザクション • 更新内容をPKを使って表したもの • Write Sets を伝播することで データ同期する
57.
2 データ同期遅延 57 1 Replicate Certification Certification Apply commit finalized commit finalized 遅延 COMMIT OK • クライアントがCOMMITを実行した ノードと、他のノードの間で同期遅延 が発生する •
大きなトランザクションだと顕著
58.
flow control • 遅れたノードがほかのノードに 「更新をこれ以上受け付けない で」と「待った」をかける •
遅延が拡大するのを防ぐ 58
59.
flow control を回避するには? •
大きすぎるトランザクションを避ける • 遅延を許容し、閾値を引き上げる • gcs.fc_limit • 遅延もFCも許容できない場合は Single-Primary 運用 59
60.
flow control • ステータスでFCの状況が確認可 •
wsrep_flow_control_paused_ns • FCで待たされた累積秒数(ナノ秒) • wsrep_flow_control_sent • FC命令を発した累積回数 • 遅れているノードでカウントアップ • wsrep_flow_control_recv • FC命令を受信した累積回数 60
61.
マルチライター型 MySQLの特徴 • Percona
XtraDB Cluster の特徴 1. 概要 2. Galera Replication 3. ロック 4. データ同期遅延とFlow Control 5. リカバリの仕組み(SST/IST) 6. 制限事項
62.
リカバリの仕組み • Incremental State
Transfer • State Snapshot Transfer 62
63.
Incremental State Transfer •
差分同期 • 「gcache」というファイルに履歴を保存 • gcache.size パラメータでサイズ指定可能 63 1 gcache 2 gcache 差分適用
64.
State Snapshot Transfer •
全データのコピーを行う • ヤフーではHVに10GbEx2 UPLINK 40GbE を採用 • 100GB / 10min(並列は試してない) • 発生タイミング • 新規ノード追加、長期間停止後、異常終了後 • 同期完了するまで該当ノードは接続を受付ない 64
65.
マルチライター型 MySQLの特徴 • Percona
XtraDB Cluster の特徴 1. ロック 2. データ同期の仕組み(SST/IST) 3. データ同期遅延とFlow Control 4. 制限事項
66.
PXC 制限事項 • InnoDB
のみ利用可 • LOCK TABLESは未サポート • ノード間でロック情報は共有されない • mysqldump –skip-lock • ALTER TABLEは全更新をブロックする • pt-osc ツール や RollingSchemaUpgrade で回避 66
67.
本日の内容 1. Yahoo! JAPAN
の概要 2. Yahoo! JAPAN のMySQLの歴史と課題 3. プライベートRDBクラウドの構成 4. マルチライター型 MySQL PXCの特徴 5. PXC vs Group Replication 6. まとめ – Q&A
68.
MySQL Group Replication •
Oracle 純正 • MySQL 5.7.17 (201612) でリリース • PXCとだいたいと同じことができる • Windows な人も大丈夫!
69.
GR vs PXC
(1) 69 Group Replication PXC (galera family) 通常のマスター昇格 1 マルチライター 対応 対応 非対応 2 データ同期の仕組み GTID Replication base Galera / wsrepl GTID or 非GTID 3 バイナリログ 必須 必須ではない 必須 4 Flow Control 有り Certifier / Applier 有り Applier のみ閾値設定可 無し 4 ストレージエンジン InnoDB のみ InnoDB のみ 制限なし 5 ノード間の ロック仕組み 楽観的ロック / 独立したエ ラーコード (First Commit Wins) 楽観的ロック / デッドロック としてエラーが返る (First Commit Wins) 競合しない ※ マルチライターでは ない 6 DDLロック 対象テーブルのみ 全体ロック オンラインDDL
70.
GR vs PXC
(2) 70 Group Replication PXC (galera family) 通常のマスター昇格 7 AutoIncr 衝突回避 ○ 自動 ○ 自動 - 8 クラスタリングや フェイルオーバ機構 ビルドイン(XCom) ビルドイン (GCS) ビルドインされない ※ 自分で用意 9 自動リカバリ(差分) ○ GTID Replication ○ (IST) ○ レプリケーション 10 自動リカバリ(全体) × ○ (SST) × 11 SplitBrain 対応 ○ 対応 ただし、クエリ受付可 ○ 対応 × 非常に難しい 12 ステータス確認 performance_schema GLOBAL STATUS performance_schema or SHOW 13 提供形態 ○ プラグイン Windows も可 △ 別製品。互換性はあ り。Linux のみ。 -
71.
本日の内容 1. Yahoo! JAPAN
の概要 2. Yahoo! JAPAN のMySQLの歴史と課題 3. プライベートRDBクラウドの構成 4. マルチライター型 MySQL PXCの特徴 5. PXC vs Group Replication 6. まとめ – Q&A
72.
まとめ 72
73.
まとめ 73 マルチライターとIaaSで、DBでも 「Immutable Infrastructure」できました GR登場でマルチライター時代到来!?
74.
Questions ? 74
75.
Thank you
Download