New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
librbd: journal replay should honor inter-event dependencies #7019
Conversation
@jdurgin some light reading for the New Year 😉 |
"only" 7k lines changed |
@dachary looks like new Jenkin's slave needs more memory(?) |
@dillaman that would be a request for @alfredodeza or @andrewschoen. I don't know what kind of jenkins slaves are selected to run the bot. |
a bummer, yes, I think we need to tweak this for more memory |
lgtm once it runs through a rbd suite. |
I'll kick off a suite run tomorrow. |
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
In general, the op shoud only start after the jouranl event is safely committed. Snapshot create and resize need special treatment to record the event while no IO is in-progress. Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
This will permit unit testing and will facilitate proper serialization of requests (when necessary). Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Properly track when AIO operations are safely committed to disk before marking the journal events are committed. Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
After snap create has blocked IO and after resize has ensured clipped IO boundaries, they will resume the playback of journal events. Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Lots of environment noise, but no failures from these changes: http://pulpito.ceph.com/jdillaman-2016-01-13_17:39:05-rbd-wip-14006---basic-multi/ http://pulpito.ceph.com/jdillaman-2016-01-13_18:36:42-rbd-wip-14006---basic-multi/ |
librbd: journal replay should honor inter-event dependencies Reviewed-by: Josh Durgin <jdurgin@redhat.com>
AIO write/discard operations are not marked as committed until safely flushed to disk (explicitly or automatically after enough unflushed events build-up in replay). Simple maintenance operations (ones that cannot affect IO operations) are delayed until after the OpFinish event is processed. Complex maintenance operations (which can affect IO) are partially executed until the point where internal state is consistent before journal event processing continues.