Testing AeroVault V3 #2
Replies: 3 comments 2 replies
|
I added a couple of more rows to the table. I was curious to find how much various 3D object file formats can be compressed. By the way, as you can see, some of these tests took a long time. Can you please implement a progress bar and write the percentage of the progress, both in the GUI and CLI? Thanks. Afterthought: |
|
Thank you for this, the depth of the test pass is exactly what shaped v4. As promised in axpdev-lab/aeroftp#276, here are the specifics, point by point. Going forward AeroVault format and feature discussion lives on this repo; the settled design is summarized in the new Design Threads home (#4), and the long-form history stays in axpdev-lab/aeroftp#276 / #272. Tags: ✅ shipped · 🔭 follow-up (on record) · 🆕 new answer. Compression tests
Out of memory on 16GB + leftover temp files
Stages note (pipeline ordering)Your proposed sequence is exactly the AeroVault v3 design, and it is settled and shipped: So chunking comes first and compression is per chunk, for the reasons in the spec (section 2): chunking before compression keeps dedup, resume, and range semantics chunk-aligned, and per-chunk compression lets a reader inflate one logical block without unpacking the whole archive. That is the deliberate trade: we keep random per-file extraction and chunk-level dedup, at some ratio cost versus a solid archive. The Usability
Follow-up comment
Thanks again. A lot of v4 is the way it is because of this report. |
|
@EhudKirsh follow-up with the counter-tests for the two issues your V3 Beta run actually hit (the kill-mid-seal leftovers and the 16GB out-of-memory), plus the round-trip integrity you verified. All three are now closed; details and the exact regression tests are below. The problems your tests surfaced, and where they stand now
Counter-tests (current status)Regression tests added per issue, all green (crate
|
| Your observation | What we re-tested | Result |
|---|---|---|
| 8GB plaintext temp left after kill | v3 container writes via auto-deleting NamedTempFile; standalone repair scrubs temp on the persist-error branch (M1) |
🟢 repair_restores_and_leaves_no_temp_artifact green (crate + app, in-memory and streamed): byte-restore confirmed AND no temp artifact left |
56B .aerovault.lock stale, blocked the next run |
PID-liveness auto-reclaim, atomic rename-aside (M9) | 🟢 stale_lock_with_dead_pid_is_reclaimed green; live_owner_lock_is_not_stale green (a live owner is never stolen) |
| OOM at 8GB on the 16GB music set | pre-flight memory guard warns before allocating beyond budget | 🟢 shipped; warns instead of OOMing |
| b3sum identical after decrypt + extract | round-trip + byte-identity across the full matrix | 🟢 part of the 116-test crate suite + the app aerovault_v3 suite, green on Linux and Windows |
These sit inside the broader 2026-06-18 security audit: 1 High, 1 Medium, 3 Low, 4 Info, 0 Critical, all fixed and verified on both the crate and the app, controaudit grade A with 0 open findings. The kill-cleanup pair (M1 + M9) is exactly the gap you reported here. Full write-up: #1.
Shipped in aerovault 0.6.2 (crates.io) and in AeroFTP 4.0.7. Thanks again for the precise filenames and the b3sum check, they made the cleanup gap trivial to reproduce and close.
(Your usability asks in this thread, the drag-and-drop, multi-select files+folders, extract-all, Technical Receipt save location, the TIME ELAPSED / time_elapsed wording, and the .aerozip unencrypted-archive idea, are tracked in the rolling tracker (#5); several already shipped. They are out of scope for this audit delta.)
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
I tested AeroVault V3 Beta in AeroFTP v4.0.3. Here is my feedback:
Compression tests I made:
The numbers below are the final compressed byte sizes (the smaller the better),
the percentage that was compressed (the higher the better) and the time elapsed (the lower the better):
(zstd -3)
(zstd -9)
(zstd -19)
.txtnotes totalling 1.14MB.pdfacademic articles totalling 534MB.jpgimages totalling 73MB.mp3music files totalling 1GB.mp4&.mkvvideos totalling 4.8GB.sh3d(Sweet Home 3D) files totalling 5.05GB.3mffiles totalling 119MBa 150kB AllZeros.bin file
.zip.aerovaultitself! Trying to compress an encrypted file just to see what happens. This is a.aerovaultV2 of the 3 1.14MB.txtfiles, to test if encrypting without first compressing leaves room for compression afterwards.It seems that
.aerovaultincurs a 2kB minimum byte size. So even when the receipt says that the all Ones and Zeros files can be compressed to under 100B, the resulting file is around 2kB. Also, the.aerovaultof files with random numbers adds 2kB over the inputs. This is just my observation.I tried to compress over 16GB of music files, but I ran out of RAM at AeroFTP using 8GB, but it was nice to try.
I ended AeroFTP with task manager and deleted the 2 temporary files (56B
.aerovault.lockand 8GB.aerovault-v3-nSTAnw).It's probably worthwhile to write the a warning to not try to enter too much byte size to one
.aerovaultfile.These files weren't optimised, such as by using apps that compress images.
I rounded to whole numbers for simplicity.
I also tested V2 Standard, Advanced and Paranoid modes, and there's no noticeable (or expected) compression.
I also tested that the b3sum of decrypted and extracted files is identical to what it was before compressing and encrypting them.
Here's how I created the all 1s, all 0s and all random numbers binary files using NodeJS:
This script saves those files to the folder in which the terminal is open in. You can then view these binaries in an IDE. I use VSCodium.
Careful not to make files too large, or the IDE will crash.
Stages note:
I asked AI, and you might find it interesting to ask AI and verify for yourself, what comes first, chunking or compression, in
.zip,.rar, Restic and Kopia. It seems like.zipis the exception, and it compresses files individually before grouping small files together. So for the overlays/wrappers, it indeed seems to be that chunking comes first, but for.aerovault, you might want to look into the reasoning that.ziphas to compress first. Maybe it's just old and inefficient, or maybe it can help shape part of the.aerovaultdesign. It's a trade-off of: do you want maximum compression or maximum speed of compressing and extracting individual files. Just to clear the confusion, it seems that in all of these, batching small files and splitting large files is a step in chunking, not compression like I thought before.This paragraph should be cleared up before releasing AeroVault V3, and the overlays/wrappers in AeroFTP after it.
It'd be nice to see definitive sequence like:
i. Batching small files and splitting larges files
ii. Hashing
iii. Deduplication
Where pretty much the only main thing that I can see changing is putting compression before chunking,
while keeping the steps inside the same. Actually, I'm not sure.
Usability (General, not specific to V3):
It would be nice to have a drag & drop functionality for AeroVault, similar to the custom icons library.
While on this point, AeroFile can also benefit from a drag & drop feature from File Explorer.
Please allow selecting multiple files and folders at the same time to give a regular zipping experience.
>_ Technical Receiptpage with📥 Export .txtand📥 Export .jsonbuttons,but unfortunately they don't say there they're exporting to the Downloads folder.
It's be nice to be able to decide where to save these to, and get some sort of feedback that the files are successfully exported.
.aerozipfile format. It's basically like AeroFTP V3 & V4, but without encryption. I was even thinking of suggestingEncryption(.aerozip) = .aerovault, but this might be problematic since Error Correction is done after encryption and I'd like both file formats to be able to support it..aerovault, I see that it's possible to extract files individually. Please add an option to extract everything to some folder path. Is the only way currently to extract and save hundreds of files from.aerovaultin the AeroFTP GUI at the moment by extracting each by manually clicking on each? There has to be a button to extract all the files and subfolders at the same time..aerovault, to the right of the '🗝 Change Password' button, please add a button to change the mode.Maybe also show the
📥 Export .txtand📥 Export .jsonbuttons there as well.Also, rephrase ms_total to time_elapsed in the
.txtand.jsonreceipts, and measure it in seconds, even if with a decimal place.All reactions