Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Support for incremental patching #1

Open
shreyasbharath opened this issue Sep 24, 2018 · 3 comments
Open

Support for incremental patching #1

shreyasbharath opened this issue Sep 24, 2018 · 3 comments

Comments

@shreyasbharath
Copy link

shreyasbharath commented Sep 24, 2018

Thanks for your work on this project, it looks like a very promising delta algorithm for embedded/memory constrained devices.

Is 'incremental' patching possible with this algorithm? For example, can we do something like below every time new data arrives into the patch stream? It'll need to maintain any state in between calls of course.

ddelta_apply_incremental(patch_stream, old_stream, new_stream)
ddelta_apply_incremental(patch_stream, old_stream, new_stream)
ddelta_apply_incremental(patch_stream, old_stream, new_stream)
.
.
.
ddelta_apply_incremental(patch_stream, old_stream, new_stream)   // Patch stream data complete

I hope that makes sense, I am happy to elaborate.

@julian-klode
Copy link
Owner

That's not possible, the old file is not a stream of data, the algorithm requires going backwards in there. For generation, you even need to be able to seek backwards in the "new" file.

With pu/windowed, it could be possible, as you only need to seek backwards in your current window. But then you'll likely need an additional copy slowing things down for the common case it's targetting.

@shreyasbharath
Copy link
Author

shreyasbharath commented Sep 24, 2018

Sorry I actually meant if the patch is a stream, but the old and new files are still seekable.

So in effect -

ddelta_apply_incremental(patch_stream, old, new)
ddelta_apply_incremental(patch_stream, old, new)
ddelta_apply_incremental(patch_stream, old, new)
.
.
.
ddelta_apply_incremental(patch_stream, old, new)   // Patch stream data complete

Would that be possible at all?

@shreyasbharath
Copy link
Author

Hi again, we've actually implemented a prototype of incremental patching. Would you be open to a pull request?

PascalGuenther pushed a commit to PascalGuenther/ddelta that referenced this issue Jan 30, 2022
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants