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 7.2 as NoSQL + α #TechLunch
Search
Livesense Inc.
PRO
April 23, 2014
Technology
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MySQL Cluster 7.2 as NoSQL + α #TechLunch
2012/07/11(水) @ Livesense TechLunch
発表者:福田 絵里
Livesense Inc.
PRO
April 23, 2014
More Decks by Livesense Inc.
See All by Livesense Inc.
Rubyはただの⾔語に⾮ず
livesense
PRO
0
450
28新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
110
27新卒_総合職採用_会社説明資料
livesense
PRO
0
6.2k
27新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
11k
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
PRO
0
520
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
1
1.7k
データ基盤の負債解消のためのリプレイス
livesense
PRO
0
650
26新卒_総合職採用_会社説明資料
livesense
PRO
0
13k
株式会社リブセンス会社紹介資料 / Invent the next common.
livesense
PRO
2
70k
Other Decks in Technology
See All in Technology
書籍セキュアAPIについて
riiimparm
0
240
AIツールを導入しても生産性はあがらない? カオナビが直面した 3つの壁と乗り越え方。/ Overcoming 3 Barriers to AI-Driven Productivity at kaonavi
kaonavi
0
170
[Droidcon Orlando '26] The Android Lens: Applying Mobile Forensics to AI Performance
amanda_hinchman
1
110
reFACToring
moznion
0
190
キャリアLT会#3
beli68
2
240
それでも、技術なブログを書く理由 #kichijojipm / Why I Still Write Tech Blogs Even Now
shinkufencer
0
400
PHPで作って学ぶリアルタイム音声対話AIとWebSocket入門 by ムナカタ
munakata
0
130
壊して学ぶAWS CDK: そのcdk deployで消えるもの、残るもの
k_adachi_01
1
480
仕様駆動開発、導入半年。「本当に速くなってるの?」にデータで答える / AICon2026_hirakawa
rakus_dev
0
320
「休む」重要さ
smt7174
6
1.6k
AIコード生成×サプライチェーン攻撃 — PHPが直面する“二重の信頼問題
shinyasaita
0
450
大 AI 時代におけるC# の事情 ~ぶっちゃけトークを交えながら~
nenonaninu
0
110
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.8k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
410
Balancing Empowerment & Direction
lara
6
1.2k
Faster Mobile Websites
deanohume
310
32k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.4k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
330
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
160
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.6k
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 ?