Skip to content
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

Integrate incremental push #669

Merged
merged 17 commits into from
Sep 17, 2014
Merged

Integrate incremental push #669

merged 17 commits into from
Sep 17, 2014

Conversation

exarkun
Copy link
Contributor

@exarkun exarkun commented Sep 5, 2014

This is the last part of #46. Thus, it actually fixes #46.

It depends on #658. Review that first.

This change takes the two pieces built previously, ability to discover what snapshots exist remotely and ability to generate incremental data streams given information about remote snapshots and ties them together with the push implementation. It makes push retrieve the snapshots and feed them into the data stream generator.

Change push to first retrieve the snapshots that exist remotely.
Supply this information to the local filesystem reader so it can construct an incremental stream.
Update the filesystem writer so it is capable of receiving incremental streams into the filesystem.
Push has become asynchronous - so propagate Deferred-handling code up the stack from it.
@exarkun
Copy link
Contributor Author

exarkun commented Sep 5, 2014

Note that as buildbot points out, this is not really ready to be merged. Review comments apart from "it crashes the buildslaves" nevertheless welcome. 😉

@wallrj wallrj self-assigned this Sep 8, 2014
@wallrj
Copy link
Contributor

wallrj commented Sep 8, 2014

I skimmed through the branch. The code and docstrings make sense to me. I guess the print statements are there to assist @ryao with debugging the zfs issues. I'll do a more thorough review when those have been resolved and the branch is merged forward.

@wallrj wallrj removed their assignment Sep 8, 2014

A blocking API, for now.

The returned file-like object will be closed by this object.

:param list remote_snapshots: The snapshots which are available on the
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't mention None as default argument. Might be simpler to just have input be an ordered iterable and then you can have tuple as default and remove a code branch.

@itamarst
Copy link
Contributor

itamarst commented Sep 8, 2014

All the comments above are pretty minimal, so I'd be happy with it to be merged if buildbot were happy.

@itamarst
Copy link
Contributor

itamarst commented Sep 8, 2014

Once the comments are addressed, that is.

@exarkun
Copy link
Contributor Author

exarkun commented Sep 8, 2014

in some manual testing just now, I had this error when moving an application:

Error: Could not create local directory '/flocker/f28b1950-7783-4121-aeaf-55fa6bf54b2b.mongodb-volume-example' for bind mount: mkdir /flocker/f28b1950-7783-4121-aeaf-55fa6bf54b2b.mongodb-volume-example: read-only file system!

@itamarst
Copy link
Contributor

itamarst commented Sep 9, 2014

Actually... is there documentation of incremental push in the volume manager docs? it should be.

@exarkun
Copy link
Contributor Author

exarkun commented Sep 9, 2014

in some manual testing just now, I had this error when moving an application:

I think this was a consequence of creating the flocker pool and volume with an older version of the code and then upgrading to the read-only mounts version of the code and trying to re-use the same setup.

After I started with a fresh pool everything worked fine for a large number of pushes.

@exarkun
Copy link
Contributor Author

exarkun commented Sep 17, 2014

The build is failing but only because of a (pre-existing) problem with the way the spellchecker is run. Adam is looking into that separately (#724) so I'm merging this now.

exarkun pushed a commit that referenced this pull request Sep 17, 2014
@exarkun exarkun merged commit 187cf32 into master Sep 17, 2014
@tomprince tomprince deleted the integrate-incremental-push-46 branch September 27, 2014 21:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Incrementally update a local volume on a remote node
3 participants