Whamcloud - gitweb
LU-5319 mdt: support multiple modify RCPs in parallel 60/14860/13
authorGregoire Pichon <gregoire.pichon@bull.net>
Tue, 31 Mar 2015 12:47:53 +0000 (14:47 +0200)
committerOleg Drokin <oleg.drokin@intel.com>
Wed, 1 Jul 2015 02:01:30 +0000 (02:01 +0000)
commit5fc7aa3687daca5c14b0e479c58146e0987daf7f
tree48d0cdec82dd1dffedf3012790a3b7cdd0ec468f
parent1fc013f90175d1e50d7a22b404ad6abd31a43e38
LU-5319 mdt: support multiple modify RCPs in parallel

This patch implements the server part of the feature that allows
support of multiple modify RPCs in parallel on MDT targets.

Each target export is able to store several in-memory reply
data so that it can reconstruct several requests issued by
the client in parallel.

Additionally, a new internal file REPLY_DATA is created on
the target to store on-disk reply data. The reply data slots
in that file are managed by a bitmap (lut_reply_bitmap) and
can be used to store reply data of any client.

When target recovers, the on-disk reply data is used to
restore the in-memory reply data and ensure reconstruction
of committed operations.

Signed-off-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Signed-off-by: Gregoire Pichon <gregoire.pichon@bull.net>
Change-Id: I8f91666f5b0b4f7b9445a01c520d73f56d059ff3
Reviewed-on: http://review.whamcloud.com/14860
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
20 files changed:
lustre/include/lu_target.h
lustre/include/lustre/lustre_idl.h
lustre/include/lustre_disk.h
lustre/include/lustre_export.h
lustre/include/lustre_fid.h
lustre/include/obd.h
lustre/include/obd_support.h
lustre/mdt/mdt_handler.c
lustre/mdt/mdt_internal.h
lustre/mdt/mdt_open.c
lustre/mdt/mdt_recovery.c
lustre/obdclass/genops.c
lustre/obdclass/lprocfs_status_server.c
lustre/obdclass/obd_config.c
lustre/osd-ldiskfs/osd_scrub.c
lustre/osd-zfs/osd_oi.c
lustre/target/tgt_handler.c
lustre/target/tgt_internal.h
lustre/target/tgt_lastrcvd.c
lustre/target/tgt_main.c