hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Zee Chen <zeo...@gmail.com>
Subject mmap() based BucketCache IOEngine
Date Mon, 16 Mar 2015 19:43:43 GMT
Of the existing BucketCache IOEngines, the FileIOEngine uses pread() to
copy data from kernel space to user space. This is a good choice when the
total working set size is much bigger than the available RAM and the
latency is dominated by IO access. However, when the entire working set is
small enough to fit in the RAM, using mmap() (and subsequent memcpy()) to
move data from kernel space to user space is faster. I have run some short
keyval gets tests and the results indicate a reduction of 2%-7% of kernel
CPU on my system, depending on the load. On the gets, the latency
histograms from mmap() are identical to those from pread(), but peak
throughput is close to 40% higher.

Already tested the patch at Flurry. Anyone interested in reviewing the


  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message