All of lore.kernel.org
 help / color / mirror / Atom feed
* Persistence of completed_requests in sessionmap (do we need it?)
@ 2015-03-03 21:39 John Spray
       [not found] ` <606442F7-CDFF-4E5E-BFA0-9D83D616F48A@redhat.com>
  0 siblings, 1 reply; 2+ messages in thread
From: John Spray @ 2015-03-03 21:39 UTC (permalink / raw)
  To: Sage Weil, Gregory Farnum, zyan; +Cc: ceph-devel@vger.kernel.org


Zheng noticed on my new sessionmap code [1] that sessions weren't 
getting dirtied on trim_completed_requests.  I had missed that, because 
I was only updating the places that we already incremented the 
sessionmap version while modifying something.

I went and looked at how this worked in the existing code, and it 
appears that we don't actually bother persisting updates to the 
sessionmap if completed_requests is the only thing that changed.  We 
would *tend* to persist it as a consequence to other session updates 
like prealloc_inos, but if one is simply issuing lots of metadata 
updates to existing files in a loop, the sessionmap never gets written 
back (even when expiring log segments).

During replay, we rebuild completed_requests from EMetaBlob::replay, and 
we've made it this far without reliably persisting it in sessionmap, so 
I wonder if we ever needed to save this at all? Thoughts?

Cheers,
John

1. https://github.com/ceph/ceph/pull/3718

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Persistence of completed_requests in sessionmap (do we need it?)
       [not found]   ` <54F714B4.6070901@redhat.com>
@ 2015-03-04 17:41     ` Greg Farnum
  0 siblings, 0 replies; 2+ messages in thread
From: Greg Farnum @ 2015-03-04 17:41 UTC (permalink / raw)
  To: ceph-devel@vger.kernel.org

Just forwarding the replies to the list as it looks like it got blocked due to accidental HTML.
-Greg


> On Mar 4, 2015, at 6:20 AM, John Spray <john.spray@redhat.com> wrote:
> 
> On 04/03/2015 12:14, 严正 wrote:
>> 
>>> 在 2015年3月4日,05:39,John Spray <john.spray@redhat.com> 写道:
>>> 
>>> During replay, we rebuild completed_requests from EMetaBlob::replay, and we've made it this far without reliably persisting it in sessionmap, so I wonder if we ever needed to save this at all? Thoughts?
>> 
>> I think we need to save completed_requests for corner cases. consider following scenario:
>> 
>> Client A sends setattr request to MDS
>> MDS handles the request and sends reply to client. But network between MDS and client A becomes disconnected.
>> MDS handles lots of setattr requests from other clients. Log entry for the first setattr request get trimmed
>> MDS crashed, standby MDS on other host takes over.
>> Client A re-send the setattr request to the new MDS.
> Ah, this makes sense.  I suspect we never saw that scenario in the automated tests because they almost all just use a single client.
> 
> John
> 

--
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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-03-04 17:41 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-03 21:39 Persistence of completed_requests in sessionmap (do we need it?) John Spray
     [not found] ` <606442F7-CDFF-4E5E-BFA0-9D83D616F48A@redhat.com>
     [not found]   ` <54F714B4.6070901@redhat.com>
2015-03-04 17:41     ` Greg Farnum

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.