-
Notifications
You must be signed in to change notification settings - Fork 256
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
stored: add dedup backend #1663
base: master
Are you sure you want to change the base?
Conversation
5bfa1f6
to
cb416e8
Compare
095f8f7
to
2c6f955
Compare
One thing i was not sure about was the error reporting. Currently the device itself outputs error messages whenever they are caught and prints an Emsg with it. This makes it easier to give good error reports but there will probably be a lot of double reports ala:
An alternative would be to set errno appropriately (printing a dmsg instead) and let the normal bareos routines handle the error reporting. The problem is that some problems do not have an associated error number since they might be internal logic errors so there is no way to give a helpful message in that case. |
4a0948a
to
61553e0
Compare
These are mostly used for parsing device options
Now accepts any number of datafiles. This makes a lot of code much cleaner since you do not need to constantly find out if a certain data file is the "aligned" one or not.
It was previously not possible to abort once a commit was started (since the savestate was moved immediately on the CommitBlock call). This was fixed by instead waiting for the commit to finish before issueing the move.
This allows us to split up records into multiple parts with desirable sizes. For example a 129k record may be split into a 128k part and a 1k part so that at least the first 128k are dedupable. The record header now is not treated special anymore. Its just another (tiny) bit of data.
5fdb6e7
to
5386512
Compare
4ddc678
to
e7f1f7f
Compare
Previously we tracked the available capacity instead but this caused problems with mmap wanting offsets page aligned and us not being able to guarantee that cap * element_size is page aligned.
de34fb5
to
8aa5c24
Compare
Thank you for contributing to the Bareos Project!
The dedup backend makes it possible for deduplicating filesystems to deduplicate backed up data.
Based of pr #1662
Please check
If you have any questions or problems, please give a comment in the PR.
Helpful documentation and best practices
Checklist for the reviewer of the PR (will be processed by the Bareos team)
Make sure you check/merge the PR using
devtools/pr-tool
to have some simple automated checks run and a proper changelog record added.General
Source code quality
Tests