All of lore.kernel.org
 help / color / mirror / Atom feed
From: Josh Durgin <josh.durgin@inktank.com>
To: Gregory Farnum <greg@inktank.com>
Cc: "ceph-devel@vger.kernel.org" <ceph-devel@vger.kernel.org>
Subject: Re: [PATCH 0/3] block I/O when cluster is full
Date: Mon, 09 Dec 2013 16:45:44 -0800	[thread overview]
Message-ID: <52A66438.90101@inktank.com> (raw)
In-Reply-To: <CAPYLRzgr7p3HGZUrg2NyvA2uBPUaucmxy7rgG+sMJcFkjH+F=w@mail.gmail.com>

On 12/09/2013 04:19 PM, Gregory Farnum wrote:
> On Mon, Dec 9, 2013 at 4:11 PM, Josh Durgin <josh.durgin@inktank.com> wrote:
>> On 12/06/2013 06:24 PM, Gregory Farnum wrote:
>>>
>>> On Fri, Dec 6, 2013 at 6:16 PM, Josh Durgin <josh.durgin@inktank.com>
>>> wrote:
>>>> Don't bother trying to stop ENOSPC on the client side, since it'd need
>>>> some
>>>> restructuring in the kernel side and would be prone to screwing up
>>>> write ordering.
>>>>
>>>> Instead drop writes on the osd side when they have a map marked full,
>>>> and have clients resend all writes when a map goes transitions from
>>>> full -> nonfull. The userspace side is
>>>> https://github.com/ceph/ceph/pull/914
>>>
>>>
>>> Do previous client implementations already satisfy that requirement?
>>> We can't drop requests if older clients expect a response...
>>
>>
>> No, previous clients do not do this. For old rbd clients, this turns a
>> potential corruption into a hang, which is a good trade-off imo.
>>
>> For userspace clients, this only happens when the osd gets the FULL map
>> first, and rejects a write in flight before the client got a FULL map.
>>
>> The kernel client already rejects writes at the fs layer when the FULL
>> flag is set, so kcephfs will only be affected when it hits this race as
>> well.
>
> Hrm, do we have mechanisms in the kernel for re-sending ops that are
> waiting? Hanging instead of corrupting doesn't help us much if we have
> no way to get the proper state ondisk.

Yes, that's what 1/3 uses.


      reply	other threads:[~2013-12-10  0:45 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-03 23:12 [PATCH 0/3] block I/O when cluster is full Josh Durgin
2013-12-03 23:12 ` [PATCH 1/3] libceph: block I/O when PAUSE or FULL osd map flags are set Josh Durgin
2013-12-07  3:02   ` Li Wang
2013-12-09 23:52     ` Josh Durgin
2013-12-03 23:12 ` [PATCH 2/3] libceph: add an option to configure client behavior when osds are full Josh Durgin
2013-12-03 23:12 ` [PATCH 3/3] rbd: document rbd-specific options Josh Durgin
2013-12-06  1:47 ` [PATCH 0/3] block I/O when cluster is full Josh Durgin
2013-12-06  4:58   ` Gregory Farnum
2013-12-07  2:16     ` Josh Durgin
2013-12-07  2:24       ` Gregory Farnum
2013-12-10  0:11         ` Josh Durgin
2013-12-10  0:19           ` Gregory Farnum
2013-12-10  0:45             ` Josh Durgin [this message]

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=52A66438.90101@inktank.com \
    --to=josh.durgin@inktank.com \
    --cc=ceph-devel@vger.kernel.org \
    --cc=greg@inktank.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.