[sheepdog] [PATCH v3 0/3] let sd_inode_set_vid() to support range update

Liu Yuan namei.unix at gmail.com
Tue Feb 18 07:09:15 CET 2014


On Tue, Feb 18, 2014 at 10:11:38AM +0800, Robin Dong wrote:
> From: Robin Dong <sanbai at taobao.com>
> 
> After testing in large data environment, we find out that the performance of
> sheepdog will reduce raplidly when data is bigger than 2TB.
> The reason is in sd_inode_set_vid(), it only set one 'vid' at one time, and
> need to read ext-node out, set vid, then write ext-node back, which need read
> and write 4MB data.
> To promote the performance, we let sd_inode_set_vid() to set range of vids one
> time and introduce cache for B-tree code, therefore it only need read and write
> 4MB data at once after set many vids.
> 
> Signed-off-by: Robin Dong <sanbai at taobao.com>
> ---
> v2-->v3:
>   1. rename "raw_writer" to "caller_writer"
>   2. change same sd_info() to sd_debug()
> 
> v1-->v2:
>   1. add 'no rationale' for NUMBER_OF_CACHE
>   2. change function name from 'cache_xxx' to 'icache_xxx'
>   3. add comment to explain the cache can't run in
>      concurrent env.
>   4. replace 'writer_c/reader_c' to 'cache_writer/cache_reader'
> 
> Robin Dong (3):
>   lib: create new function set_vid_for_btree()
>   lib: change interface sd_inode_set_vid()
>   lib: add cache version of writer and reader
> 
>  dog/dog.h                |   7 +-
>  include/sheepdog_proto.h |   4 +-
>  lib/sd_inode.c           | 203 +++++++++++++++++++++++++++++++++++++----------
>  sheep/http/oalloc.c      |   4 +-
>  sheep/sheep_priv.h       |   7 +-
>  sheepfs/volume.c         |   6 +-
>  6 files changed, 183 insertions(+), 48 deletions(-)
> 
> -- 
> 1.7.12.4
> 
> -- 
> sheepdog mailing list
> sheepdog at lists.wpkg.org
> http://lists.wpkg.org/mailman/listinfo/sheepdog

Applied this series.

Thanks
Yuan


More information about the sheepdog mailing list