groonga近況報告(11月版)と各種ご案内

早いもので11月ですね。気が付くと、いくつかネタが出てきていますのでこそっとエントリを書いておこうと思います。

groongaストレージエンジン

groongaストレージエンジンは8月のv0.1リリース以来、月1回のペースで順調にリリースが継続されています。リリース予定日は毎月29日。通称「肉リリース」というものらしいです。

29日にリリースするのが重要ということで、リリースノート( http://mroonga.github.com/news.html#news )上でのリリース日も29日になっています。(このリリースノートが書かれるのは実際には29日よりも数日前だったりするのですが以下略)

というわけで当面月1回のリリースが進められて行きそうです。

ロードマップも公開されていますので、ご興味がある方はご覧下さい。

http://redmine.groonga.org/projects/mroonga/roadmap

※肉リリース優先のため、ロードマップは適宜修正されます。

groonga勉強会の開催予定

全文検索エンジンgroongaを囲む夕べ #1』 11/29(月) 18:30-

http://atnd.org/events/9234

groongaプロジェクト単独での勉強会が開催されることになりました!

groonga本体の紹介に始まり、Rubyバインディング(rroonga)、MySQLバインディング(groongaストレージエンジン)、PostgreSQLバインディングの話が行われます。

会場はGREEさんが提供して下さっています。ありがとうございます!

この勉強会の告知を末永さんがtwitterで行ったところ、すぐに定員(50人)に達してしまいました。現在、募集人数が増やせないかどうか検討中です。

Solr勉強会への参加予定

『第4回Solr勉強会』 11/19(金) 19:00-

http://atnd.org/events/9458

全文検索システムSolrの勉強会にgroongaプロジェクトも1枠いただいてお話させていただくことになりました!

会場提供のECナビさん、Solr勉強会を主催されている新里さんありがとうございます!

groonga枠ではぐにゃらくんこと末永さんがSolrとgroongaの違いなどについても分かりやすく解説する予定と聞いております。

定員110名なのでまだ少し空きがあります。全文検索全般にご興味の方はぜひこの機会にご参加いただければと思います。

twitterでの感想・バグレポートをお待ちしてます!

twitterを見ていると、groonga/groongaストレージエンジンをお試しいただいた方のつぶやきを良く拝見します。

http://twitter.com/#search?q=groonga

こういったつぶやきは開発サイドでも拝見させていただいておりますので、使ってみた感想・要望・不具合情報などありましたら、お気軽にツイートしていただければと思います。

groongaストレージエンジンの近況

8月下旬にver0.1テストリリースが行われてから1ヶ月弱が経過しました。

まだver0.1であるにもかかわらず、案件への投入を検討して問い合わせを下さった方がいらっしゃったりとか、思った以上に反響をいたいだております。ありがとうございます。

開発の方は相変わらずのんびりとしたペースで進んでおりまして、、、おりまして、、と思っていたらgroonga本体の方はver1.0の安定版がリリースされました!

これはストレージエンジンの方も開発速度を上げていかないといけないなと思っていた矢先、なんと最近DeNAへ転職された松信さんからgroongaストレージエンジン用のinformation_schemaプラグイン導入パッチを寄付いただきましたー!

information_schemaプラグインというのはpluggable storage engineなどと同様にMySQL 5.1で追加されたプラグイン機構の1つでして、MySQLメタデータベースであるinformation_schemaを拡張するためのものです。

TritonnではParserに手を入れて"show senna status"などの独自コマンドを追加実装して、Sennaのインデックス情報を参照できるようにしていましたが、groongaストレージエンジンではMySQL本体に対しては手をいれないため、information_schemaプラグインなどのような仕組みを利用して独自情報を参照できるようにすることとなります。

groongaストレージエンジンのinformation_schemaプラグインは今のところまだ入り口だけ実装された感じですが、どのようにコードを書いたらinformation_schemaプラグインを実装できるのかについては大いに参考になると思います。

松信さんによるパッチのcommitはこちらです!松信さんには今回のパッチ寄贈を機にgroongaストレージエンジンのコミッタになっていただきました。

また松信さん以外にもgroongaストレージエンジン開発プロジェクトではかなり強力な開発者の方にもJOINしていただく予定になっております。開発速度はこれで上がるかもしれません!?

さて、groongaストレージエンジン開発プロジェクトでは開発メンバーを募集しております。

「開発者向け情報」なるページも最近UPしましたので、もしご興味を持たれた方がいらっしゃいましたら、ぜひ一度ご覧下さい。

groongaストレージエンジンのテストリリース

MySQL 5.1対応の全文検索エンジンである「groongaストレージエンジン」がテストリリースされました。

groongaストレージエンジンの公式サイト

ご存知の方もいらっしゃると思いますが、groongaはSennaの後継プロダクトとして開発が行われている全文検索エンジンです。今回リリースされたgroongaストレージエンジンはこのgroongaをMySQLにストレージエンジンとして組み込んだものになります。

詳細は日本MySQLユーザ会MLへ投稿されたアナウンスメールあるいは上記公式サイトを見てください。

イメージファイルをmountしてごにょごにょする手順

たまにしかやらないため何度やっても忘れてしまうので書いておきます。

イメージファイルはループバックディバイスを使ってmountできる。

losetupで"-f"オプションをつけて空いているループバックディバイスを探す。ここでは/dev/loop0が空いていると仮定。

losetup -a
losetup -f
losetup /dev/loop0 /path/to/file.img

空きが無い場合はmodprobeコマンドで増やせる。

modprobe loop max_loop=32

kpartxで"-a"オプションをつけてパーティションを識別。/dev/mapper配下にloop0p3みたいなのができる。

kpartx -a /dev/loop0

後は好きなようにmount

mount /dev/mapper/loop0p3 /mnt/foo

やったね!

[root@localhost foo]# cd /mnt/foo
[root@localhost foo]# ls
bin   dev  home    lib    lost+found  misc  opt       proc  sbin     srv  tmp  var
boot  etc  initrd  lib64  media       mnt   poweroff  root  selinux  sys  usr

ごにょごにょが終わったらさっきまでの逆操作を行う。

umount /mnt/foo
kpartx -d /dev/loop0
losetup -d /dev/loop0
losetup -a

おしまい。

「日本MySQLユーザ会(MyNA)会 2009冬」で話をしました

ひとつ前のエントリで紹介したイベントで話をしてきました。

今回はTritonnMySQL全文検索のコア技術からは一歩引いた視点で、全文検索が何に役立つのかとか、Tritonnプロジェクトの意義とかを説明させていただいています。

当日はプロジェクタへの出力にトラブり、開始までに35分も押してしまいました。参加者&関係者のご迷惑をおかけして申し訳ございませんでした。

お知らせ: 日本MySQLユーザ会(MyNA)会 2009冬

イベントのお知らせです。

明後日12/18(金)夜に日本MySQLユーザ会主催のイベントがあり、僕も登壇します。

今回のイベントは良くありがちなセミナー形式のものではなく、スピーカーは用意するものの飲み食いしながらざっくばらんに話しをして懇親しましょうというイベントです。ということで会場には食べ物・飲み物が用意されています。またその関係で参加費が3,000円となっています(ケータリングとかを利用して食べ物を調達するようです。)

僕が話す内容はMySQL全文検索Tritonnについてなのですが技術的にコアな話というよりは、どちらかというとそもそも何でMySQL+全文検索なのかとか、Tritonnで何をやりたいのか(OSS開発者としての動機とか)、割と万人向け(?)な内容を想定してます。細かい話で聞きたいこととかがあればもちろん登壇後の懇親の場で話しかけていただければお答えします。

以下申し込みページからの引用です。http://atnd.org/events/2512

日本MySQLユーザ会(MyNA)の数年ぶりのイベントです。年の瀬に MySQL について語りながらユーザどうしで親交を深め、盛り上がりましょう。
(参加予定の皆さんへお願い:万一開催内容に変更がある場合はこのページに変更の案内を掲載します。開催者からみなさんへ連絡する手段が ATND にはありませんので、お手数ですが本ページを適宜ご確認いただきますようお願い申し上げます)

                                                                      • -

■開催概要
・日時: 2009/12/18 19:00〜。22時頃中締め
・場所: グリー株式会社様 5F セミナールーム
   東京都港区六本木4-1-4 黒崎ビル (1Fがフォルクスワーゲン)
   正面入口ではなく裏口のエレベータから 5F に上がってください
・参加費: 3,000円
・19時〜: セミナー形式(呑みながら気楽にどうぞ;講師も呑んでるかもしれません:-))
・20時頃〜: 懇親会(呑み喰いしながら楽しく交流を深めましょう)
・22時頃: 中締め

                                                                      • -

セミナー内容
(1)「MySQL全文検索ことはじめ」(tritonn 開発者: 池田徹郎さん(住商情報システム株式会社))
  「全文検索ってなんですか?何が嬉しいの?MySQLの日本語環境で全文検索をするにはどうしたらいいですか?Tritonnって何ですか?」といったこれからMySQL全文検索を使ってみたい人にぜひ聞いていただきたいセッションです。

(2)おくかずほ に訊く『MySQL』 (One of the コアなMySQLユーザ: おくかずほさん(サイボウズ・ラボ株式会社))
  MySQLとのつきあい方、活用の仕方は人によって様々です。 JapanizePathtraq などのサービスを開発し、Q4M ストレージエンジンの開発者でもある おくかずほ さんから 『MySQL』 はどのように見えているのか。ぶっちゃけ話を訊きましょう。

■補足
 最初からビールや軽いおつまみなどを用意します。前半は呑みながら「ちょっと詳しい人」の話をみんなでわいわい聞くという趣向で、後半はお食事を加えて参加者どうし懇親していただくという趣向となっています。
 どうしても前半しか参加できないけど、どうしても参加したいという方はご相談いただければ検討しますので下のコメント欄にお書きください。

クエリキャッシュされないSELECT文

MySQLのクエリキャッシュ機能ですが、SELECT文の内容によってはquery_cache_XXX変数の値に依らず無条件に結果がキャッシュされませんよね。

ではどんなキーワードを含んでいるとキャッシュされないのでしょうか。sql_yacc.yyとlex.hで確認してみました。

  • SQL_NO_CAHCE
  • FOR UPDATE
  • LOCK IN SHARE MODE
  • CURRENT_DATE
  • CURDATE
  • CURRENT_TIME
  • CURRENT_TIMESTAMP
  • CURTIME
  • CURRENT_USER
  • DATABASE
  • DATABASES
  • LAST_INSERT_ID
  • MASTER_POS_WAIT
  • NOW
  • ROW_COUNT
  • SYSDATE
  • UNIX_TIMESTAMP
  • USER
  • UTC_DATE
  • UTC_TIME
  • UTC_TIMESTAMP
  • (ユーザ定義関数)
  • (ストアドプロシージャ)

これらのキーワードを元に精査すればSELECT文がクエリキャッシュに載らない理由もはっきりしますね。