Re: [PATCH 0/3] krbd discard optimizations

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Should we try to ensure that librbd and krbd have (semi) matching
discard behavior? In librbd, a full object discard on an overlapping
child will truncate the child object to size zero instead of issuing a
delete. With this krbd change, if a child object had previously been
written and now was discarded, the parent data will become visible
again since the child object is deleted. This could be prevented by
issuing a "assert_exists" + "truncate(0)" op to prevent the implicit
zeroing of a full object extent if it was never written and would
prevent the parent data from becoming visible again after a discard.
Obviously the data is still consistent either way but it would be good
to match.

Otherwise, lgtm.

Reviewed-by: Jason Dillaman <dillaman@xxxxxxxxxx>

On Tue, Jan 29, 2019 at 10:47 AM Ilya Dryomov <idryomov@xxxxxxxxx> wrote:
>
> Hello,
>
> This should help the "-o discard" case and improve performance across
> the board, although we don't have a solution for querying the object
> store backend and passing the appropriate value for alloc_size yet.
>
> Ilya Dryomov (3):
>   rbd: get rid of obj_req->obj_request_count
>   rbd: handle DISCARD and WRITE_ZEROES separately
>   rbd: round off and ignore discards that are too small
>
>  drivers/block/rbd.c | 111 +++++++++++++++++++++++++++++++++++++++++++---------
>  1 file changed, 92 insertions(+), 19 deletions(-)
>
> --
> 2.14.4
>


-- 
Jason



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux