a simple solution,

in config_opts.h, add a configuration item osd_op_force_delete, default is 
false or true?

in the class OpReques,add two function need_skip_full_check(), 
set_skip_full_check()

in the OSD::init_op_flags, add checking, if there is a delete op and 
osd_op_force_delete is ture, call set_skip_full_check.

in the OSD::handle_op, when checking full, we can skip it by 
need_skip_full_check().

Is that OK?

Ruifeng Yang

-----邮件原件-----
发件人: ceph-devel-ow...@vger.kernel.org [mailto:ceph-devel-ow...@vger.kernel.org] 
代表 Sage Weil
发送时间: 2015年9月16日 9:43
收件人: chenxiaowei 11245 (RD)
抄送: ceph-devel@vger.kernel.org
主题: Re: osds full, delete stuck.

On Wed, 16 Sep 2015, Chenxiaowei wrote:
> 
> Hi, Sage:
> 
>          Lately my team run into a problem: when osds full, the 
> delete/write request stuck.
> 
> But we all agree that the cluster should not stuck when sending delete 
> request, cause after that maybe the osds can
> 
> write again. So what?s your advice? Wish your reply, thanks.

The workaround is to temporarily raise the full threshold so you can do some 
deletes.  But you're right that a rados delete operation should be accepted in 
this state.  I've opened

        http://tracker.ceph.com/issues/13110

sage

Reply via email to