Whamcloud - gitweb
LU-13073 osp: don't block waiting for new objects 74/40274/42
authorAlex Zhuravlev <bzzz@whamcloud.com>
Fri, 16 Oct 2020 16:09:04 +0000 (19:09 +0300)
committerOleg Drokin <green@whamcloud.com>
Wed, 10 Mar 2021 08:03:52 +0000 (08:03 +0000)
commit2112ccb3c48ccf86aaf2a61c9f040571a6323f9c
tree649d852c53ce6a09822478f8c2dc101a882a9d41
parent168ec247779f3ab743985bdbad605f8eacd8fc81
LU-13073 osp: don't block waiting for new objects

if OST is down, then it's possible that few threads trying
to get already precreated object will get stuck. even worse
that all QoS-based allocations then are serialized by the
single semaphore, even those that wouldn't try to allocate
on failed OST.

the patch introduces noblock flag in the allocation hint
which is passed to OSP. then QoS code tries to allocate
objects in a non-blocking manner.

Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: I38e66d7569aefecf800dbc32f1049ac87853439e
Reviewed-on: https://review.whamcloud.com/40274
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Yingjin Qian <qian@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/include/dt_object.h
lustre/lod/lod_internal.h
lustre/lod/lod_qos.c
lustre/osp/osp_internal.h
lustre/osp/osp_object.c
lustre/osp/osp_precreate.c
lustre/tests/sanity.sh