More Related Content
Similar to MySQL at Yahoo! JAPAN #dbts2018 (20)
PDF
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~griddb
PDF
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)Colin Charles
PPT
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web serviceKazuho Oku
PDF
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06Mikiya Okuno
PDF
States of Dolphin - MySQL最新技術情報2013秋 -yoyamasaki
PDF
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]Hideo Takagi
More from Yahoo!デベロッパーネットワーク (20)
PDF
The potential of Kubernetes as more than just an infrastructure to deployYahoo!デベロッパーネットワーク
Recently uploaded (8)
PDF
20250711JIMUC総会IBM Automation_Platform最新情報_Connpass公開版.pdfChikakoInami1
PDF
論文紹介:OVO-Bench: How Far is Your Video-LLMs from Real-World Online Video Unde...Toru Tamaki
PDF
Google Driveハブ型Obsidian同期環境:PC編集とモバイル閲覧を安全・効率的に実現するクロスデバイス構築ガイドhoneshabri
MySQL at Yahoo! JAPAN #dbts2018
- 1. 2018年9月21日
1
db tech showcase 2018
MySQL at Yahoo! JAPAN
〜数字で見るヤフーのMySQL基盤の秘密 !?〜
Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved
- 21. Oracle Database
• Oracle Enterprise Edition RAC 11g, 12c
• 250DB
• 主に、ミッションクリティカル用途
• Order made 寄りの運用
• 1DBあたりのDBA比率
• MySQL : Oracle = 1 : 25
21
- 26. MySQL at Yahoo! JAPAN
26
管理対象DB数
1600
DBの規模
85%が30G以下
DB
基盤構成
チーム
人数
問合せ数
- 27. MySQL at Yahoo! JAPAN
27
管理対象DB数
1600
DBの規模
85%が30G以下
DB
基盤構成
チーム
人数
問合せ数
- 36. OpenStack Trove を選択
• Database As A Service コンポーネント
• 機能
• DBインスタンスの作成
• DBアカウントの管理
• DBの起動・停止
• リサイズ(VMスペック変更)
• etc…
• 対応しているデータストア
• MySQL, MariaDB, Percona, Redis, Cassandra…
36
- 44. PXC 概要
• マルチライターのMySQL fork
• Group Replication とほぼ同じ
• 用途
• ビルドイン 高可用性
• Read Scalability
• Disaster Recovery
• スレーブも追加可
44
async
slave
async
slave
- 51. PXCのロック
51
時間 行の値 トランザクション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
- 52. PXCのロック
52
時間 行の値 トランザクション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で運用すれば、従来と同じ挙動に
- 53. Multi Master , Multi Writer ?
• 不整合の考慮が必要
• 片方にのみ書込、Active/Standby
• 同時更新で不整合は起こらない
• 容易に高可用性構成が組める
Client Client
- 54. Why Percona ?
• 設計当時まだGRは未リリース
• 自動データリカバリ
• State Snapshot Transfer
• 中身はxtrabackupをncで転送
54
- 57. MySQL at Yahoo! JAPAN
57
管理対象DB数
1600
DBの規模
85%が30G以下
DB基盤構成
2世代
チーム
人数
問合せ数
- 58. MySQL at Yahoo! JAPAN
58
管理対象DB数
1600
DBの規模
85%が30G以下
DB基盤構成
2世代
チーム
人数
問合せ数
- 69. MySQL at Yahoo! JAPAN
69
管理対象DB数
1600
DBの規模
85%が30G以下
DB基盤構成
2世代
チーム人数
10名 問合せ数
- 70. MySQL at Yahoo! JAPAN
70
管理対象DB数
1600
DBの規模
85%が30G以下
DB基盤構成
2世代
チーム人数
10名 問合せ数
- 71. MySQL at Yahoo! JAPAN
71
管理対象DB数
1600
DBの規模
85%が30G以下
DB基盤構成
2世代
チーム人数
10名 20/week
- 83. MySQL at Yahoo! JAPAN
83
管理対象DB数
1600
DBの規模
85%が30G以下
DB基盤構成
2世代
チーム人数
10名
問合わせ数
20件/week
- 92. 明日のMySQL Session
時間 セッション名
09:30- MySQL/PostgreSQL
だけで作る高速あいまい全文検索システム
13:30- 稼働中プロジェクトにおけるMySQLバージョンアップ
14:30- MySQL: 突然全てのスレーブのレプケーションが “unknown
error reading log event on the master “ というエラーで
停止したら
15:30- 5.6から5.7へ、そして更なるサービスの可用性を目指して
17:30- LINEのMySQLの運用について