Re: [PATCH 0/6] libceph: send osd requests in tid order

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
> 

--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux