memcachefs 0.4 release
謎のロシア人 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!
Permanent Link: http://www.cuspy.org/blog/archives/480
Trackback URL: http://www.cuspy.org/blog/archives/480/trackback
