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
MySQL Cluster vol.2 #TechLunch
Search
Livesense Inc.
PRO
April 21, 2014
Technology
0
62
MySQL Cluster vol.2 #TechLunch
MySQL Cluster vol.2
2012/07/11 (水) @ Livesense TechLunch
発表者:福田 絵里
Livesense Inc.
PRO
April 21, 2014
Tweet
Share
More Decks by Livesense Inc.
See All by Livesense Inc.
27新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
350
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
PRO
0
21
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
0
1.4k
データ基盤の負債解消のためのリプレイス
livesense
PRO
0
400
26新卒_総合職採用_会社説明資料
livesense
PRO
0
9.1k
株式会社リブセンス会社紹介資料 / Invent the next common.
livesense
PRO
1
28k
26新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
1
12k
中途セールス職_会社説明資料
livesense
PRO
0
250
EM候補者向け転職会議説明資料
livesense
PRO
0
120
Other Decks in Technology
See All in Technology
Getting to Know Your Legacy (System) with AI-Driven Software Archeology (WeAreDevelopers World Congress 2025)
feststelltaste
1
160
Delta airlines®️ USA Contact Numbers: Complete 2025 Support Guide
airtravelguide
0
340
高速なプロダクト開発を実現、創業期から掲げるエンタープライズアーキテクチャ
kawauso
3
9.7k
React開発にStorybookとCopilotを導入して、爆速でUIを編集・確認する方法
yu_kod
1
300
サイバーエージェントグループのSRE10年の歩みとAI時代の生存戦略
shotatsuge
4
420
fukabori.fm 出張版: 売上高617億円と高稼働率を陰で支えた社内ツール開発のあれこれ話 / 20250704 Yoshimasa Iwase & Tomoo Morikawa
shift_evolve
PRO
2
8.1k
CDKTFについてざっくり理解する!!~CloudFormationからCDKTFへ変換するツールも作ってみた~
masakiokuda
1
180
Claude Code に プロジェクト管理やらせたみた
unson
6
4.6k
SEQUENCE object comparison - db tech showcase 2025 LT2
nori_shinoda
0
160
Glacierだからってコストあきらめてない? / JAWS Meet Glacier Cost
taishin
1
170
マネジメントって難しい、けどおもしろい / Management is tough, but fun! #em_findy
ar_tama
7
1.2k
AWS CDK 開発を成功に導くトラブルシューティングガイド
wandora58
2
130
Featured
See All Featured
Balancing Empowerment & Direction
lara
1
430
Raft: Consensus for Rubyists
vanstee
140
7k
Writing Fast Ruby
sferik
628
62k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
The Language of Interfaces
destraynor
158
25k
Code Review Best Practice
trishagee
69
19k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
50
5.5k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Building Applications with DynamoDB
mza
95
6.5k
Facilitating Awesome Meetings
lara
54
6.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
830
Transcript
MySQL Cluster 7.2 as NoSQL + α
Introduction MySQL Cluster : 分散型リアルタイム データベース管理システム 高いスループット・拡張性・可用性を実現 複数のサーバーで同時に更新と参照を行える 既存のアプリとSQLの互換性を保てる
99.999%の 高可用性
None
Features ・SQLまたは固有のAPI(Java/C++)によるアクセス → NewSQL ・高速なインメモリ型テーブル ・容量が必要な場合のディスク型テーブル ・アクティブ‐アクティブなクラスタ構成 ・シェアードナッシングアーキテクチャ ・ACID準拠のトランザクション ・行レベルロック
・ビルトインのHA機能 ・ノードの台数に応じた高い並列処理 ・オンラインバックアップ ・オンラインスキーマ変更 ・オンラインノード拡張 ・オンライン(ローリング)アップグレード・ダウングレード ・レプリケーション ・スキーマ、データの同期自動化
「NewSQL」 : NoSQL and RDBMS NewSQL SQLでも、NoSQLでも、 同一のデータを扱う <NoSQL>
NDB API memcached API (7.2から) <RDBMS> mysql
Shared Nothing Architecture ノード間連携方法 テーブルのデータは行ごとに「フラグメント」に 割り振られている 「フラグメント」は複数のノードに複製される
High Availability データノード間連携方法 : 「フラグメント」の複製 テーブルのデータは行ごとに「フラグメント」に 割り振られている 「フラグメント」は複数のノードに複製される
データノード間連携方法 : 「フラグメント」の複製 ノードグループ1 データノード2 データノード1 F1 セカンダリ F3 セカンダリ
F3 プライマリ F1 プライマリ ノードグループ2 データノード4 データノード3 F2 セカンダリ F4 セカンダリ F4 プライマリ F2 プライマリ High Availability
データノード間連携方法 : 「フラグメント」の複製 ノードグループ数 = データノード数 ÷ レプリカ数 データノードがひとつ ダウンしても、処理を
継続できる。 High Availability
Other Products Oracle RAC, DB2 pureScale(IBM) → シェアードディスク あるアプリケーションノードで障害が発生しても、 ほかのノードに処理を引き継ぎやすく、耐障害性に
優れる。 複数ノードのデータベースからのアクセスが競合し たときのロック現象は避けられない。つまり、サー バーの台数が多くなるほど、ロックによってパ フォーマンスが低下する。
MySQL Clusterはシェアードナッシング アーキテクチャの欠点を克服
7.1 → 7.2 (2012/02/15 正式版公開) ・joinが70倍高速 (Adaptive Query Localizationによる) ・Memcached
API搭載 Release Note
News MySQL Cluster 7.3 (ラボ版) 外部キーをサポート ただし、MySQL(InnoDB)とMySQL Cluster(NDB ストレージエンジン)をまたがった外部キー定義は 不可
外部キーはデータノード上でチェックする
Conflict ? 2組のClusterをマルチマスターレプリケーション 構成にする場合にのみ、更新の衝突を考慮しなけ ればならない ハッシュ値によって各行の一意性が担保されて格 納されているため、更新の衝突は起こらない ※トランザクション分離レベルはREAD COMMITEDのみサポート
API
MySQL Connecter MySQLコネクタを使用可 SQLノードを経由してMySQL Clusterにアクセス ◦Connector/ODBC ◦Connector/J ◦Connector/NET ◦Connector/C++ ◦Connector/C
◦C API for MySQL (mysqlclient) ◦MySQL Connector for OpenOffice.org
NoSQL Memcached, C++, Java, OpenJPA, OpenLDAP, HTTP/REST(mod-ndb)などを介して、 ネイティブNoSQL接続を提供
・SQLを利用しない (NoSQLの一種) ・SQLによるアクセスよりもさらに高性能 ・C++またはJavaによるオブジェクト指向API ・ACID準拠のトランザクション ・ハッシュインデックスを用いたルックアップ ・オーダードインデックスを用いた範囲検索とソー ト NDB API
NDB API直接使用 → 低級な処理を自分でコーディング ClusterJからNDB API呼び出し → プログラミングの手間軽減 NDB API
•ClusterJ Java実装 JNI経由でC++のNDB APIを呼び出す O/Rマッパー風のインターフェイス ※ClusterJPA Apache OpenJPAのプラグインとしてClusterJを利 用するためのインターフェイス Connector/Jとの併用可
•memcached API NDBテーブルへアクセスする手段 NDB APIとは異なり、トランザクション対応ではない 特徴 ・テーブルのデータが直接書き換えられる→同期考慮の必 要なし ・memcachedサーバが停止しても、他のサーバへつなぎ 替えるだけで、全てのデータへアクセス可能(コンシステ
ントハッシュ法による負荷分散の場合と異なる) 高速問い合わせ → memcached API 複雑な問い合わせ → SQL memcached API
Appendix
None
None
None
Introduction Example GMOとくとくショップ (2010年) http://www.gmo.jp/report/technology/03/index.php 住商情報システム株式会社 (2009年) http://www.slideshare.net/hirohama/my-sql-cluster 国内大手メディア企業における MySQL
Cluster 導 入事例 – MySQLカンファレンス2007 http://d.hatena.ne.jp/akiyan/20070912/1189591680
Next R ?