タグ

ブックマーク / blog.kamipo.net (12)

  • InnoDBのロックの範囲とネクストキーロックの話 - かみぽわーる

    この記事はMySQL Casual Advent Calendar 2013 3日目の記事です。 はじめに 以前にSELECT ... FOR UPDATEとロックの挙動 - walf443's blogの記事にTwitterで少し言及したんですが、それの補足というか、InnoDBのロックの範囲について僕はこう理解していますよという話です。 MySQLといえば、InnoDBをネットワークサーバとして使うためのフレームワークであり、SQLはInnoDBのインデックスにアクセスするためのDSLといっても過言ではないでしょう。 InnoDBのロックとはつまるところインデックス行のロックなので、InnoDBのロックの範囲を理解するためにInnoDBのインデックスについて少し前置きしておきます(だいぶ端折ったけど長くなった…)。 クラスタインデックスとセカンダリインデックス すでにInnoDBのイン

    InnoDBのロックの範囲とネクストキーロックの話 - かみぽわーる
    riywo
    riywo 2013/12/04
  • #mysqlcasual vol.5 で話してきたこと - かみぽわーる

    先日オラクルで開催された MySQL Casual Talks Vol.5 に参加してきました。 mysql-build よもやま話 ありがたいことにいつも発表の機会を頂いてるので、なにか新しいネタをと思ってるんですが今回ちょっとネタも余裕もなくて、それでも聴いてる人がちょっとでもへぇって思えるようなことをざっくばらんに話せたらいいなと思っていて ちょうどFacebook版MySQLmysqldumpを爆速にする話がタイムリーだったのでそれに絡めてInnoDBのFast Index Creationを狙ってリストアも爆速になる話をしようって流れで今回の発表を考えました。前者をmatsunobuさんのブログ、後者をsh2さんのブログと発表資料を使って説明させてもらいました。僕の発表資料にはURL貼ってあるだけなんで詳しくはおふたりの素晴らしいエントリーを参照してください。 Yoshinor

    #mysqlcasual vol.5 で話してきたこと - かみぽわーる
  • 簡単に手元でHTTPのファイルサーバ立てる方法 - かみぽわーる

    .zshrcにstatic_httpdって関数つくってる。 dotfiles/.zshrc at master · kamipo/dotfiles · GitHub function static_httpd { if type plackup > /dev/null; then plackup -MPlack::App::Directory -e 'Plack::App::Directory->new(root => ".")->to_app' elif type ruby > /dev/null; then if ruby -v | grep -qm1 'ruby 2\.'; then ruby -run -e httpd -- --port=5000 . else ruby -rwebrick -e 'WEBrick::HTTPServer.new(:Port => 5000, :D

    簡単に手元でHTTPのファイルサーバ立てる方法 - かみぽわーる
    riywo
    riywo 2013/02/20
    pythonイケてる
  • ディスクのUUIDを調べる方法 - かみぽわーる

    Debian lennyのfstabを見ると /dev/sda1 / ext3 errors=remount-ro 0 1みたいに/dev/sda1とかでデバイスが指定されてるのだけど、UbuntuとかDebianでもsqueezeあたりだと UUID=04a6ba33-73ff-4f9f-a09b-199a83f73dd6 / ext4 errors=remount-ro 0 1みたいにUUID=...という感じでデバイスが指定されてる。 外付けUSBでHDD付けまくってるときやSATAをホットスワップで挿しまくってるときに/dev/sda1みたいな指定方法でmountしてると、へんな電波受信してひとりでに再起動したときや人間の手で故意に再起動されたときにデバイスの認識順が再起動前とちがうくて、前は/dev/sda1だったものが/dev/sdb1や/dev/sdc1になりかねないので、デ

    ディスクのUUIDを調べる方法 - かみぽわーる
    riywo
    riywo 2013/01/23
  • #cross2013 に行ってきた - かみぽわーる

    聴いたやつ。 HTML5 x セキュリティ 体系的に学ぶ安全な利用規約の作り方 継続的サービス改善のゲンバのハナシ 継続的システム運用のゲンバのハナシ 感想など 出張Shibuya.XSSでCD-ROMをイジェクトしたくならない人は今すぐ病院に行ってくださいで有名な@hasegawayosukeさんが登壇されるのを楽しみにしていたんですが、ノロで口からイジェクトしまくって欠席されたみたいで、その記事を書くのをやめて今すぐ病院に行って欲しかったです、残念でした…。 そのはせがわさんが言っていた好きな言葉があって 「その仕様を最も悪用できる方法を思いつくことが世界の平和の貢献につながる」 NetAgent Official Blog : 私がセキュリティの世界に挑戦した理由 ~はせがわようすけ~ 僕は世界の平和とまではなかなか言えないのだけど、僕と僕のまわりの平和ぐらいは守りたいし、世の中の悪

    #cross2013 に行ってきた - かみぽわーる
    riywo
    riywo 2013/01/22
    まとめると、kamipoさんはおしりがお好き
  • #isucon2 にて死す - かみぽわーる

    当日を振り返った翌日の感想はコチラ。 昨日は藤原組と山形組の抗争に巻き込まれて無残に死んだ #isucon2— Ryuta Kamizono (@kamipo) November 4, 2012 今回もチームやすべえとして@riywoくんに熱烈ラブコールを送ってたんですが、当日は飛行機の上ということで振られてしまったので、それぺちの@do_akiさんとRails高速化の@mirakuiさんまったく接点のない二人を誘って参加しました! 二人とも突然の誘いを快く受けてくれてありがとうございました!! 結果はというと、まずクエリのボトルネックをインデックス張ってつぶしたあたりまではよかったんですが、サイドバーのキャッシュの不整合を解決できずDBから引き直そうとしたところで致命的な設計ミスに気づいてしまって、せめて完走させてスコアは出そうってことでgit initした状態に戻してフィニッシュでした

    #isucon2 にて死す - かみぽわーる
    riywo
    riywo 2012/11/09
    チームやすべえは滅びぬ!何度でも蘇るさ!
  • Linuxと挙動がちがってて使いにくいOS Xのコマンド(top/ps/netstat)の代替 - かみぽわーる

    GNU/Linuxに慣れてると、よく打つtop/ps/netstatがOS X使ってるときにLinuxのそれと全然ちがう挙動で使いにくい。同じ挙動にするのman見ても無理そうなんで、なんとか同じように使えるのないか調べてみた。 top htopならLinuxとOS Xで同じように使えるのでhtopを使うとよさそう。 brew install htop-osx ps psのいい代替は見つからなかったけど、ps auxfのようにツリー表示したいときの代替はpstreeを使うとよさそう。 brew install pstree netstat netstatはnetstat -tnpaとかnetstat -tnplをよく使うけど、前者はlsof -nP -iTCP、後者はlsof -nP -iTCP -sTCP:LISTENで代替できそう。 $ sudo lsof -nP -i4TCP -sTC

    Linuxと挙動がちがってて使いにくいOS Xのコマンド(top/ps/netstat)の代替 - かみぽわーる
    riywo
    riywo 2012/10/16
  • YAPC::Asia 2012 に行ってきた - かみぽわーる

    今年も行ってきました! .@kamipoさんとドラ娘の2ショット!! #yapcasia @ YAPC::Asia Tokyo 2012 http://t.co/JdELQpTW— すぎゃーん ⌘ 9.30刹那ハレーション (@sugyan) September 28, 2012 僕も2ショット撮りたい!って言ったら何故かこうなった #yapcasia @ YAPC::Asia Tokyo 2012 http://t.co/o6aR1GcC— すぎゃーん ⌘ 9.30刹那ハレーション (@sugyan) September 28, 2012 かみぽさん、すぎゃーんとの方がうれしそうに見える……— IT業界のマー君 (@sugamasao) September 28, 2012 1日目はtokuhiromのToraとmotemenさんのWightのトークがおもしろかった。 2日目のPerl

    YAPC::Asia 2012 に行ってきた - かみぽわーる
    riywo
    riywo 2012/10/02
    なにこの貴重なツーショット!
  • mysql-buildでいろんなバージョンのMySQLをインストールしたい! - かみぽわーる

    これはMySQL Casual Advent Calendar 2011 - MySQL Casualの8日目の記事です! UDFでFizzBuzz id:sugyanさんがストアドプロシージャでFizzBuzzをやっていたのでMySQLのUDF(user-defined function)でもやってみました。 kamipo/mysql_fizzbuzz · GitHub git clone git://github.com/kamipo/mysql_fizzbuzz.git cd mysql_fizzbuzz g++ -shared -fPIC -Wall -g mysql_fizzbuzz.cc -o mysql_fizzbuzz.so cp mysql_fizzbuzz.so /usr/local/mysql/lib/mysql/plugin mysql -u root -e "cr

    mysql-buildでいろんなバージョンのMySQLをインストールしたい! - かみぽわーる
    riywo
    riywo 2011/12/12
    すごいすごい!
  • YAPC::Asia 2011 おつかれさまでした - かみぽわーる

    YAPC::Asia 2011 おつかれさまでした! 今回は前夜祭のRejectConfと2日目のLTでトークをしてきました。 RejectConf 当は難しいフレンド・タイムライン処理という話をしました。 この手の機能はWebのソーシャル系サービスなら必ずといっていいほど当たり前に実装されている機能で、小規模のサービスでも中規模のサービスでも程度の差こそあれ問題になり得ます。 効率的に実装されていない負荷の高い機能は、より多くの設備投資を必要にするし、サービスを提供する裏でより多くの人の労力を犠牲にしないと成り立たないので最悪です。 このトークを聴いてくれた人が「そういえばこういう問題があるんだっけな」と想像力を働かせられるきっかけになればうれしいなと思います。 LT MySQLでMessagePackの中身を検索ということで、MySQLに構造化されたデータをシリアライズして突っ込むこ

    YAPC::Asia 2011 おつかれさまでした - かみぽわーる
    riywo
    riywo 2011/10/17
    with perlとか書いて全然perlの話しなかった僕もいつかヤラれる。。。
  • #isucon に参加してやったこと思ったこと - かみぽわーる

    ISUCONに@riywoと「チームやすべえ」で参加してきたので、その感想です。 ひと言でいうと、良くも悪くもみんな積み重ねてきたものが結果に出たのではないかなと思います。 最初のボトルネックとして用意されていたクソクエリのチューニングは、二人ともDB寄りのエンジニアということもあって、クエリの意図をつかんだあとの対策はツーカーでいい感じでした。 ボトルネックがアプリに寄ってコア数でスケールする状態になったので、コア数も多く経路的にも有利なrevとdbにもアプリを立てて、そっちに多くのリクエストを振るようにしました。細かいチューニングを省略すると、これだけやっただけで、たしか参加チームの中で最初に50000req/minを超えたと思います。 あとは後半、かなり良いスコアを出すチームがちらほら出てきて、このアーキテクチャだと優勝できないと気づいて、キャッシュしてDBアクセスとレンダリングのコ

    #isucon に参加してやったこと思ったこと - かみぽわーる
    riywo
    riywo 2011/08/30
    キャッシュしたら負けかなって僕も思ってました>< 要求スペックに対する考察が甘かったのは否めないですね。。
  • Apacheが%2Fを勝手にデコードして生きるのが辛いとき - かみぽのメモ

    mod_rewriteでの最後の砦 - As a Futurist...をみて、僕もApacheでURLに%2Fを含むリクエストをリバースプロキシするときに困ったことがあったなーというのを思い出した。 AllowEncodedSlashes On RewriteRule ^/(.*)$ http://backend/$1 [QSA,L,P]みたいな設定を書いてるときにfrontendに http://frontend/keyword/Fate%2Fstay+nightなリクエストが来ると、この設定だとbackendには http://backend/keyword/Fate/stay+night%2FがデコードされたURLにプロキシしてしまう! %2Fのままプロキシするには以下のように設定をすればよい。 AllowEncodedSlashes On RewriteCond %{THE_RE

    Apacheが%2Fを勝手にデコードして生きるのが辛いとき - かみぽのメモ
    riywo
    riywo 2011/04/29
    THE_REQUESTは一つの解ですねー
  • 1