From: Alex Elder <elder@inktank.com>
To: ceph-devel@vger.kernel.org
Subject: Re: [PATCH 0/6] libceph: send osd requests in tid order
Date: Tue, 26 Mar 2013 09:49:39 -0500 [thread overview]
Message-ID: <5151B583.1090109@inktank.com> (raw)
In-Reply-To: <5151071C.3000309@inktank.com>
On 03/25/2013 09:25 PM, Alex Elder wrote:
> This series rearranges the way osd requests are placed onto an
> osd client's unsent request list so that they are kept in
> order based on their transaction ids. The osd expects its
> requests from a client to have monotonically increasing tids.
> Since requests are sent to the osd in the order they are on
> the unsent list if we keep them sorted there this property
> is preserved.
>
> -Alex
>
> [PATCH 1/6] libceph: slightly defer registering osd request
> [PATCH 2/6] libceph: no more kick_requests() race
I got some early feedback which clarified something for me
and which led me to make a few changes, mostly to the third
patch in this series.
What the osd requires is that the tids for requests to a
given *object* from an osd client be increasing. I had
previously understood it was all requests from an osd
client (regardless of target object) that needed increasing
tids. It turns out both properties hold (at least once
this series of patches is applied) so this difference
affects the explanations more than the code.
I also realized that re-queueing unsent requests along
with sent ones in __kick_osd_requests() means that some
unsent requests could be moved ahead of others in the
unsent list--others which have a higher tid. So now
we only move already-sent requests to the front and
leave any that have not yet been sent where they were.
I'm about to re-post updated versions of these patches
reflecting these changes. Only patches 3 and 6 were
changed, and they're the only ones I"m going to post.
Patches 4 and 5 were simply rebased for the changes
in patch 3.
These updates patches (along with the others) are available
in branch "review/wip-4392-2" of the ceph-client git repository.
-Alex
[PATCH 3/6, v2] libceph: requeue only sent requests when kicking
[PATCH 6/6, v2] libceph: verify requests queued in order
> [PATCH 3/6] libceph: prepend requests in order when kicking
> [PATCH 4/6] libceph: keep request lists in tid order
> [PATCH 5/6] libceph: send queued requests when starting new one
> [PATCH 6/6] libceph: verify requests queued in order
>
prev parent reply other threads:[~2013-03-26 14:49 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-26 2:25 [PATCH 0/6] libceph: send osd requests in tid order Alex Elder
2013-03-26 2:27 ` [PATCH 1/6] libceph: slightly defer registering osd request Alex Elder
2013-03-26 2:27 ` [PATCH 2/6] libceph: no more kick_requests() race Alex Elder
2013-03-26 2:27 ` [PATCH 3/6] libceph: prepend requests in order when kicking Alex Elder
2013-03-26 14:50 ` [PATCH 3/6, v2] libceph: requeue only sent requests " Alex Elder
2013-03-26 2:27 ` [PATCH 4/6] libceph: keep request lists in tid order Alex Elder
2013-03-26 2:28 ` [PATCH 5/6] libceph: send queued requests when starting new one Alex Elder
2013-03-26 2:28 ` [PATCH 6/6] libceph: verify requests queued in order Alex Elder
2013-03-26 14:50 ` [PATCH 6/6, v2] " Alex Elder
2013-03-26 14:49 ` Alex Elder [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=5151B583.1090109@inktank.com \
--to=elder@inktank.com \
--cc=ceph-devel@vger.kernel.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.