Hyperspace
59 points - today at 2:04 AM
SourceFor Windows users looking to save space, there's Compactor[1] that uses the NTFS built-in compression opportunistically for only those files that benefit from it. It is not a deduplicator but the basic idea is the same: take an underutilized OS feature and make it usable.
Pretty handy when your flight sim game takes 1.2 terabytes with most of that being sparse terrain mesh data and uncompressed textures. Compressing the whole directory would take over a day according to Microsoft and their infamous progress bar; Compactor gets it done in fifteen minutes.
[1] https://github.com/Freaky/Compactor
It's quite the dark-pattern to allow you to download it and scan for free, without any clear indication that it's a paid product, and then ambush you with a purchase dangling the space savings in front of your face.
guywithabike
today at 4:15 AM
If anything, it's the opposite of a dark pattern: you get to see if it'll provide any value for you without paying a dime. It's a far better proposition than paying up only to find out that it won't free up any space for you. The linked site is very clear about how the pricing works.
This would only be true if it didn't take your time before asking you to pay to not waste the time that it took.
It says it’s a paid app right on the linked page.
There is a giga ton of content in the homepage. Are you really going to read it all? The main window doesn’t suggest it’s a paid app.
alsetmusic
today at 4:44 AM
The app store identifies apps with paid features. You shouldn't be entirely surprised.
Analemma_
today at 4:47 AM
You are complaining that it can’t instantaneously perform a complete scan of your disk, and then attributing malicious intent to this lack of magic instant scanning technology.
What are we even doing here. The knee-jerk conspiratorial foolishness on this site is completely off the deep end.
No, I'm complaining that it doesn't ask me to pay before it takes my time to perform a complete scan of my disk (ideally before it even gives me a download of the app).
We both know it does so intentionally, and we also know exactly what the intent is.
Wouldn’t the ideal be that it informs you up front that it requires payment to get the benefit, but allows you to scan to estimate the benefit before deciding whether to pay (but after acknowledging that getting the benefit requires payment)?
No we don't know this. And in fact you can listen to the Accidental Tech Podcast at length to hear him thinking through the current design at length.
I don’t understand. It mentions multiple times it’s not free right on the linked page. And if you open the App Store link? It also mentions it’s a paid app.
What am I missing?
greenpizza13
today at 4:45 AM
It's a couple Q's in on the page:
Q: How do I pay for Hyperspace?
Hyperspace is a free download in the Mac App Store. Once downloaded, it’s free to scan an unlimited number of files. Scanning will let you know how much space is eligible to be reclaimed.
If you decide you want to reclaim that space, you will need to pay for Hyperspace using the purchase button that appears after a successful scan or by selecting “Purchase Hyperspace…” from the “Hyperspace” menu in the menu bar.
alexjurkiewicz
today at 5:02 AM
It's four pages below the fold. The fact this is a paid tool is deliberately obscured.
swiftcoder
today at 5:50 AM
This is how basically all Mac software worked in my youth. Maybe we should return to the heady days of shareware
It's amazing that this is a product. In an earlier job we used to ask how to do this (discovery phase of deduplication) in the first interview screening. Once you have that list, it's straightforward to make a few syscalls that make it happen.
What are they gonna think of next, productizing something as trivial as FTP?
I think the record for most space saved by this utility in a single run is in the hundreds of TBs now. I’ll see if I can find the toot.
Edit: maybe a bit hyperbolic of me, looks like it was 3.94TB
https://mastodon.social/@WTL/116710030179809319
This uses reflinks, right? I've been experimenting with using reflinks under Linux to speed up layer extraction for Docker, it's great.
steve_taylor
today at 3:54 AM
How does this compare to diskDedupe, which has been around longer and is much cheaper?
Surprised that app with Full Disk Access permission requirement is allowed to the App Store.
starkshift
today at 4:02 AM
Nice I was just thinking about this the other day! Given the memory supply issue today, I wonder how much of data in our data centers worldwide is essentially just copied data? I have a feeling that there is a ton of redundancy, much of it absolutely necessary, but much of it essentially not at all, and howmuc memory we can reclaim by culling copies
i asked claude to make this and in 15min had a working replica CLI
Or use jdupes
I’ve been using fdupes. It’s installable from MacPorts. Or is it finddupes? I don’t quite remember.
Are you deleting the others and creating a symlink to the original? How does this work exactly? I didn't get it from the FAQ section.
Does this mean that if the original is gone, all the file links will not be found?
No, this uses a feature of the macOS file system. From the FAQ:
> Q: Are clone files the same thing as symbolic links or hard links?
> A: No. Symbolic links (“symlinks”) and hard links are ways to make two entries in the file system that share the same data. This might sound like the same thing as the space-saving clones used by Hyperspace, but there’s one important difference. With symlinks and hard links, a change to one of the files affects all the files.
> The space-saving clones made by Hyperspace are different. Changes to one clone file do not affect other files. Cloned files should look and behave exactly the same as they did before they were converted into clones.
deathanatos
today at 5:12 AM
It's a CoW (copy-on-write) file, it sounds like.
Yes, but it sounds like it's more fine-grained than just the file-level. So even if you change part of one copy, the remaining unchanged subpieces are still shared, iiuc.
CoW deduplicates at the block level. Unless you rewrite the whole file, the untouched blocks will remain common between them and only different blocks will be allocated separately.
Continuous block level deduplication is resource intensive and not a great fit unless space is at a high premium.
Offline block deduping is interesting though, but only for solid state storage. For hard disks it’s a nightmare.
nodesocket
today at 3:55 AM
Seems useful for s3 buckets. I suppose a script that watches for new objects, calculates its sha256 and stores that in a DB, then checks for duplicate hashes would be a fairly trivial task. Though s3 doesn’t support symbolic links so accounting would need to be handled by server side code.
AceJohnny2
today at 5:22 AM
While the idea of data-deduplication does apply everywhere, this specifically depends on the APFS CoW data feature, so it's not applicable outside of macOS (or APFS Volumes)
The same concepts exist in ZFS, BtrFS and, IIRC, XFS.
I don't think it's very useful but there's already a checksum in the meta data of an S3 object: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Object.h...
It might be better to keep an index of paths to checksums and use the checksum as object key in S3.
I'm not sure what you like to achieve but if you use restic with S3 as a backend you can achieve much better deduplicate and compression.