TokyoTyrant.pmてすと

Tokyo Tyrantのperlクライアントがでているので、軽くベンチとってみた


Tokyo Tyrantは

$ ttserver

だけで起動。on memoryのhash dbになりますね


このサーバに対して、Cache::Memcached、同Fast、TokyoTyrant.pmで接続してgetの速度を比較してみた

バージョンは

Tokyo Tyrant 1.1.11
tokyotyrant-perl 1.4
Cache::Memcached 1.21
Cache::Memcached::Fast 0.08

先に結果

$ perl tt_bench.pl
                    Rate cache::memcached      tokyotyrant             fast
cache::memcached  7168/s               --             -68%             -82%
tokyotyrant      22222/s             210%               --             -46%
fast             40816/s             469%              84%               --

TokyoTyrant.pmはなかなか速い

独自プロトコルで通信できるからですかねぇ


ベンチマークスクリプト

use strict;
use warnings;
use Cache::Memcached::Fast;
use Cache::Memcached;
use TokyoTyrant;
use Benchmark qw/cmpthese/;

my $n = 20000;
my $key = "foo";

my $fast = Cache::Memcached::Fast->new( { servers => ['127.0.0.1:1978'] } );
$fast->set( $key => rand );

my $pp = Cache::Memcached->new( { servers => ['127.0.0.1:1978'] } );

my $tt = TokyoTyrant::RDB->new();
$tt->open("localhost", 1978);

cmpthese(
    $n => {
        tokyotyrant => sub {
            $tt->get($key);
        },
        fast => sub {
            $fast->get($key);
        },
        'cache::memcached' => sub {
            $pp->get($key);
        },
    }
);
created by blog.nomadscafe.jp

コメント

posted by https://id.mixi.jp/mikio | 2009-01-07 15:35:01

やはりバイナリプロトコルなのが大きいと思います。

バイナリだとクライアント側の処理が軽くなるだけでなく、サーバ側も軽くなるので。

ttserver側のmemcached互換インターフェイスはあまり最適化していないし。


Cache::TokyoTyrant::Fastをいつか誰かが書く予感。

コメントを投稿

コメントを投稿するにはログインが必要です