tokyo tyrant + php

33
Tokyo Tyrant + PHP 小山健一郎

Upload: kenichirou-oyama

Post on 19-May-2015

8.742 views

Category:

Technology


2 download

DESCRIPTION

Tokyo Tyrant + PHP

TRANSCRIPT

Page 1: Tokyo Tyrant + PHP

Tokyo Tyrant + PHP

小山健一郎

Page 2: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 2

Agenda

• About Me• About Tokyo Tyrant• Tokyo Tyrant + PHP• Simple Benchmark

Page 3: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 3

About Me

Page 4: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 4

• name:–小山健一郎 (id:k1LoW)

•from Fukuoka• type:

–PHPer, CakePHP baker, Emacser• membership:

–Fusic Co.,Ltd • >> http://fusic.co.jp

–codecheck.in • >> http://trac.codecheck.in

and 101000code / 3rdSTONE

About Me

Page 5: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 5

PHPといえば*AMPPHP = *AMP?

Page 6: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 6

ちなみに私はLAPPが好きです

PostgreSQL

I like LAPP

Page 7: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 7

RDBMもいいけれどkey/value型DBMも使ってみたい!

I like RBMS.But,I want to use key/value DBM too.

Page 8: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 8

About Tokyo Tyrant

Page 9: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 9

• Tokyo Tyrant is network interface of Tokyo Cabinet (key/value DB library)

– http://tokyocabinet.sourceforge.net/tyrantdoc/

Tokyo Tyrant (TT)

Page 10: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 10

• Tokyo Cabinet (TC)というkey/value型DBMのネットワークインターフェース– Author:平林幹雄氏– http://tokyocabinet.sourceforge.net/tyrantdoc/

• mixiの「最終ログイン」などを管理(しているらしい)– ↑ユーザがアクセスするたびに更新されるという高負荷

• TCP/IP上からバイナリプロトコルで接続可能– memcachedのプロトコルにも対応– HTTP互換

Tokyo Tyrant (TT)

Page 11: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 11

PHPからTokyo Tyrantを使いたい!

I want to use Tokyo Tyrant with PHP!

Page 12: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 12

Tokyo Tyrant + PHP

Page 13: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 13

Tokyo Tyrant + PHP

TT+PHPを実現するInterfaceやPHP Extensionは見つけているも

のだけで4つ–TT独自バイナリプロトコルを扱うもののみ

–memcached互換のものは今回は除く

Page 14: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 14

Net_TokyoTyrant

Page 15: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 15

Net_TokyoTyrant• Author

–個々一番氏(id:cocoiti)• feature

–PurePHPライブラリ–Openpearにてリポジトリ管理

• http://openpear.org/package/Net_TokyoTyrant

–PurePHPとして最適化されている–おそらく最も有名(だと思う)

Page 16: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 16

インストールInstall

Page 17: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 17

$sudo pear install openpear/Net_TokyoTyrant-beta

Page 18: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 18

簡単Easy

Page 19: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 19

php-tokyo_tyrant• Author

–Mikko Koppanen氏 (mkoppanen)• feature

–PHP Extension–PECLに登録されている

•PHP Manualもある–GitHubにてリポジトリ管理

• http://github.com/mkoppanen/php-tokyo_tyrant/tree/master

–最も活発に開発が進んでいる

Page 20: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 20

インストールInstall

Page 21: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 21

$sudo pecl install tokyo_tyrant-beta

Page 22: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 22

簡単Easy

Page 23: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 23

dbo_tokyo• Author

–Martin Samson氏 (masom)• feature

–Datasource for CakePHP thechawにてリポジトリ管理• http://thechaw.com/tokyotyrant_datasource

※#[email protected]:6667でid:cakephperさんに教えてもらいました

Page 24: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 24

tokyotyrant_php• Author

–俺• feature

–tokyotyrant.rbに、できるだけ近づけた実装を目指している

–Net_TokyoTyrantを参考に作成•Fork?

–GitHubにてリポジトリ管理• http://github.com/k1LoW/tokyotyrant_php/tree/master

–最もβ、むしろα

Page 25: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 25

Simple Benchmark

Page 26: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 26

※参考程度に考えてください

It's very simple ^^;

Page 27: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 27

PHPなのでhttp://でアクセスしてみたSimple HTTP Access Benchmark

Page 28: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 28

•Apache•mod_php•DBM

Simple Benchmark

• 単純にApache Benchで計測してみた

ab –n 1000 – c 100

対象データ:sha1($i)をkey、$iをvalueとした1,000,000レコード

ランダムなkeyでクエリ発行

Page 29: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 29

1アクセス1クエリ※Request/sec相対

1 access 1 query

Page 30: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 30

1アクセス1クエリ

Net_TokyoTyrant

php-tokyo_tyrant

dbo_tokyo

tokyotyrant_php

MySQL plane html

※Request/sec相対

Page 31: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 31

1アクセス100クエリ※Request/sec相対

1 access 100 query

Page 32: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 32

1アクセス100クエリ

Net_TokyoTyrant

php-tokyo_tyrant

dbo_tokyo

tokyotyrant_php

MySQL plane html

※Request/sec相対

!

Page 33: Tokyo Tyrant + PHP

PHP Conference Japan 2009 LT Copyright Fusic Co.,Ltd. 33

まとめ• Tokyo Tyrant + PHPの紹介をしま

した。• php-tokyo_tyrantが最も高速

– php-tokyo_tyrant = very fast

• PurePHPならNet_TokyoTyrant– Net_TokyoTyrant = Nice PurePHP library

• CakePHPならdbo_tokyo– dbo_tokyo = CakePHP use

• tokyotyrant_phpは…?