Upload
kentoku
View
1.724
Download
2
Embed Size (px)
DESCRIPTION
Talking about Spider and Mroonga with MariaDB 10.0
Citation preview
MariaDB 10.0と
Spider, Mroonga
スパイラルアーム / チームラボ
斯波健徳
Spiderストレージエンジン
Spiderストレージエンジンとは?
Spiderストレージエンジンは、
MySQL/MariaDBのプラグインで、
別のサーバにあるテーブルもしくはビューを、
ローカルのDBにあるテーブルもしくは
パーティションとして利用できる機能を
提供します。
MariaDB 10.0.4から、標準でバンドル
されています。
Spiderストレージエンジンの用途
Spiderを利用すると
大量のデータを複数サーバに分散させて
①大量のトラフィックを処理したり(DBシャーディング)
②並列処理したり(パラレル処理)
することができるようになります。
また、複数の別々のアプリケーションで利用しているDBを
③1つのDBとして利用することも可能
になります。
SPIDER (MySQL/MariaDB)
SPIDER (MySQL/MariaDB)
Spiderの構成例
DB1
tbl_a
1.Request
2.Just connect to spider
3.Response
DB2
tbl_b
DB3
tbl_c
AP
SPIDER (MySQL/MariaDB)
アプリケーションは、1つのデータベースに接続すれば、他のデータベースを意識せずに利用できる。
AP AP AP AP
Spiderの使い方 (1/5)
①Spiderがバンドルされた
MySQL/MariaDBをインストール
②MySQLにログインし、
Spiderをプラグインとしてインストール
(install_spider.sqlを実行)
③テーブルを作成
Spiderの使い方 (2/5)
1対1リンクテーブルなら
CREATE TABLE t1(
c1 int,
c2 varchar(100),
PRIMARY KEY(c1)
)ENGINE=spider DEFAULT CHARSET=utf8
COMMENT '
table "rt1", database "test", port "3306",
host "データノードのホスト名",
user "データノードログイン用ユーザ名",
password "パスワード"
';
ストレージエンジンにSpiderを指定し
COMMENTに接続情報(パラメータ)を記述すればOK
Spiderの使い方 (3/5)
MariaDBだと、Spiderテーブルを作成する場合にカラムの
情報を省略しても、データノードの定義を引き継いで、
テーブルが作成されます。
CREATE TABLE t1
ENGINE=spider DEFAULT CHARSET=utf8
COMMENT '
table "rt1", database "test", port "3306",
host "データノードのホスト名",
user "データノードログイン用ユーザ名",
password "パスワード"
‘;
Spiderの使い方 (4/5)
分割(sharding)テーブルなら
CREATE TABLE t1(
c1 int,
c2 varchar(100),
PRIMARY KEY(c1)
)ENGINE=spider DEFAULT CHARSET=utf8
COMMENT 'table "rt1", database "test", port "3306",
user "データノードログイン用ユーザ名", password "パスワード"'
PARTITION BY RANGE(c1) (
PARTITION p0 VALUES LESS THAN (100000) COMMENT 'host "h1"',
PARTITION p1 VALUES LESS THAN (200000) COMMENT 'host "h2"',
PARTITION p2 VALUES LESS THAN (300000) COMMENT 'host "h3"',
PARTITION p3 VALUES LESS THAN MAXVALUE COMMENT 'host "h4"'
);
テーブルのCOMMENTに共通する接続情報、
各パーティションにパーティション固有の接続情報を記述すればOK
Spiderの使い方 (5/5)
これらの接続情報は、CREATE SERVER構文を使ってあらかじめ
定義しておくこともでき
CREATE SERVER srv1
FOREIGN DATA WRAPPER mysql
HOST 'データノードのホスト名',
DATABASE 'test',
USER 'データノードログイン用ユーザ名',
PASSWORD 'パスワード',
PORT 3306
;
CREATE TABLE t1(
c1 int,
c2 varchar(100),
PRIMARY KEY(c1)
)ENGINE=spider DEFAULT CHARSET=utf8
COMMENT 'table "rt1", server "srv1"';
のように利用することができます。
Spiderのその他の機能
Spiderのその他の機能
冗長化機能
テーブル・パーティションの単位で冗長度を設定可能
耐障害性機能
Spider標準のものだけではなく、MySQLで利用可能な
他のソリューションが利用可能
全文検索・位置情報検索対応機能
バックエンドのMySQLの全文検索・位置情報検索
機能がそのまま利用可能
Spiderのその他の機能
NoSQL対応機能(MariaDB未)
handlersocketに対応
OracleDB接続機能
データノードとしてOracleDBを利用できる機能です。
※ソースコードからのビルドが必要です。
パラレル検索機能(MariaDB未、カスタマイズ版MariaDB 10.0では利用可)
shardingされているテーブルの検索時、
複数shardに対して並列に検索を行う機能です。
Spiderが使われているサービス
Spiderが使われているサービス
Eight 50万人が使う名刺管理アプリ
SpiderとMroongaが使われています。
https://8card.net/
CCM Escape
Elastic statistics cluster
http://www.slideshare.net/skysql/ccm-escape-case-
study-skysql-paris-meetup-17122013
Mroongaストレージエンジン
Mroongaストレージエンジンとは?
Mroongaストレージエンジンは、全文検索、
位置情報検索を提供するストレージエンジンで、
以下の特徴があります。
1. 高速な全文検索
2. 高速な位置情報検索
3. 検索中でも高速に更新が可能
(ロックフリーモデル)
4. 日本語全文検索に対応
Mroongaストレージエンジンとは?
5. 他のストレージエンジンと組み合わせて、
全文検索と位置情報検索の機能を
付加することも可能
6. Spiderと組み合わせて、分散したデータへの
全文検索、位置情報検索が可能
Mroonga’s document is available.
http://mroonga.github.com/
Mroongaが使われているサービス
Mroongaが使われているサービス
PatentField
無料の特許情報検索サイト
日本、海外主要国の特許情報を4,500万件以上収録。
全文検索、連想検索、権利の死活情報やパテントファミリーに
応じた絞り込みといった高度な特許検索サービスを提供
http://patentfield.com/
全国最新地価マップ
中古住宅・土地購入の際に参考になる地価履歴やその周辺の
公共施設・交通機関などの基本的な情報を地図から表示する
ためのサイト
http://ww1.chikamap.com/
Mroongaが使われているサービス
nanapi
恋愛から生活ネタ、Webサービスの使い方まであらゆる生活の
Howtoを集めているサイト
http://nanapi.jp/
rec.to
Twitterログ保存サービス
http://rec.to/
HONYAKU STAR
日英辞書およびコーパス
http://honyakustar.com/
Mroongaが使われているサービス
ikea-hikaku.com
IKEA製品全9,625件の通販/買い物代行価格を比較紹介する
サイト
http://ikea-hikaku.com/
sinsai.info
東日本大震災 みんなでつくる復興支援プラットフォーム
http://sinsai.info/
Bizreach
年収1000万円以上の転職サイト
http://www.bizreach.jp/
MariaDB 10.0
MariaDB 10.0とは?
MariaDB 10.0とは、次の最新安定版となるMariaDBで、
現在RC(Release Candidate)で、まもなく安定版に
なるというステータスです。
・マルチソースレプリケーション
・パラレルレプリケーション
が利用できるほか、
・ engine-independent table statistics
など、オプティマイザにも力が入っています。
MariaDB 10.0とは?
Spiderストレージエンジンが
既にバンドルされているほか、
Mroongaストレージエンジンも
現在バンドル作業中です。
カスタマイズ版MariaDB 10.0
カスタマイズ版MariaDB 10.0とは?
カスタマイズ版MariaDB 10.0とは、
これまでSpiderバンドル版MySQL 5.5で加えていた
カスタマイズと、
MariaDBの機能をよりよく利用するための
カスタマイズを
MariaDB 10.0に加えたバージョンです。
カスタマイズは、今後徐々にMariaDB本体に
組み込まれていく予定です。
カスタマイズ版MariaDB 10.0とは?
カスタマイズ版MariaDB 10.0では、現在のMariaDB
版では制限となっている、
slave_transaction_retry_errorsを使ったスレーブのリトライ
単一テーブルの更新の最適化
partitionされたSpiderテーブルの
・engine condition pushdown
・fulltext index search
・spacial index search
・全件countの最適化
・parallel search
が、利用できるほか
カスタマイズ版MariaDB 10.0とは?
PartitionされたSpiderテーブルでBKA(Batched Key
Access)を利用してjoinを高速化することができます。
Batched Key Accessは、「join_cache_level=5」以上を
設定することで有効になります。
効果的なので、ぜひお試しください。
カスタマイズ版MariaDB 10.0 with Spider 3.1は以下から
ダウンロードできます。
ソースコード http://spiderformysql.com/downloads/spider-3.1/mariadb-10.0.8-spider-3.1p.tgz
バイナリ http://spiderformysql.com/downloads/spider-3.1/mariadb-10.0.8-spider-3.1-linux-x86_64p.tgz
まとめ
・ Spiderストレージエンジンは、データベース
シャーディングを実現するストレージエンジンです。
・Mroongaストレージエンジンは、全文検索、位置
情報検索を提供するストレージエンジンです。
・MariaDB 10.0には、Spiderが既にバンドル
されており、Mroongaは現在バンドル作業中です。
・カスタマイズ版MariaDB 10.0を利用すると
Spiderの機能がより多く利用できるようになります。
まとめ
http://spiderformysql.com
Kentoku SHIBA (kentokushiba [at] gmail [dot] com)
Any Questions?
You can see me later!
Come to visit me!!
ご清聴ありがとうございました!