Whamcloud - gitweb
LU-4257 llite: fast read implementation 55/20255/7
authorJinshan Xiong <jinshan.xiong@intel.com>
Sat, 28 May 2016 03:37:38 +0000 (20:37 -0700)
committerOleg Drokin <oleg.drokin@intel.com>
Fri, 3 Jun 2016 04:35:12 +0000 (04:35 +0000)
commit172048eaefa834e310e6a0fa37e506579f4079df
treea1d4dc2ecaf0cca1bf62f004e873e029656e670a
parent1101120d3258509fa74f952cd8664bfdc17bd97d
LU-4257 llite: fast read implementation

For read operation, if a page is already in cache, it must be covered
by a DLM lock. We can take advantage of this by reading cached page
without interacting with Lustre. Traditional read will go on if fast
read fails.

This patch can improve small read performance significantly.
These are the performance data I collected:

+------------+----------------+-----------------+
|            | read bs=4k     | read bs=1M      |
+------------+----------------+-----------------+
| w/o patch  | 257 MB/s       | 1.1 GB/s        |
+------------+----------------+-----------------+
| w/ patch   | 1.2 GB/s       | 1.4 GB/s        |
+------------+----------------+-----------------+

Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: I2ebac609a6c80b135ee64ba001f75fa2cc80faf2
Reviewed-on: http://review.whamcloud.com/20255
Tested-by: Jenkins
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/llite/file.c
lustre/llite/llite_internal.h
lustre/llite/llite_lib.c
lustre/llite/llite_mmap.c
lustre/llite/lproc_llite.c
lustre/llite/rw.c
lustre/llite/vvp_internal.h
lustre/tests/sanity.sh