タグ

2015年12月8日のブックマーク (6件)

  • 10年を超えたサービスの改善を加速する土台作り - Pepabo Tech Portal

    ご契約数100万ドメインを超えるムームードメイン開発チームの@pyama86です。これはPepabo Advent Calendar 2015の8日目のエントリです。 今日は2004年1月15日より提供を開始し、もうすぐ12年目を迎えるムームードメインのサービスの改善を加速する仕組みについて紹介します。 はじめに ムームードメインは主な開発言語はPHPを利用しています。先に記載した通り、12年目をもうすぐ迎えるサービスで、故に12年分のプログラムコードが詰まっていることもあり、現代の設計手法では採用し得ないような実装も所々に残っています。その一例として下記のような実装があります。 example.php require_once 'global_function.php'; $client = new exampleApi(); $result = $client->execApi();

    10年を超えたサービスの改善を加速する土台作り - Pepabo Tech Portal
  • 「クラウド、HTTP/2、常時TLS時代に最適化されたHTTPサーバーを目指す」:Nginxより高速、HTTP/2サーバー「H2O」 - @IT

    Nginxより高速、HTTP/2サーバー「H2O」:「クラウド、HTTP/2、常時TLS時代に最適化されたHTTPサーバーを目指す」 「クラウド、HTTP/2、常時TLS時代に最適化されたHTTPサーバーを目指す」というHTTPサーバーのバージョン1.6がリリースされた。前バージョンのベンチマークではNginxより性能が高い場面も見受けられる。 HTTP/2サーバー「H2O」のバージョン1.6が2015年12月4日にリリースされた。 H2Oは現在ディー・エヌ・エーに勤める奥一穂氏を中心に、2014年から開発されているWebサーバー。プロジェクトの目的として、「クラウド、HTTP/2、常時TLS時代に最適化されたHTTPサーバーを目指す」としている。H2OはMITライセンスを採用したオープンソースプロダクトで、ソースコードはGitHubで公開されている。 H2Oは、HTTP/1.0、1.1に

    「クラウド、HTTP/2、常時TLS時代に最適化されたHTTPサーバーを目指す」:Nginxより高速、HTTP/2サーバー「H2O」 - @IT
  • InnoDBのREPEATABLE READにおけるLocking Readについての注意点

    日は、MySQL Casual Advent Calendar 2013の20日目である。というわけでカジュアルに小ネタを紹介しよう。 MVCC - Multi Version Concurrency Controlご存知の通り、InnoDBはMVCCを実装している。そのため、分離レベルがREPEATABLE READの場合には、行にロックをかけることなく、一貫した読み取りが可能になっている。 もし、あるトランザクションT1開始後に、別のトランザクションT2によって同じ行が書き換えられてしまった場合には、T1はロールバックセグメントにある古いバージョンの値を読み取ることができるので、T1内で実行したSELECTは常にT1開始時点のデータを参照することができるのである。大事なのでもう一度言うが、REPEATABLE READにおける単純なSELECTでは行ロックは必要ない。 Lost Up

    InnoDBのREPEATABLE READにおけるLocking Readについての注意点
  • 世界の何処かで MySQL(InnoDB)の REPEATABLE READ に嵌る人を1人でも減らすために - KAYAC engineers' blog

    tech.kayac.com Advent Calendar 2015 8日目担当の @m0t0k1ch1 です。 今年は MySQL さんにいろいろ泣かされた1年でした。特に、あの夏、幾夜をともにした実行計画のゆらぎは一生忘れな(ry さて。。。今回は、そんな中でも誰もが一度は嵌るであろう(?)MySQL(InnoDB)の REPEATABLE READ の嵌りどころについて自分なりにまとめてみようと思います。 この記事が目指すこと MySQL の各トランザクション分離レベルの嵌りどころについては、現状でも種々のブログ記事などでまとめられており、そんなに真新しい話ではないと思います。が、過去の自分のように、嵌ったことがない人間からすると、 話としてはなんとなく理解できる が、抽象的でいまいち身につかない というのが現実でした。嵌りどころに実際に嵌った今読み返してみると、「あーーー、、、そ

    世界の何処かで MySQL(InnoDB)の REPEATABLE READ に嵌る人を1人でも減らすために - KAYAC engineers' blog
  • MySQL 5.7のoptimizer_switch、derived_mergeとは何ぞや - かみぽわーる

    このエントリはMySQL Casual Advent Calendar 2015の8日目です。 MySQL 5.7.6からoptimizer_switchにderived_mergeが追加されデフォルトで有効になっている。基的にこれはほっといたらだいたいサブクエリが速くなるやつなので気にしなくてもいいんですが、ちょっと非互換があるのでさくっと説明します。 root@localhost [mysqlcasual] > CREATE TABLE t1 (a int); Query OK, 0 rows affected (0.03 sec) root@localhost [mysqlcasual] > CREATE TABLE t2 (b int); Query OK, 0 rows affected (0.03 sec) root@localhost [mysqlcasual] > INS

    MySQL 5.7のoptimizer_switch、derived_mergeとは何ぞや - かみぽわーる
  • Linux Insides : カーネル起動プロセス part1 | POSTD

    ブートローダからカーネルまで これまでの私の ブログ投稿 を読まれた方はご存じかと思いますが、しばらく前から低水準言語を使うようになりました。Linux用x8664アセンブリ言語プログラミングについても書いています。また、同時にLinuxのソースコードにも触れるようになりました。下層がどのように機能しているのか、コンピュータでプログラムがどのように実行されるのか、どのようにメモリに配置されるのか、カーネルがどのように処理や記憶をするのか、下層でネットワークスタックがどのように動くのかなどなど、多くのことを理解しようと意欲が湧いています。これをきっかけに、 **x8664** 版Linuxカーネルについてシリーズを書いてみようと思いました。 私はプロのカーネルプログラマではないことと、仕事でもカーネルのコードを書いていないことをご了承ください。個人的な趣味です。私は下層で何が起きているのかと

    Linux Insides : カーネル起動プロセス part1 | POSTD