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
0
95
MySQL Cluster 7.2 as NoSQL + α #TechLunch
2012/07/11(水) @ Livesense TechLunch
発表者:福田 絵里
Livesense Inc.
PRO
April 23, 2014
Tweet
Share
More Decks by Livesense Inc.
See All by Livesense Inc.
27新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
2.4k
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
PRO
0
51
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
0
1.5k
データ基盤の負債解消のためのリプレイス
livesense
PRO
0
440
26新卒_総合職採用_会社説明資料
livesense
PRO
0
11k
株式会社リブセンス会社紹介資料 / Invent the next common.
livesense
PRO
1
37k
26新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
1
13k
中途セールス職_会社説明資料
livesense
PRO
0
260
EM候補者向け転職会議説明資料
livesense
PRO
0
130
Other Decks in Technology
See All in Technology
RSCの時代にReactとフレームワークの境界を探る
uhyo
10
3.3k
【実演版】カンファレンス登壇者・スタッフにこそ知ってほしいマイクの使い方 / 大吉祥寺.pm 2025
arthur1
1
660
機械学習を扱うプラットフォーム開発と運用事例
lycorptech_jp
PRO
0
220
ハードウェアとソフトウェアをつなぐ全てを内製している企業の E2E テストの作り方 / How to create E2E tests for a company that builds everything connecting hardware and software in-house
bitkey
PRO
1
120
COVESA VSSによる車両データモデルの標準化とAWS IoT FleetWiseの活用
osawa
1
260
DevIO2025_継続的なサービス開発のための技術的意思決定のポイント / how-to-tech-decision-makaing-devio2025
nologyance
1
370
複数サービスを支えるマルチテナント型Batch MLプラットフォーム
lycorptech_jp
PRO
0
280
人工衛星のファームウェアをRustで書く理由
koba789
11
6.9k
AWSを利用する上で知っておきたい名前解決のはなし(10分版)
nagisa53
10
3k
AWSで始める実践Dagster入門
kitagawaz
1
570
バッチ処理で悩むバックエンドエンジニアに捧げるAWS Glue入門
diggymo
3
180
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
220
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
246
12k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Designing for humans not robots
tammielis
253
25k
Producing Creativity
orderedlist
PRO
347
40k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
187
55k
Side Projects
sachag
455
43k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Speed Design
sergeychernyshev
32
1.1k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
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 ?