#garagekidztweetz

id:garage-kid@76whizkidz のライフログ・ブログ!

Oracle に敵愾心丸出しのトーク爆裂な MariaDB/MySQL コミュニティイベント in TOKYO #mariadbtokyo に行ってきた

スポンサーリンク

最近、 Google swaps out MySQL, moves to MariaDB な記事がでたこともあってにわかに熱い MariaDB 。その MariaDB のサポートを行っている SkySQL 社の CTO およびエヴァンジェリストの話が直に聞けるということで、今日はMariaDB/MySQL コミュニティイベント in TOKYO | 集客ならイベントアテンドに参加してきました。

最初に雑感を書いておくと、

  1. 面白かった!
    • SkySQL の方々が Oracle に敵愾心丸出しだったから。
    • 個人的にはそこがとても面白いポイントでしたががが…
    • 片方の意見だけ聞くのはフェアじゃないので、 MySQL@Oracle の方もスピーカーとして呼んでガチンコバトルしてくれたらもっと面白かったんだろうな、なんて思いました。
  2. でも、通訳の方、訳を間違い過ぎっすよ、と。
    • 英語なら通訳いらないでしょとまで言う気は、最近の自分にはないですが(やっぱり訳があった方が楽なんで)、今回は申し訳無いですが通訳がなかった方がよかったんじゃないか、と思ってしまいました。進行もない方が押さないで済んだ気がします。

ちなみに開催場所は富士ソフト秋葉原ビルで、アジェンダは以下のとおりでした。

【アジェンダ】

  • 12:30- 受付開始
  • 13:00- "挨拶" Michael Carney氏 SkySQL Vice President of Sales
  • 13:10- Colin Charles氏: "MariaDB 10 & MariaDB Foundationについて"
  • 14:40- 斯波 健徳氏: "Spider Storage Engineの最新情報""
  • 15:30- Ivan Zoratti氏: "MariaDB Manager and MaxScale New tools for MariaDB and the MySQL ecosystem"
  • 16:50- (株)アシスト 花谷 俊英氏: "SkySQLサポートの事例について"

以下より、いつもどおり、わたしがとってきたメモを公開しておきます。
MariaDB 5.5 からいきなり 10.0 にジャンプした話や、 XtraDB を default storage engine にしようとしているといったあたりが聴き応えあったなぁ、といったところかな、と。

13:00- "挨拶" Michael Carney氏 SkySQL Vice President of Sales

  • セールスパーソンなので手短に。

*****

  • Origin
    • SkySQL & MariaDB
    • MySQL 自体は 1995 年に生まれた (企業であり、製品であった)
    • Community と企業が同時に始まった (Linux のケースとは違い)
    • その後、 2007 に MySQL は Sun に買収
    • 2009 どう MySQL を発展の方向性の違いから Monty 氏が MariaDB を Fork
    • MariaDB の Goal はいついかなるときにも OSS
    • Oracle に買収されることを予期していたのかもしれない
    • そして 元 Sun の MySQL 担当者たちが独立し SkySQL を立ち上げた (Monty氏と David 氏も出資)
    • そして今年 (2013年)、 MariaDB のエンジニアリングをする会社とサポートをする会社もひとつの SkySQL になった

*****

  • mariadb.org
  • mariadb.com - commercial support
  • skysql.com - mysql and mariadb support

*****

  • SkySQL: serving the ecosystem
    • 日本の法人は spiral arms とアシスト

*****

  • Why SkySQL?
    • 2 つのセールスポイント
      • 契約の継続率 93%
      • 顧客満足 5 点満点で 4 以上

*****

  • SkySQL Enterprise には Standard と Enterprise
    • Oracle では対応できていない部分で数多くのカバレッジがある
    • OSS の Extension (Audit Plugin, etc...)
    • 400+ Customers in 34 Countories (Google )

*****

  • Q1. スライド中の SkySQL の顧客リストは MySQL と MariaDB どっちの顧客か?
    • 両方込み、です。
    • Google に関して言えば、 MariaDB 。 Google は MariaDB に移ったから。
    • 顧客ニーズにあわせて、 MySQL/MariaDB のサポートを行う

13:10- Colin Charles氏: "MariaDB 10 & MariaDB Foundationについて"

  • まだ 9 日目の SkySQL のエヴァンジェリスト
  • 13年のキャリアはずっと MySQL

*****

  • 44 months major server releases (5.1, 5.2, 5.3, 5.5, Galera Cluster) and 10.0 series
  • LGPL で多言語に対応

*****

  • What is MariaDB?
    • Community developed branch of MySQL
    • Feature enhanced
    • Fully compatible & feature complete with MySQL (どんな MySQL の新しい機能もすぐにadaptするという自信満々の発言)
    • under MariaDB Foundation management

*****

  • Ownership
    • MySQL owened by MySQL AB -> Sun -> Oracle
    • SkySQL is a major sponsor of MariaDB
    • MariaDB governed by MariaDB Foundation
    • maria-captains contains community like Sphinxsearch, Linkedin, Taobao, Facebook, Percona, Codership, & more (コントリビューターがこんなにいるんやで、と)

*****

  • Aims of MariaDB
    • Compatible, drop-in replacement to MySQL
      • data on disk & on the wire the same
      • same file names, sockets, port
    • Stable (bug-free) releases with no regressions (信頼性高いぞ、と)
    • GPLv2 (完全な OSS)

*****

  • Why MariaDB 10.0?
    • The 5.5 merge took about a year (かかりすぎだ、と)
      • in MariaDB 5.5 we have over 1.5M lines of extra code - 61M diffs
      • MySQL 5.6 refactored with huge losses in commit history (どうしてその変更をしたのか大事だと思っているのに、と)
    • We're not a patch set against MySQL (Oracle には負けん、と)
      • MariaDB clearly does not depends on MySQL for future development

*****

  • MariaDB 10.0 in a nutshell
    • Built i MariaDB 5.5
    • Backported features from MySQL 5.6

*****

  • MariaDB History
    • MariaDB 5.1 (MySQL 5.1 base)
      • pool of theads は MySQL に先んじて導入していた
    • MariaDB 5.2 (MariaDB 5.1 base)
    • MariaDB 5.3 (MariaDB 5.2 base)
      • Biggest changes to optimizer (当時の MySQL 5.5 の Optimizer の性能をはるかに上回っていた faster subquery, join, etc...)
      • Replication (group commit, checksum for binlog event, consistent snapshot between engines, etc) ここ自信ありよ、と
    • MariaDB 5.5 (MariaDB 5.3 + MySQL 5.5)
      • Google や facebook の貢献
    • MariaDB 10.0 のリリーススケジュール
      • ALPHA版だが Taobao や Tumblr では Multi-source replication を prod で使っている

*****

  • Backported features for MySQL 5.6
    • performance schema などを MySQL 5.6 に対して Backport している
    • MariaDB では Replication 機能を重視していることもあって Parallel Replication なども Backport してる

*****

  • Only in MariaDB 10.0
    • Multi-source replication
      • Works from Taobao
      • Many users partition data across many masters -> get those into a single slave
      • Great for analytical queries, etc...
    • Devops 向け
      • explain for a running statement
      • faster alter table
      • per-thead memory usage
    • CassandraSE, LevelDB support
      • MariaDB as a "data platform"
      • Cassandra as a Storage engine
      • combine data between Cassandra & MariaDB & Oracle (SQL 操作可能?)
      • write to the HBase storage also possible (?)
    • Dynamic Columns
      • allow users to create virtual columns with dynamic content for each row in table
      • can get output with JSON format
    • Segmented MySQL keycache
      • Solves major read bottlenecks for MySQL
      • 多くの read が発生するときに強力だと
    • Engine independent persistent statistics
      • すべての storage engine で persistent な実行計画を取得できるようにしてしているという
      • (InnoDB だけについては Oracle はやったけども MariaDB はすべての Storage engine についてやるぞ、と)
    • Subquery materialize
    • Group commit in the binary log
    • Theadpool 5.5 vs 5.1
      • よりスケールするようになったというベンチマークの結果
      • LINE やカカオトークなどではそのパフォーマンスを高めるのに好まれてる (使われてる?)
    • PAM Authetication
      • Linux, authentication using /etc/shadow
      • LDAP, SSH, Kerberos
    • SphinxSE
      • 日本では groonga というのがあると思うが。こういうのもあるよ、と。
    • GIS Support

*****

  • MariaDB 10.0.2
    • Support for atomic writes on FusionIO DirectFS

*****

  • MariaDB 10.0.4
    • SPIDER storage engine for database sharding
    • Audit plugin
    • perfomance schema is now matched with MySQL 5.6
    • online alter

*****

  • RoadMap
    • MariaDB is already a superset of features in MySQL
    • LGPL Client Lib
      • works with MariaDB/MySQL/Percona Server
      • C, Java
      • ODBC is in the works
    • MariaDB Galera Cluster
      • Read, Write scalable
      • No lag or lost transaction
      • But currently based on MariaDB 5.5
    • TokuDB
      • Uses Fractal treee indexes instead of B-Tree
    • Connect Storage Engine
    • Benchmarks

*****

  • Continued commitments
    • Security
    • Regression を起こさない努力 (確実に動作することを確認してから新機能は公開する)
    • care about backward compatibility and introduce features carefully

*****

  • Community involvemet
    • Community を大事にするという表明
    • Knowledge base の豊富さをアピール (全部英語だしおまえら読めるだろぉ)
    • 1M download を今年は達成したい (ダウンロードしてくれってことか)
    • Google や facebook

*****

  • MariaDB is gaining popularity
    • Wikipedia running MariaDB 5.5
    • Google made public commitment to move to MariaDB 10
    • Fedora, OpenSUSE as a MariaDB default

*****

  • MariaDB deployed
    • nginxorg said they reduce their infra cost $12000/year by using MariaDB (why?)
    • other Mozilla

*****

  • MariaDB Foundation
    • the Biggest differece of MySQL and MariaDB
    • 買収リスクは低いと
    • その目標の最たるものは MySQL と MariaDB の互換性は常に担保していきたいということ
  • キーパーソン
    • simon@mariadb.org
    • Jeremy Zawodny (High performance MySQL), Mike Milinkovich(Eclipse Foundation)

*****

  • Well supported
    • Oracle を除く OSS 企業が MariaDB をサポートしてる
    • 各 GA を最低 5 年間サポートするぜ

*****

*****

  • Compatibility with MySQL
    • No NDB Cluster
    • 10.05 以降では XtraDB を default storage engine にする計画がある (この情報はでかいな…)

*****

  • FAQ
    • 自信がないので資料の公開を期待
      • とりあえず、 MariaDB に MySQL から移行して、戻りたいといってる人はこれまでいなかったということを強調していた

*****

  • Conclusion
    • MariaDB is binary compatible with MySQL
    • Open bug system (discussions are all open)
      • Oracle have 2. (one for open, one for their customer)
    • OSS, feature rich, no commercial extention
  • Info
    • bugs mariadb.org.jira
    • twitter: @mariadb
    • slides: slideshare.net/bytebot

*****

  • Q1. Audit Plugin の bug のレポートがあがっているが QA の体制はどうなってるのでしょうか?
    • まだALPHA版なのでどんどん FB を募集中の段階、むしろウェルカム
    • QA の体制は、レポートを受け取ったものにたいしてオープンに対応していく
  • Q2. ホスティングサービスについて聞きたい。 MariaDB を RDS がサポートする予定はあるか?
    • working progress but still not
    • SkySQL is now trying to build partnership with AWS (but still not realized)
    • In this moment if you really want built MariaDB on AWS, use AMI, you can do the same as RDS.
  • A3. The reason why choosing jump MariaDB 5.5 to 10.0.

14:40- 斯波 健徳氏: "Spider Storage Engineの最新情報"

  • MySQL/MariaDB のストレージエンジン
  • MariaDB 10.0.4 から標準のストレージエンジンに

*****

  • DB Sharding をストレージエンジンで実現するもの

*****

  • 使い方
    • Spider が bundle された MySQL/MariaDB を install
    • MySQL にログインして install_spider.sql を実行
    • あとはテーブルつくるだけ

*****

  • Hack:
    • MariaDB だと Assist table discovery というのをつかって、元テーブルの情報さえあれば、カラムを省略して spider テーブルをつくることができるらしい
    • Create Server 構文をつかって接続情報を別だしで定義することもできる

*****

  • Spider その他の機能
    • 冗長化機能: テーブルパーティションの単位で冗長度を設定可能
    • 耐障害性: MySQLで利用可能なものは利用可能
    • 全文検索機能
    • NoSQL 対応機能 (Hundlersocket plugin)
    • Oracle DB 接続: DN に Oracle も混在させられる
    • パラレル検索機能: (MariaDB では未対応) 直近のリリースでの機能とのコンビネーションで高速な検索が可能に

*****

  • Vertical Partitioning: カラムレベルでのテーブル分割

*****

  • Handlersocket Plugin
    • Spider との組み合わせて分散 MySQL に NoSQL アクセスを実現

*****

  • Mroonga Storage Engine
    • 特徴:
      • 高速な全文検索
      • 高速な位置情報検索
      • 検索中でも高速に更新可能
      • Spider と組み合わせると分散したデータへの全文検索、位置情報検索が可能になる
      • 2013-11-29 に個別の mroonga のイベントがあるのでそこでより詳細を

*****

  • MariaDB への bundle
    • 結構時間はかかったがやっとこさいれてもらうことができた
    • Mroonga も bundle を目指している
    • ※ bundle はできたが、 MariaDB そのものに変更をいれてもらわないと動かないというところはあるとのこと

*****

  • 地味だけど重要な改善の紹介
    1. spider_bka_mode=2
      • BatchedKeyAccess という join を最適化する機能、そのオプション指定
      • RDS を利用するとレプリケーション遅延が起こる事象があって追加したオプション
    2. 集計関数が速くなりました
      • join と集計関数のなかに distinct がない場合、 count, max, min, sum が高速化 (DN で個別処理できるようになっているらしい)
    3. log_result_errors, spider_log_result_errors, spider_geeral_log, spider_xa_failed_log
      • Spider が実行している処理をログにはけるようにした、トラブルシューティング用

*****

  • より快適にするために
    • sharding 優先だったところがこれまではあったが、これからはユーザビリティを上げていこうと思っているとのこと
    • 管理ツールのようなものを考えている
  • 考えていることは、 (提供時期は未定:年内目標)
    • 既存のスキーマ設計のツールが使えるといい
    • すでに構築済みの環境にも使える
    • 既存の管理ツールと連携できる

*****

  • MariaDB Foundation について
    • 現在の MariaDB 開発の母体
    • コミュニティーと連携しながら運営しているが、まだまだ議論しないといけないことがある
    • ユーザ側の参加ももっとあったほうがいいと思っている
    • ML: maria-discuss@lists.launchpad.net
    • ML に参加するためには login.launchpad.net/+new_account でアカウント作る必要あり

*****

  • まとめ
    • Spider storage engine ではひとつの DB に接続するだけで他の DB のテーブルを利用できるようになる
    • Spider は分割構成の設計の自由度が高いのが特徴

15:30- Ivan Zoratti氏: "MariaDB Manager and MaxScale New tools for MariaDB and the MySQL ecosystem"

  • MariaDB Manager と MaxScale についての説明

*****

  • MariaDB Manager
    • MariaDB Server(s) を管理するためのものという位置づけ

*****

  • MariaDB Reference Architecture
    • まず MariaDB Servers
    • そして HA が求められることが大きいため 2 つの選択肢を提供している MHA (松信さんの) か Galera
    • さらにその上に、 Maxscale
    • そしてこの MariaDB Server(s), MHA, Galera, Maxscale の4つでもって MariaDB Cluster と呼んでいる
    • MariaDB Manegaer としては
    • Monitor, API(RESTfulなもの), GUI そして Configuration & Provisioning 機能も。
    • (これらの環境をダウンロードしてから 15min で使えるようにできることを目指している。)
    • これらすべて OSS だが、サポートがほしければ MariaDB Enterprise 契約が必要

*****

  • What is MariaDB Manager?
    • set of servers used to provision, admin, monitor mariaDB servers
    • can be co-located with MariaDB

*****

  • MariaDB Manager Architecture
    • 各 MariaDB サーバ上に agent がうごいていてそれを monitor が見ていて RESTful API 経由で各 IF に monitoring 結果を返す

*****

  • MariaDB Manager Components
    • Server agent (shell script)
    • Monitoring daemon (java)
    • Admin scripts (shell)
    • API server (PHP)
    • Apache-based
    • RESTful API
    • GUI Server (java, tomcat, Vaadin): this is not mandatory (can use chef, puppet instead of this)

*****

  • MariaDB Galera Cluster
    • Provisioning: this is possible only 1 click from GUI server
    • Monitoring: can get GLOBAL STATUS & VARIABLES, and customized SQL Queries also enable to use. API and GUI.
    • Adminitstoration: Basic admin stuff is possible from API or GUI (e.g. start, stop, restart, retrieving MariaDBs status etc...)

*****

  • MariaDB Manager Examples

*****

  • Introducing MaxScale
    • What is MaxScale
      • middle layer server that stands between a client application and a database servers
      • similar for mysql_proxy
      • efficient event-based, IO dispatcher that can be used to capture .... (書ききれなかった)

*****

  • MaxScale Architecture
    • Data Store
    • <-> Backend
    • <-> MaxScale: Server(-Monitor), Service(-Router, Auth), Listner
    • <-> Frontend
    • <-> Client App

*****

  • Support and Availability
    • Available on major linux distributions (RHEL, CentOS, debian, ubuntu...)
    • Support for MySQL 5.5 & 5.6, MariaDB 5.5 & 10
    • MySQL/MariaDB replication ....

*****

  • Routing & Services 以下の4つにフォーカスして提供を検討しているらしい
    1. Connection load balancing
    2. Statement load balancing
    3. NoSQL like sharding
    4. Full sharding

*****

  • Connection load balancing
    • Advantage:
      • local auth
      • reduced number of idle connection (differenct from HA_Proxy)
      • redirection only to the reachable nodes(slaves)

*****

  • Load balancing for multi-master
    • Advantage
      • local auth
      • improved scalability
      • reduced number of idle connections
      • improved availability

*****

  • Statement load balancing
    • using TRC - Table Replication Consistency Argorithm keep consistency of the replications
    • Seems MaxScale working like a GW.

*****

  • NoSQL like sharding
    • Each node have a lookup tables, and this case it is possible to write data data into each shards.

*****

  • Authentication
    • Local MySQL authentication
    • External authetication (PAM, LDAP, Keystone)
    • Mixed authetication
      • MySQL authentication mapped to external authentication

*****

  • Configuration & Membership
    • can configure/reconfigure in real time

*****

  • Auditing & Logging
    • Logging at connection or statement level

*****

  • Connection/Statement firewall
    • Blacklist and whitelist operation based on rules (Some type of rules existing, like protocol, client, auth etc...)

*****

  • For more info.
    • mariadb.com
    • downloads.skysql.com/archives
    • bugs.skysql.com
    • yum repository (みえないがあるってことで)

*****

  • Q1. How to realize MaxScale HA?
    • Stateless itself. In this moment if you want HA, you need to prepare active machine and standby machine. Pacemaker is one of the option.

16:50- (株)アシスト 花谷 俊英氏: "SkySQLサポートの事例について"

  • SkySQL ってどうなんよ?という話。

*****

  • SkySQL とアシストとの関係
    • サポート仲介業 (Cloudera と NTT-data の関係みたいな感じ)
    • 英語ができるならちょくで SkySQL と話せばいいと本人たちもいっていた。そりゃそうだ。

*****

  • SkySQL サポートの強み
    • MariaDB/MySQL ともに熟練のエクスパート
    • 高品質なサポートスキルとスピーディーな対応
    • グローバルに 24/7 対応

では、今日はこんなところで。

こちらもあわせてどうぞ