Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
67
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新卒_総合職採用_会社説明資料
livesense
PRO
0
1.5k
27新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
5.2k
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
PRO
0
130
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
0
1.6k
データ基盤の負債解消のためのリプレイス
livesense
PRO
0
510
26新卒_総合職採用_会社説明資料
livesense
PRO
0
12k
株式会社リブセンス会社紹介資料 / Invent the next common.
livesense
PRO
2
47k
26新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
1
13k
中途セールス職_会社説明資料
livesense
PRO
0
280
Other Decks in Technology
See All in Technology
大企業でもできる!ボトムアップで拡大させるプラットフォームの作り方
findy_eventslides
1
840
IAMユーザーゼロの運用は果たして可能なのか
yama3133
2
490
ハッカソンから社内プロダクトへ AIエージェント「ko☆shi」開発で学んだ4つの重要要素
sonoda_mj
4
190
ウェルネス SaaS × AI、1,000万ユーザーを支える 業界特化 AI プロダクト開発への道のり
hacomono
PRO
0
140
AWS運用を効率化する!AWS Organizationsを軸にした一元管理の実践/nikkei-tech-talk-202512
nikkei_engineer_recruiting
0
110
SQLだけでマイグレーションしたい!
makki_d
0
890
5分で知るMicrosoft Ignite
taiponrock
PRO
0
400
30分であなたをOmniのファンにしてみせます~分析画面のクリック操作をそのままコード化できるAI-ReadyなBIツール~
sagara
0
180
子育てで想像してなかった「見えないダメージ」 / Unforeseen "hidden burdens" of raising children.
pauli
2
290
20251218_AIを活用した開発生産性向上の全社的な取り組みの進め方について / How to proceed with company-wide initiatives to improve development productivity using AI
yayoi_dd
0
130
会社紹介資料 / Sansan Company Profile
sansan33
PRO
11
390k
WordPress は終わったのか ~今のWordPress の制作手法ってなにがあんねん?~ / Is WordPress Over? How We Build with WordPress Today
tbshiki
1
820
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
698
190k
How to Ace a Technical Interview
jacobian
281
24k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Docker and Python
trallard
47
3.7k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Navigating Team Friction
lara
191
16k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
The Cult of Friendly URLs
andyhume
79
6.7k
Building an army of robots
kneath
306
46k
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 ?