Fork me on GitHub

cuspy memo


memcachefs 0.4 release

2007/08/04 Saturday 01:27:05

謎のロシア人 Zakharov 君に指摘された通り、memcachefs-0.3.1 で 1M 程度の書き込みを行おうとすると

% dd if=/dev/zero of=./mnt/data bs=1000k count=1
1+0 records in
1+0 records out
1024000 bytes (1.0 MB) copied, 13.2842 seconds, 77.1 kB/s

というように約 13 秒と信じられないくらい時間が掛かってしまう問題があった。
これは大きいデータを書き込む際に 4094 byte ずつ細切れにして書き込みを行っているため 1M のデータだと memcached への get と set が 256 回ずつ行われていたのが原因。(256回の realloc もか)

先程この実装を改良し open(), write()…, close() の一連の流れの中で get と set を一度ずつしか行わないように修正したところ

% dd if=/dev/zero of=./mnt/data bs=1000k count=1
1+0 records in
1+0 records out
1024000 bytes (1.0 MB) copied, 0.0194081 seconds, 52.8 MB/s

よしよし、650倍早くなった。release release!

http://memcachefs.sourceforge.net/

No comments yet.

Leave a comment

You must be logged in to post a comment.