myfinder's blog

myfinderの技術や周辺的活動のblog

2012年8月22日水曜日

WEB+DB PRESS Vol.70 特集3 Web広告最前線 に寄稿しました & 株式会社フリークアウトに入社していました


技術評論社の紹介ページ: http://gihyo.jp/magazine/wdpress/archive/2012/vol70

Subjectの通り特集3 Web広告最前線 に RTB の関連記事を寄稿しております & 今年の始め頃から RTB をコアに DSP事業を展開するフリークアウトに入社していました。

記事ボリュームの都合上いろんなことを端折って駆け足気味にまとめているので、このあたりは来月の YAPC::Asia 2012でもっと突っ込んで触れますので、ご関心あります方はお越しくだされば幸いです。

YAPC::Asia 2012 のトーク :
http://yapcasia.org/2012/talk/show/d1edd2c0-ab9b-11e1-918c-2a656aeab6a4

2011年11月26日土曜日

現在の勤務先を退職します

表題のとおり、この度現在の勤務先を退職します。
正確にはまだしばらく籍がありますが、本日で最終出社となります。

思い返すと2009年4月入社なので、2年9ヶ月お世話になったことになります。
振り返ってみればたったの2年9ヶ月ですが、最もエキサイティングで成長できた期間だったと自分自身感じています。

入社当初はECのサービスの仕事に取り組み、未熟な自分を暗に陽に周りの方にフォローいただきながら仕事を進め、社外のPerlエンジニアさんとも交流する中で様々なインプットをいただき、前に進むことができました。
特にこの頃に悩んでいた課題について特に相談に乗っていただいた猫神様には感謝申し上げます。
(当時はまさか同じグループで働くことになるとは思ってもみませんでしたが)

そんな折、新サービス運用の人手が要るということで、現在のグループに異動することとなりました。
当時はガラケー向けだったサービスですが、あれよあれよという内にPC、スマートフォン(Webとアプリ)に展開されていき、自分はそのサーバ準備やサービス運用して今ここ、という感じです。
現在のグループでは本当に得難い経験を積ませていただきました。
そういった経験が YAPC 登壇や MySQL Casual を始めるきっかけにも繋がったと思います。点と点を繋ぐという話ですね。

これまでお世話になった方とのかかわりはすぐに切れるわけではなく、今後も続いていくと思いますが何卒よろしくお願い致します。

最後になりますが、在籍期間中素晴らしいメンバーと仕事をすることができ、多くの方と出会えたことに感謝申し上げます。
この経験は一生ものです、本当にありがとうございました。

2011年10月17日月曜日

YAPC::Asia 2011の報告

みなさま YAPC::Asia たのしかったですか。
今年は submit したトークが非採択となったので、rejectconf で発表してきました。

[トーク]



前回以上にトーク後に質問や意見交換に来ていただいた方が多かったのが印象的でした。
正直Perlでソーシャルアプリ書いてる人は少ないだろうし、どちらかというと今回のほうが参加した方々にとってリアルな話題だったのかなと。

[雑感]
昨年 YAPC::Asia 2010 でソーシャルアプリのシステム監視運用について Talk してきました というエントリをあげましたが、今回も運用系の話でした。
仕事上新規の開発は少ないので、こういった話題に寄りがちでPerl成分少ないので、次回に向けてもっといろいろinput/outputをしたいところです。

さて、昨年参加した後 あなたがYAPC::Asiaでプレゼンテーションをするべき10の理由 (あるいは Re:@minto) というのを書いたわけですが、1年経ってみてもこの辺り変わらないなぁと感じられました。
もしこれを読んだ方が「俺もでようかな」と思ったら、その気持を忘れずにスピーカー応募が始まったらすぐにsubmitすべきだと思います。

どんな内容でも、きっと誰かの役に立つと思います。

2011年8月28日日曜日

#isuconの結果を反省 または私は如何にして心配するのを止めてパラメタ設定を細かくいじるることに終始したのか

なんでもありのWebアプリケーション高速化バトル、#isucon に参加してきました。
まずはこのような機会を設けていただいたLivedoor並びに技術部会の皆様に感謝申し上げます、良い刺激を受ける事ができ、本当に楽しい一日でした。

さて、藤原組長が圧倒的だったのは誰しもが知るところですが、我々 [真夏のサイクロンウェーブ] はノーバリューでフィニッシュと相成りました。
この結果をバネに次へつなげるためにも、成功したやり方を実際に手を動かして検証することがなにより重要だと考え、このエントリを書いた次第です。

このエントリを書けるのも、id:tagomorisさんがソースコードとベンチツール一式を公開してくれているからです、Livedoorは勉強会のアフターケアまで完璧ですね。

  • まずはisucon環境を手元につくろう

id:riywoさんが手順をあげてくれているので、それにならうのがよいでしょう。
最近のPerl環境はとても手軽で手早く準備できるようになったので、快適に作業が進められますね。
ただ、上記ページの手順や記述は抜けがあるので、直してひとまずベンチが実行出来る状態まで直したものを https://github.com/myfinder/isucon にあげてます。
(直したのはtoolsとPerlアプリのみですが)
この差分を見れば直さないといけない箇所がわかると思います。

この状態でベンチを走らせても、環境によっては多分遅すぎて妙なfailが出てしまうなどあるかもしれません。
(このあたりは実装を見つつtagomorisさんに相談してみているところです)
手元のMacBook Air(C2D, RAM4GB)ではどうしてもfailしてしまっている状況で、チューニングしたらテストが通るようになりました、謎。

  • 取り急ぎクエリの改修を試みる

藤原組長のやったとおり残念なクエリをどうにかするためのテーブル変更をします。

alter table article add comment_created_at datetime;

create index article_comment_idx ON article (id, title, comment_created_at);
update article set comment_created_at = (select max(created_at) from comment where comment.article=article.id);


  • 結果

手元のMacBook Airで60前後な上に(多分)遅すぎて通らなかったテストが通るようになりました。
素のApache(mod_proxy), MySQL5.1で、更にそのすべてが1台に乗っている状態で、60前後->1300前後まで改善されました。
更にキャッシュを効かせたりしていけばさらに10倍以上は高速化できそうです。

引き続きいろんな方のアプローチを参考に、チューニングしていってみようと思います。
第2回は懇親会でどこかのISPの方が手をあげていらっしゃったので、開催されるのであれば再挑戦したいと強く思っとります。

それでは。

2011年8月15日月曜日

MySQL Casual Talks Vol.2 を開催しました。

MySQL Casual Talks Vol.2 を開催したのでLTしてきました。

今回は20minのMain TalksとLTの二本立てで行く方向でやりました。
自分の資料は下記の通り。



会の資料は こちら に。
内容は id:namikawa さんが まとめ てますのでそちらに譲ります。


今回は枠100に対して出席90と、かなりの参加率でした。

PARTAKEのリマインド機能のおかげでしょうか、ありがたいことです。
リマインド機能のあるその手の調整ツールを今後も積極的に使っていこうと思います。

mysql-casual.orgの方にも書きましたが、第3回についても前向きに検討しておりますので、ネタのある方ぜひともよろしくお願いいたします。

2011年6月15日水曜日

Q4Mのバージョンを知りたいとき

Q4Mの運用をしていると時折「あれ?このサーバに入ってるQ4Mのバージョンいくつだっけ」と思うことがあると思います。

select queue_version();

などが実装されていれば話は早いのですが、取り急ぎ

select PLUGIN_VERSION from information_schema.plugins where plugin_name='QUEUE';

+----------------+
| PLUGIN_VERSION |
+----------------+
| 0.8 |
+----------------+
1 row in set (0.00 sec)

という感じで知ることができます。
但し 0.x までしか分からないので、それ以下の値が知りたい場合はどうしたらいいか誰か教えてください><