mbox series

[v2,0/5] libceph: support for replica reads

Message ID 20200530153439.31312-1-idryomov@gmail.com (mailing list archive)
Headers show
Series libceph: support for replica reads | expand

Message

Ilya Dryomov May 30, 2020, 3:34 p.m. UTC
Hello,

This adds support for replica reads (balanced and localized reads)
to rbd and ceph.  crush_location syntax is slightly different, see
patch 3 for details.

v1 -> v2:
- change crush_location syntax
- rename read_policy to read_from_replica, add read_from_replica=no
- crush_location and read_from_replica are now overridable

Thanks,

                Ilya


Ilya Dryomov (5):
  libceph: add non-asserting rbtree insertion helper
  libceph: decode CRUSH device/bucket types and names
  libceph: crush_location infrastructure
  libceph: support for balanced and localized reads
  libceph: read_from_replica option

 include/linux/ceph/libceph.h    |  13 +-
 include/linux/ceph/osd_client.h |   1 +
 include/linux/ceph/osdmap.h     |  19 +-
 include/linux/crush/crush.h     |   6 +
 net/ceph/ceph_common.c          |  75 +++++++
 net/ceph/crush/crush.c          |   3 +
 net/ceph/debugfs.c              |   6 +-
 net/ceph/osd_client.c           |  92 +++++++-
 net/ceph/osdmap.c               | 363 +++++++++++++++++++++++++++-----
 9 files changed, 517 insertions(+), 61 deletions(-)

Comments

Jeff Layton June 1, 2020, 10:57 a.m. UTC | #1
On Sat, 2020-05-30 at 17:34 +0200, Ilya Dryomov wrote:
> Hello,
> 
> This adds support for replica reads (balanced and localized reads)
> to rbd and ceph.  crush_location syntax is slightly different, see
> patch 3 for details.
> 
> v1 -> v2:
> - change crush_location syntax
> - rename read_policy to read_from_replica, add read_from_replica=no
> - crush_location and read_from_replica are now overridable
> 
> Thanks,
> 
>                 Ilya
> 
> 
> Ilya Dryomov (5):
>   libceph: add non-asserting rbtree insertion helper
>   libceph: decode CRUSH device/bucket types and names
>   libceph: crush_location infrastructure
>   libceph: support for balanced and localized reads
>   libceph: read_from_replica option
> 
>  include/linux/ceph/libceph.h    |  13 +-
>  include/linux/ceph/osd_client.h |   1 +
>  include/linux/ceph/osdmap.h     |  19 +-
>  include/linux/crush/crush.h     |   6 +
>  net/ceph/ceph_common.c          |  75 +++++++
>  net/ceph/crush/crush.c          |   3 +
>  net/ceph/debugfs.c              |   6 +-
>  net/ceph/osd_client.c           |  92 +++++++-
>  net/ceph/osdmap.c               | 363 +++++++++++++++++++++++++++-----
>  9 files changed, 517 insertions(+), 61 deletions(-)
> 

Nice work, Ilya. This all looks good to me now. The new mount option
syntax is much more readable.

It might be nice to sprinkle in some comments about the locking around
the new rbtrees (and maybe the existing DEFINE_RB_FUNCS trees), but
that's minor stuff.

You can add:

Reviewed-by: Jeff Layton <jlayton@kernel.org>