All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alex Elder <elder@linaro.org>
To: Ilya Dryomov <idryomov@gmail.com>,
	Ceph Development <ceph-devel@vger.kernel.org>
Cc: David Disseldorp <ddiss@suse.de>, Maged Mokhtar <mmokhtar@petasan.org>
Subject: Re: wip-fancy-striping in ceph/ceph-client
Date: Tue, 13 Feb 2018 09:05:45 -0600	[thread overview]
Message-ID: <47566385-f84b-6bdb-45ee-afc1b9a015c1@linaro.org> (raw)
In-Reply-To: <CAOi1vP-4_gmH2DqL2EN2_MkLju3frqBkbun7P=U=HrMUMLnOgw@mail.gmail.com>

On 02/13/2018 03:58 AM, Ilya Dryomov wrote:
> Hello,
> 
> I've pushed wip-fancy-striping with my striping v2 patches.  I didn't
> want to patch bomb the list and opened a dummy PR for feedback:
> 
>   https://github.com/ceph/ceph-client/pull/19
> 
> As this is a full striping v2 implementation with adjacent extent
> merging and no limitations on parent layouts, the patch set is very
> invasive -- it's basically a rewrite of the entire I/O path.  Any
> review comments and testing cycles would be greatly appreciated!

This looks like a nice improvement.  I think the bio improvements
from Kent Overstreet shortly after I finished working on this stuff,
and some of this might have been enabled by that work.  Some of the
multiqueue work helps too.  Regardless, I won't say I've formally
reviewed it but it looks really good to me, improves things beyond
just adding the fancy striping functionality.

I'm only scanning through them right now.  Here are a few simple things:
- Very nice cleanup in  __ceph_calc_file_object_mapping()
- I don't like the ({ zero_bvec(&bv); }) in zero_bios.  It looks wrong,
  but the real problem is the way ceph_bio_iter_advance_step() is defined.
  The caller shouldn't (have to) assume the existence of a symbol having
  a particular name.  I'm not sure how this advance step macro will be
  used elsewhere but can you just supply a function that operates on
  bio_vec pointer instead (possibly null)?  I think that may be the only
  reason you need a macro for pass-by-name, so doing this might allow this
  to become an inline function instead.  (I see later that this code got
  affected; maybe the problem goes away?)
- I'm not sure why OBJ_REQUEST_PAGES was used for stat requests.
- Are CEPH_MSG_DATA_BVECS dependent on CONFIG_BLOCK?  (Though I always
  wondered what system might ever be configured without it.)
- I think you should (have) split "rbd: new request handling code" into
  several patches.  I wanted to see the non-image requests going away
  separately, or the opportunistic write in a stat, for example.
- I like the state machine, and you simplified a lot with that commit.
- It's nice to complete all image requests at once rather than having to
  do so in order.
- Generally I didn't work through the new fancy striping code; too fancy
  for a quick review.
- Nice to see more use of multiple ops in an OSD request.  As I recall
  the way it's implemented is pretty limited; I wanted to generalize it
  but never got that far.
- I think the reference counting between parent and child images was
  done safely, but I'm glad you were able to reason away the need for
  some of it.

I'd love to give this a much deeper review but it'll take a full day
at some point and I don't have that right now.  (I've already used
time I probably can't afford...)  I can probably make time though if
you think it's final.  

					-Alex

> Thanks,
> 
>                 Ilya
> 


  reply	other threads:[~2018-02-13 15:05 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-13  9:58 wip-fancy-striping in ceph/ceph-client Ilya Dryomov
2018-02-13 15:05 ` Alex Elder [this message]
2018-02-13 16:24   ` Ilya Dryomov
2018-02-13 16:38     ` Alex Elder
2018-02-16 16:30 ` Maged Mokhtar
2018-02-17  8:44   ` Ilya Dryomov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=47566385-f84b-6bdb-45ee-afc1b9a015c1@linaro.org \
    --to=elder@linaro.org \
    --cc=ceph-devel@vger.kernel.org \
    --cc=ddiss@suse.de \
    --cc=idryomov@gmail.com \
    --cc=mmokhtar@petasan.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.