]> git.baikalelectronics.ru Git - kernel.git/commit
libceph: support for balanced and localized reads
authorIlya Dryomov <idryomov@gmail.com>
Sat, 23 May 2020 09:45:48 +0000 (11:45 +0200)
committerIlya Dryomov <idryomov@gmail.com>
Mon, 1 Jun 2020 11:22:53 +0000 (13:22 +0200)
commite1fa35e925e151c001951bb98839784787515ebb
tree8fb67a4f204be96d285341aff9bffce670ce2930
parent730307bcd1093296aace4aa44f594c36de6a1c82
libceph: support for balanced and localized reads

OSD-side issues with reads from replica have been resolved in
Octopus.  Reading from replica should be safe wrt. unstable or
uncommitted state now, so add support for balanced and localized
reads.

There are two cases when a read from replica can't be served:

- OSD may silently drop the request, expecting the client to
  notice that the acting set has changed and resend via the usual
  means (handled with t->used_replica)

- OSD may return EAGAIN, expecting the client to resend to the
  primary, ignoring replica read flags (see handle_reply())

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
include/linux/ceph/osd_client.h
include/linux/ceph/osdmap.h
net/ceph/debugfs.c
net/ceph/osd_client.c
net/ceph/osdmap.c