All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brad Hubbard <bhubbard@redhat.com>
To: Samuel Just <sjust@redhat.com>
Cc: Gregory Farnum <gfarnum@redhat.com>,
	GuangYang <yguang11@outlook.com>,
	ceph-devel@vger.kernel.org
Subject: Re: PG: all requests stuck when acting set < min_size
Date: Tue, 27 Oct 2015 20:19:25 -0400 (EDT)	[thread overview]
Message-ID: <629790552.47803809.1445991565199.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <CAN=+7FWZ_fm=UjkfmabMsmULLMTSFUqoQvnDCtp5UhYuW1YYDA@mail.gmail.com>

----- Original Message -----
> From: "Samuel Just" <sjust@redhat.com>
> To: "Gregory Farnum" <gfarnum@redhat.com>
> Cc: "GuangYang" <yguang11@outlook.com>, ceph-devel@vger.kernel.org
> Sent: Wednesday, 28 October, 2015 7:05:42 AM
> Subject: Re: PG: all requests stuck when acting set < min_size
> 
> Actually, we really can't accept reads below min_size and still keep
> the properties we want it to have.  Suppose we have 3 osds (a, b, and
> c) which see writes 0...1000.  min_size is 2.  If a and b are then
> powered off only having committed up to 900 (therefore the client
> could only have seen up to 900 commit), then c would be able to serve
> reads based on updates up to 1000 with a and b stopped (no way to know
> a and b only committed to 900).  If c then stops and a and b are
> restarted, they would begin serving reads and writes only based on
> commits up to 900 even though we would have exposed the writes up to
> 1000 to the client.

If a and/or b then accept a write you have a recipe for split-brain and no one
wants to see that in Ceph.

Cheers,
Brad

> -Sam
> 
> On Tue, Oct 27, 2015 at 12:47 PM, Gregory Farnum <gfarnum@redhat.com> wrote:
> > On Tue, Oct 27, 2015 at 11:47 AM, GuangYang <yguang11@outlook.com> wrote:
> >> Hi there,
> >> Is there any reason we stuck read only requests as well for a PG when the
> >> acting set size is less than min_size?
> >
> > A few.
> > The most important reason: PGs don't have any concept of a read-only
> > mode in the code. They are "active" or not, and an active PG handles
> > writes. (The full flags and other things which block writes but allow
> > reads are at the OSD level, not the PG level, and are handled when ops
> > come in before they reach the PG.) Allowing read requests against a PG
> > to complete even when we aren't taking writes on a per-PG level would
> > take some doing.
> > Also: it would be weird from several different levels. We'd need to
> > keep track of client streams because we wouldn't want to let through a
> > read that is ordered after a write. How would we handle the memory
> > pressure implied by that? While I can imagine it being useful for some
> > stuff like RGW reads, in general making data available for read but
> > not write is a pretty complicated thing to explain to users — how do
> > we expose that in a useful way?
> > -Greg
> > --
> > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2015-10-28  0:19 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-27 18:47 PG: all requests stuck when acting set < min_size GuangYang
2015-10-27 19:47 ` Gregory Farnum
2015-10-27 21:05   ` Samuel Just
2015-10-28  0:18     ` GuangYang
2015-10-28  0:19     ` Brad Hubbard [this message]
2015-10-28 17:13       ` Samuel Just
2015-10-28  0:14   ` GuangYang

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=629790552.47803809.1445991565199.JavaMail.zimbra@redhat.com \
    --to=bhubbard@redhat.com \
    --cc=ceph-devel@vger.kernel.org \
    --cc=gfarnum@redhat.com \
    --cc=sjust@redhat.com \
    --cc=yguang11@outlook.com \
    /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.