Spider Storage Engine
MySQL&MariaDBとSpiderの簡単な歴史
1995
MySQL AB
1981
20072008
2010
2012-20162008 OCT 発表
Spiral Arms., Ltd All Rights Reserved
Scale up サーバーの性能をあげることにより処理能力をあげる手法
Scale out サーバーの台数を増やすことにより処理能力をあげる手法
Sharding
1台のサーバーで扱いきれなくなったデータやトラフィックを複数のサーバーに分散する技術
Scale Up / Scale Out
Spider誕生秘話 ( The Secret Story how Spider was born)
Spiral Arms., Ltd All Rights Reserved
1. 開発者の斯波がMySQLのプロジェクトに多々携わった
2. MySQLのソースコードを自由に改変できる点を大いに利用
3. ストレージエンジンをプラグインできる
4. Shardingをアプリケーションの改変なしで、なんとか何かできないか。。。。。
Spider と MySQL Fabric
Spider と Fabric(Flame work) の比較
MySQL Fabric Spider
コネクター△利用できるコネクターが限定されている。
○全てのコネクターが利用可能。
最低ホップ数○1ホップ
△2ホップただし、実テーブルを利用する場合は1ホップ。
データの冗長化△非同期のみ
○同期、非同期選択可能
耐障害性
○Fabricフレームワークで用意されたもののほかに、これまで使い慣れたテクニックがそのまま利用できる。
○Spiderで用意されているもののほかに、これまで使い慣れたテクニックがそのまま利用できる。
単一障害点×MySQL Fabricノードが冗長化できない。
○単一障害点なし
Spider と Fabric の比較
MySQL Fabric Spider
シャーディング△HASH、RANGEが利用可能。
○KEY、HASH、RANGE、LIST、RANGE COLUMNS、LIST COLUMNS、SUB PARTITIONが利用可能。
同一ノード内join○joinされたSQLを直接データノードに送るので高速。
○現在のところは、1テーブルずつの問い合わせになるので、Fabric方式より遅くはなるが、BKAをサポートしているため高速。データノードでjoinされたviewを作成し、そのviewに対応するSpiderテーブルを作成することで、データノードでjoinすることが可能。
異なるノード間でのjoin
×サポートされていない。
○BKAをサポートしているため高速。
Spiderはこれからこうなる!!
The Future of Spider
Spiral Arms., Ltd All Rights Reserved
• 世界中にSpiderのContributorがいる
• MariaDBのエンジニアの支援があり、MariaDB10.0.4~バンドルされている
• MySQLのv5.7~の開発にも注力し、Percona
サーバーや他DB対応も視野に入れている
Spiderが使われているサービス
CCM Escape
日本人が開発したMySQL関連
Spiral Arms., Ltd All Rights Reserved
• MHA(MySQL Master HA) HA構成を管理するためのツール Facebook 松信氏
• handlersocket MySQLをキーバリューストアとして使えるようにするプラグイン DeNA樋口氏
• Mroonga 全文検索に特化したストレージエンジン by 未来検索ブラジル 他
2017年前半のメジャーイベント
Spiral Arms., Ltd All Rights Reserved
• 1月 OR 2月にMeetup Tokyo を開催予定
• 2017年4月 M17/MariaDB Conference in NYC
m17.mariadb.com
• 2017年4月 Percona Open Source Database Conference in
Santa Clara, CA
percona.com/live/17/