URL: http://connpass.com/event/952/
LINEはHTTPを利用してログイン処理や、スタンプ情報、友達の状態・通知情報の取得などをしている。
TCPではなく、UDPが音声や動画配信に使用される。
SEGA コイン落としが凄いらしい
●mopemopeさんのmeinheld
https://github.com/mopemope/meinheld
Pythonデザインパターン
http://code.activestate.com/recipes/langs/python/
●最速最強Webサーバーアーキテクチャ
http://qiita.com/items/d9db1ed5493c2d8e1c69
◯ 定期プレゼン
・Python 3.3 アップデート
@torufurukawa
yield from 構文
外側から先導?で引数に入れてコルーチンのように出来る。
u復活
2.xから移行しやすい
- X faulthandler
もっと下のレイヤーのエラーが出る
import lzma
unittest.mockで依存性も
venvモジュール
$python3.3 -m venv tongpoo
$cd tongpoo
$ls
bin incliude lib pyvenv.cfg
$source bin/active
$switch python
What’s New In Python 3.3
http://docs.python.org/3/whatsnew/3.3.html
Pythonを取り巻く開発環境(PyCon JP 2012資料 #pyconjp)
http://ymotongpoo.hatenablog.com/entry/2012/09/16/090842
What's New In Python 3.3をざっと眺める
http://www.slideshare.net/likr/whats-new-in-python-33
◯Impala の話
@shiumachi Cloudera
http://www.cloudera.co.jp/blog/cloudera-impala-real-time-queries-in-apache-hadoop-for-real.html
SlideShareのURL:http://www.slideshare.net/shiumachi/impala-15324018
Impalaとは?
低レイテンシ・分析特化型クエリ実行基盤
分析特化型クエリ実行基盤。
Google Dremel、Google F1などにインスパイアされて開発された。
中の人がF1エンジニア。データサイエンティストが使うことを想定している。若干R&D向け。
なぜ開発された?
Hadoopだと高レイテンシですぐに結果がほしいのに時間かかる。あとHiveみたいにクエリ言語的なものでやりたい。
MapReduce処理
Apache MapReduceとは?Hadoopのコアコンポーネントの一つ。バッチ処理を分散して行う。耐障害性をもったものをわりかし簡単に作れる。
プログラミング言語のMapとReduceのように、これらを組み合わせてデータ処理に応用したもの
Shuffle処理
Hadoop Hive
低レイテンシでできるが、機能は少ない
問題点:簡単になったとはいえ、やはり大変。
データを並列にMapperに流しこむ。
MapperからReducerに対して、データ集約を行う(key一致したもので)。
そのReducerに対して処理を行うと分散できる。
なので、上位がいくつか出てきた。HivemOozie、Pig、Mahoutなど。
アーキテクチャはHiveQLと同じ(一部制限はあるけど)。
Hiveは中央の実行サーバで実行計画作ってたが、Impalaはスレーブが実行計画を作成、さらにスレーブが実行させる。
あとローカルを読んだりもできるので速い。
HiveはUDFが使えるMRを使うので障害耐性がある
現在はデータ菜園テストが使っている
・"NOT FREE"
@everes
TOLOT
http://tolot.com/
A6サイズ 64ページの冊子を500円で作れるサービス
「写真を印刷するならIndigoが標準」
コンピュータで変換処理かけてプリンタに持っていくのが時間かかる。
ただIndigoはここらへんを分散できたりする。
1台3A?の印刷機
アーキテクトだが、工場認可の書類を作った。
FREE + PREMIUM = FREEMIUM
TOLOTが搭載するのは基本機能だけ
PHPのテストライブラリtestman
https://github.com/tokushima/testman
Success
Fail
PHPUnitが使いづらいから自分で作った。
__setup__
__teardown__
WebKitではBuildBotとTrac、ChromiumではRietveld、GYP、App Engineを使っている。
※ Buildbot CIツール
・Chromium
Ritveld
GYP(first party)
App Engine
Bots
Bugzilla
commiters.py
suggest-reviewers:レビュワーを提案してくれる。
webkit-patchコマンド
「生JavaScript使わず聖杯を見つけろ」
→CoffeeScript, RequireJS, Backbone.js
・ae35 + @ian
djangodash
48時間でサービス作ろう
MR.DUNG
糞
・最速最強Webサーバーアーキテクチャ
http://qiita.com/items/d9db1ed5493c2d8e1c69
meinheld
まいんはると
Luaモジュール
nginxとmemcachedだけが速かった。
meinheldはC言語
gunicornはnginxには勝てない
コールバックのややこしさを解消するためにgreenlet使う
OSの実際のTCPスタックの動作を考慮に入れて最適化する。
OSは accept() を呼ばなくても backlog (listen の引数に指定した数) までは自動でTCPの接続を開始しています。
OSの実際のTCPスタックの動作を考慮に入れて最適化する。
writableにならないと〜
など
nginxよりはやくなった。
thundering hard 問題
ネットワークプログラミングでは常識
同時にアクセプトするが、実際に1プロセスだけしかできない。
イベントドリブンプログラミングでpreforkモデルだとだとこの問題が発生する。
・takabow