-
-
Notifications
You must be signed in to change notification settings - Fork 87
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
TAR as new Export/Import format for speed and streamability #1729
Comments
To all:
I mean: tar is a good proposal but does it fulfill all requirements? |
The effort in using sqlar (sqlite based backup than now) is quite zero. |
On Sat, Jul 18, 2020 at 16:45 -0700, Christian Schneider wrote:
@hpk42:
- Streamability:
What is the benefit to have this? Maybe You can explain why this is important? At the end You can stream every file?
For multi-device setup (#1731) streamability is a big plus both for
speed and storage reasons. In particular, for exporting we don't need any extra storage
when streaming over network. Speed i already discussed in the top issue comment here.
It is relevant as it provides for a more fluid setup UX.
I am not too worried about size of async-tar crate atm and
we have metadata in the db. Also while importing from the
stream we get metadata for each file entry.
Let's please not discuss this much more now unless really neccessary -- several core devs have discussed this now and unless there are good *new* arguments there is no point in repeating old ones.
|
Regarding metadata: I speak about additional data like we have now: File version, backup date, backup duration, ... Yes I think all key arguments are on the table! But I think You see, that I'm still not convinced that tar or zip is the right way ;-) |
Compare of speed measurements: I think you use for import current DC backup_blobs format in sql-file. This means that you need to do the vacuum at the end which is the big disadvantage for import! So, I suspect there is no real speed advantage for tar at import when you're using sqlar as an archive! |
No, the plan is to pack blobdir into the tar archive as-is, blob table will not be created. |
I understand that you intend to pack blobdir into archive. But my comment related speed compare pointed to the fact, what format of sql-file is used. I want to say: you are using current DC backup format (with db-blobs table in database), not sqlar! |
No, there is no blobs table in the database anymore. The database is packed into the tar archive as is, without adding a blob table inside of it. |
Fix #1729 Co-authored-by: holger krekel <holger@merlinux.eu> Co-authored-by: Alexander Krotov <ilabdsf@gmail.com>
The current export/import mechanism is slow and not streamable. This issue is a follow-up and supersedes #1727 after discussions there and on IRC. Note that while this issue talks about streamability, it is not discussing how to get a trusted/encrypted/authenticated stream between two devices.
My Measurements on desktop:
So for export tar is 4 times faster, and on import tar is 3 times faster than sqlite.
Moreover, "tar" is streamable on both sides, will not take any extra space and is RAM efficient.
A suitable tar implementation for use might be https://docs.rs/async-tar/0.1.1/async_tar/
Note that sqlar does not majorly modify the picture likely -- and it's lack of streamability does not make it a good candidate to go through the effort of introducing a new export/import format.
The text was updated successfully, but these errors were encountered: