32
MariaDB 10.0Spider, Mroonga スパイラルアーム / チームラボ 斯波健徳

MariaDB Spider Mroonga 20140218

  • Upload
    kentoku

  • View
    1.724

  • Download
    2

Embed Size (px)

DESCRIPTION

Talking about Spider and Mroonga with MariaDB 10.0

Citation preview

Page 1: MariaDB Spider Mroonga 20140218

MariaDB 10.0と

Spider, Mroonga

スパイラルアーム / チームラボ

斯波健徳

Page 2: MariaDB Spider Mroonga 20140218

Spiderストレージエンジン

Page 3: MariaDB Spider Mroonga 20140218

Spiderストレージエンジンとは?

Spiderストレージエンジンは、

MySQL/MariaDBのプラグインで、

別のサーバにあるテーブルもしくはビューを、

ローカルのDBにあるテーブルもしくは

パーティションとして利用できる機能を

提供します。

MariaDB 10.0.4から、標準でバンドル

されています。

Page 4: MariaDB Spider Mroonga 20140218

Spiderストレージエンジンの用途

Spiderを利用すると

大量のデータを複数サーバに分散させて

①大量のトラフィックを処理したり(DBシャーディング)

②並列処理したり(パラレル処理)

することができるようになります。

また、複数の別々のアプリケーションで利用しているDBを

③1つのDBとして利用することも可能

になります。

Page 5: MariaDB Spider Mroonga 20140218

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

Page 6: MariaDB Spider Mroonga 20140218

Spiderの使い方 (1/5)

①Spiderがバンドルされた

MySQL/MariaDBをインストール

②MySQLにログインし、

Spiderをプラグインとしてインストール

(install_spider.sqlを実行)

③テーブルを作成

Page 7: MariaDB Spider Mroonga 20140218

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

Page 8: MariaDB Spider Mroonga 20140218

Spiderの使い方 (3/5)

MariaDBだと、Spiderテーブルを作成する場合にカラムの

情報を省略しても、データノードの定義を引き継いで、

テーブルが作成されます。

CREATE TABLE t1

ENGINE=spider DEFAULT CHARSET=utf8

COMMENT '

table "rt1", database "test", port "3306",

host "データノードのホスト名",

user "データノードログイン用ユーザ名",

password "パスワード"

‘;

Page 9: MariaDB Spider Mroonga 20140218

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

Page 10: MariaDB Spider Mroonga 20140218

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"';

のように利用することができます。

Page 11: MariaDB Spider Mroonga 20140218

Spiderのその他の機能

Page 12: MariaDB Spider Mroonga 20140218

Spiderのその他の機能

冗長化機能

テーブル・パーティションの単位で冗長度を設定可能

耐障害性機能

Spider標準のものだけではなく、MySQLで利用可能な

他のソリューションが利用可能

全文検索・位置情報検索対応機能

バックエンドのMySQLの全文検索・位置情報検索

機能がそのまま利用可能

Page 13: MariaDB Spider Mroonga 20140218

Spiderのその他の機能

NoSQL対応機能(MariaDB未)

handlersocketに対応

OracleDB接続機能

データノードとしてOracleDBを利用できる機能です。

※ソースコードからのビルドが必要です。

パラレル検索機能(MariaDB未、カスタマイズ版MariaDB 10.0では利用可)

shardingされているテーブルの検索時、

複数shardに対して並列に検索を行う機能です。

Page 14: MariaDB Spider Mroonga 20140218

Spiderが使われているサービス

Page 15: MariaDB Spider Mroonga 20140218

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

Page 16: MariaDB Spider Mroonga 20140218

Mroongaストレージエンジン

Page 17: MariaDB Spider Mroonga 20140218

Mroongaストレージエンジンとは?

Mroongaストレージエンジンは、全文検索、

位置情報検索を提供するストレージエンジンで、

以下の特徴があります。

1. 高速な全文検索

2. 高速な位置情報検索

3. 検索中でも高速に更新が可能

(ロックフリーモデル)

4. 日本語全文検索に対応

Page 18: MariaDB Spider Mroonga 20140218

Mroongaストレージエンジンとは?

5. 他のストレージエンジンと組み合わせて、

全文検索と位置情報検索の機能を

付加することも可能

6. Spiderと組み合わせて、分散したデータへの

全文検索、位置情報検索が可能

Mroonga’s document is available.

http://mroonga.github.com/

Page 19: MariaDB Spider Mroonga 20140218

Mroongaが使われているサービス

Page 20: MariaDB Spider Mroonga 20140218

Mroongaが使われているサービス

PatentField

無料の特許情報検索サイト

日本、海外主要国の特許情報を4,500万件以上収録。

全文検索、連想検索、権利の死活情報やパテントファミリーに

応じた絞り込みといった高度な特許検索サービスを提供

http://patentfield.com/

全国最新地価マップ

中古住宅・土地購入の際に参考になる地価履歴やその周辺の

公共施設・交通機関などの基本的な情報を地図から表示する

ためのサイト

http://ww1.chikamap.com/

Page 21: MariaDB Spider Mroonga 20140218

Mroongaが使われているサービス

nanapi

恋愛から生活ネタ、Webサービスの使い方まであらゆる生活の

Howtoを集めているサイト

http://nanapi.jp/

rec.to

Twitterログ保存サービス

http://rec.to/

HONYAKU STAR

日英辞書およびコーパス

http://honyakustar.com/

Page 22: MariaDB Spider Mroonga 20140218

Mroongaが使われているサービス

ikea-hikaku.com

IKEA製品全9,625件の通販/買い物代行価格を比較紹介する

サイト

http://ikea-hikaku.com/

sinsai.info

東日本大震災 みんなでつくる復興支援プラットフォーム

http://sinsai.info/

Bizreach

年収1000万円以上の転職サイト

http://www.bizreach.jp/

Page 23: MariaDB Spider Mroonga 20140218

MariaDB 10.0

Page 24: MariaDB Spider Mroonga 20140218

MariaDB 10.0とは?

MariaDB 10.0とは、次の最新安定版となるMariaDBで、

現在RC(Release Candidate)で、まもなく安定版に

なるというステータスです。

・マルチソースレプリケーション

・パラレルレプリケーション

が利用できるほか、

・ engine-independent table statistics

など、オプティマイザにも力が入っています。

Page 25: MariaDB Spider Mroonga 20140218

MariaDB 10.0とは?

Spiderストレージエンジンが

既にバンドルされているほか、

Mroongaストレージエンジンも

現在バンドル作業中です。

Page 26: MariaDB Spider Mroonga 20140218

カスタマイズ版MariaDB 10.0

Page 27: MariaDB Spider Mroonga 20140218

カスタマイズ版MariaDB 10.0とは?

カスタマイズ版MariaDB 10.0とは、

これまでSpiderバンドル版MySQL 5.5で加えていた

カスタマイズと、

MariaDBの機能をよりよく利用するための

カスタマイズを

MariaDB 10.0に加えたバージョンです。

カスタマイズは、今後徐々にMariaDB本体に

組み込まれていく予定です。

Page 28: MariaDB Spider Mroonga 20140218

カスタマイズ版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

が、利用できるほか

Page 29: MariaDB Spider Mroonga 20140218

カスタマイズ版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

Page 30: MariaDB Spider Mroonga 20140218

まとめ

Page 31: MariaDB Spider Mroonga 20140218

・ Spiderストレージエンジンは、データベース

シャーディングを実現するストレージエンジンです。

・Mroongaストレージエンジンは、全文検索、位置

情報検索を提供するストレージエンジンです。

・MariaDB 10.0には、Spiderが既にバンドル

されており、Mroongaは現在バンドル作業中です。

・カスタマイズ版MariaDB 10.0を利用すると

Spiderの機能がより多く利用できるようになります。

まとめ

Page 32: MariaDB Spider Mroonga 20140218

http://spiderformysql.com

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

Any Questions?

You can see me later!

Come to visit me!!

ご清聴ありがとうございました!