SlideShare a Scribd company logo
MariaDB 10.0と
Spider, Mroonga

スパイラルアーム / チームラボ
斯波健徳
Spiderストレージエンジン
Spiderストレージエンジンとは?

Spiderストレージエンジンは、
MySQL/MariaDBのプラグインで、
別のサーバにあるテーブルもしくはビューを、
ローカルのDBにあるテーブルもしくは
パーティションとして利用できる機能を
提供します。
MariaDB 10.0.4から、標準でバンドル
されています。
Spiderストレージエンジンの用途
Spiderを利用すると
大量のデータを複数サーバに分散させて
①大量のトラフィックを処理したり(DBシャーディング)
②並列処理したり(パラレル処理)
することができるようになります。
また、複数の別々のアプリケーションで利用しているDBを
③1つのDBとして利用することも可能
になります。
Spiderの構成例
3.Response

1.Request
AP

AP

AP

AP

AP

2.Just connect to spider

SPIDER

SPIDER

SPIDER

(MySQL/MariaDB)

(MySQL/MariaDB)

(MySQL/MariaDB)

tbl_a

tbl_b

tbl_c

DB1

DB2

DB3

アプリケーションは、1つのデータベースに接続すれば、
他のデータベースを意識せずに利用できる。
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-casestudy-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の機能がより多く利用できるようになります。
ご清聴ありがとうございました!
Any Questions?

You can see me later!
Come to visit me!!

Kentoku SHIBA (kentokushiba [at] gmail [dot] com)

http://spiderformysql.com

More Related Content

PDF
Spiderの最新動向 20130419
PDF
Spiderの最新動向 20131009
PDF
Spiderストレージエンジンのご紹介
PDF
Spider storage engine (dec212016)
PDF
Spider DeNA Technology Seminar #2
PDF
MariaDB 10.3から利用できるSpider関連の性能向上機能・便利機能ほか
PDF
Spiderストレージエンジンの使い方と利用事例 他ストレージエンジンの紹介
PDF
hs_spider_hs_something_20110906
Spiderの最新動向 20130419
Spiderの最新動向 20131009
Spiderストレージエンジンのご紹介
Spider storage engine (dec212016)
Spider DeNA Technology Seminar #2
MariaDB 10.3から利用できるSpider関連の性能向上機能・便利機能ほか
Spiderストレージエンジンの使い方と利用事例 他ストレージエンジンの紹介
hs_spider_hs_something_20110906

What's hot (20)

PPTX
MySQLの運用でありがちなこと
PDF
MySQLバックアップの基本
PPT
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
PDF
MySQL のオンラインバックアップ & リカバリ
PDF
MySQL Cluster 新機能解説 7.5 and beyond
PPTX
innodb_thread_concurrencyとtransparent hugepageの影響
DOC
cassandra調査レポート
PDF
MySQL 初めてのチューニング
PPTX
My sqlで2億件のシリアルデータと格闘した話
PDF
MySQL カジュアル 福岡 03
PDF
MySQLやSSDとかの話 前編
PPT
Cassandraのしくみ データの読み書き編
PDF
お金が無いときのMySQL Cluster頼み
PDF
S01 企業で活用が進む Microsoft Azureの仮想マシン (Windows)
PDF
Infinispan - Open Source Data Grid
PDF
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
PDF
S10 日本東西リージョンでのディザスタ リカバリ環境の実現
PDF
tcpdump & xtrabackup @ MySQL Casual Talks #1
PPTX
Persistence on Azure - Microsoft Azure の永続化
PDF
MHA for MySQLとDeNAのオープンソースの話
MySQLの運用でありがちなこと
MySQLバックアップの基本
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
MySQL のオンラインバックアップ & リカバリ
MySQL Cluster 新機能解説 7.5 and beyond
innodb_thread_concurrencyとtransparent hugepageの影響
cassandra調査レポート
MySQL 初めてのチューニング
My sqlで2億件のシリアルデータと格闘した話
MySQL カジュアル 福岡 03
MySQLやSSDとかの話 前編
Cassandraのしくみ データの読み書き編
お金が無いときのMySQL Cluster頼み
S01 企業で活用が進む Microsoft Azureの仮想マシン (Windows)
Infinispan - Open Source Data Grid
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
S10 日本東西リージョンでのディザスタ リカバリ環境の実現
tcpdump & xtrabackup @ MySQL Casual Talks #1
Persistence on Azure - Microsoft Azure の永続化
MHA for MySQLとDeNAのオープンソースの話
Ad

Viewers also liked (10)

PPT
Handlersocket etc. 20110906
PDF
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
PPT
HandlerSocket plugin for MySQL (English)
PPT
Handlersocket 20140218
PDF
MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記
PDF
MariaDB ColumnStore 20160721
PPTX
日本語:Mongo dbに於けるシャーディングについて
PDF
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
PDF
VPとSPIDERを使ったMySQL運用
PDF
In-Database Analyticsの必要性と可能性
Handlersocket etc. 20110906
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
HandlerSocket plugin for MySQL (English)
Handlersocket 20140218
MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記
MariaDB ColumnStore 20160721
日本語:Mongo dbに於けるシャーディングについて
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
VPとSPIDERを使ったMySQL運用
In-Database Analyticsの必要性と可能性
Ad

Similar to MariaDB Spider Mroonga 20140218 (8)

PDF
MariaDB 10.3 概要
PDF
MariaDB meetup Tokyo 2019 #01
PDF
Introducing Spider 20101206(DTT#7)
PDF
Spider Shibuya.pm #12
PDF
MariaDB Meetup Tokyo 2019 #2
PPTX
たくさんあるよMy sql互換db(正式版)
PPTX
Memcached api搭載の「my sql cluster 7.2」
PDF
Introducing mroonga 20111129
MariaDB 10.3 概要
MariaDB meetup Tokyo 2019 #01
Introducing Spider 20101206(DTT#7)
Spider Shibuya.pm #12
MariaDB Meetup Tokyo 2019 #2
たくさんあるよMy sql互換db(正式版)
Memcached api搭載の「my sql cluster 7.2」
Introducing mroonga 20111129

More from Kentoku (13)

PDF
An issue of all slaves stop replication
PDF
How to migrate_to_sharding_with_spider
PDF
Using spider for sharding in production
PDF
Sharding with spider solutions 20160721
PDF
Mroonga 20141129
PDF
Mroonga 20131129
PDF
Newest topic of spider 20131016 in Buenos Aires Argentina
PDF
Mroonga 20121129
PDF
Mroonga unsupported feature_20111129
PDF
Spider HA 20100922(DTT#7)
PDF
Charms of MySQL 20101206(DTT#7)
PDF
Advanced Sharding Techniques with Spider (MUC2010)
PDF
Spider Performance Test(Bench Mark04242009)
An issue of all slaves stop replication
How to migrate_to_sharding_with_spider
Using spider for sharding in production
Sharding with spider solutions 20160721
Mroonga 20141129
Mroonga 20131129
Newest topic of spider 20131016 in Buenos Aires Argentina
Mroonga 20121129
Mroonga unsupported feature_20111129
Spider HA 20100922(DTT#7)
Charms of MySQL 20101206(DTT#7)
Advanced Sharding Techniques with Spider (MUC2010)
Spider Performance Test(Bench Mark04242009)

MariaDB Spider Mroonga 20140218