Live data from Hacker News

APFS filesystem format

blog.cugu.eu

61–70 of 148 posts

Re: APFS filesystem format

#61
post #22
post #11

Very, very cool exercise. For anyone who hasn't been following APFS much though, worth knowing that Apple has stated in their AFPS FAQ [1] that they do intend to directly "document and publish the APFS volume format specification" themselves later this year. Presumably (as they do with other stuff they develop) they want to be able to more easily make breaking changes during the shakedown period of initial public dep…

They said the same about Facetime and iMessages but never opened or documented those, so let's see when and if it actually happens. Apple has a history of false promises when it comes to opening and documenting their protocols & data formats. Edit: I misrecalled that iMessage was announced as something they were opening.

It's not Apple's fault that they didn't open up FaceTime. They absolutely were going to, and then they were sued by a patent troll (VirtnetX), and was forced to change how FaceTime works so it relays through Apple's servers instead of going peer-to-peer. Since it was now going through Apple's servers, there was no point in opening up the protocol.

Re: APFS filesystem format

#62

Earlier quoted context omitted.

My hope is that it will improve Time Machine performance / reliability.

COW should do wonders for performance, but COW with no data checksums would make me more nervous about reliability (only one copy of files to corrupt)

I haven't done any serious analysis of Time Machine (or of APFS for that matter), but I think in general Time Machine also only keeps one copy of files. So APFS isn't worse than the existing situation. Arbitrarily keeping multiple copies blows up the disk requirements. You can intentionally keep old copies around in APFS via snapshots, which is what APFS will probably do when implementing Time Machine.

What Apple added for the existing Time Machine on HFS+ was an extension of the Unix concept of hard links to files (where there is only one copy). They added hard links to directories. Generic Unix avoids doing that for a number of reasons.

Re: APFS filesystem format

#63
post #57

Earlier quoted context omitted.

"Voluntarily" after they were rapped over and over by KDE developers and community...

Ah yes, the KDE community, holders of the ear of Steve Jobs. Frankly, I'm not sure Apple ever cared for their thoughts on the matter.

Of course, they only cared about PR: by pure coincidence, they "voluntarily" changed development model on webkit right after several news outlets had picked up the umpteen blog post by a grumbling KDE developer.

Yes, Apple historically doesn't give a shit about the OSS community unless they can exploit it or it becomes a dangerous nuisance. And this is why it gets a bad rep in OSS circles.

Re: APFS filesystem format

#64

Earlier quoted context omitted.

My hope is that it will improve Time Machine performance / reliability.

COW should do wonders for performance, but COW with no data checksums would make me more nervous about reliability (only one copy of files to corrupt)

Isn't is already true that there is one copy to corrupt? The whole idea of using hard-linked trees (a la rsnapshot [1]) presumes that when a file doesn't change, there is only one copy.

[1] http://rsnapshot.org/

Re: APFS filesystem format

#65
post #41

Is there a filesystem that can fragment a large, existing file to perform arbitrary inserts?

Common in the mainframe world, like VSAM. That would be variable length record oriented files, versus stream files. Someone did do this for GEOS: http://justsolve.archiveteam.org/wiki/GEOS_VLIR , but I've never seen that for anything remotely unix like.

Re: APFS filesystem format

#67
post #38
post #26

Earlier quoted context omitted.

There are a couple features missing from HFS+. Some of these are implemented in APFS: * Case sensitivity * Clones extents / ranges (reflinking) * Holes in the middle of files * ACLs * Collapsing file ranges * Per file compression and per file encryption These are useful for apps like SQLite or other stores which implement a multi user, log structured store.

FYI - HFS is capability of case sensitivity and is an option during formatting. I believe it even used to be the default.

HFS and HFS+ were never case-sensitive by default on Mac OS. Case-sensitive HFS+ was made available as an option in Mac OS 10.0, but was always glitchy (especially for boot volumes), because many applications depended on case insensitivity.

Re: APFS filesystem format

#68

Earlier quoted context omitted.

Apple's relationship with open source is pretty average. In the end, they use open source strategically. If there's no benefit to open-sourcing something, they won't. Clang, WebKit and Swift are "proper" open source projects, done in the open. But there aren't many of those. They have no open source apps, and most frameworks such as Cocoa, AppKit etc. are completely proprietary. Some of their open source efforts have…

> In the end, they use open source strategically. If there's no benefit to open-sourcing something, they won't. Wouldn't that apply for most companies? Let's not pretend that Facebook, Microsoft et al do open source as a charity

>> Apple's relationship with open source is pretty average.

That's literally what he said.

Re: APFS filesystem format

#69

Earlier quoted context omitted.

Apple's relationship with open source is pretty average. In the end, they use open source strategically. If there's no benefit to open-sourcing something, they won't. Clang, WebKit and Swift are "proper" open source projects, done in the open. But there aren't many of those. They have no open source apps, and most frameworks such as Cocoa, AppKit etc. are completely proprietary. Some of their open source efforts have…

> In the end, they use open source strategically. If there's no benefit to open-sourcing something, they won't. Wouldn't that apply for most companies? Let's not pretend that Facebook, Microsoft et al do open source as a charity

A lot of companies routinely open-source lots of little things that could easily have stayed internal, but are genuinely useful to everyone else. (Admittedly, I think about 30% of them are Go logging libraries, but the point still stands.) I.e., open source by default as opposed to being the exception.

That, of course, can be a strategy. A company can look cooler and attract talent by developing everything in the open.

Re: APFS filesystem format

#70
post #56
post #52

Earlier quoted context omitted.

They do have at least one open source application: https://www.cups.org/ it's fully open-source, and wholly owned by Apple, however they bought it, they didn't invent it.

Interesting, I did not know that Apple is the maintainer of CUPS since 2007.

They hired the guy who originally made it, Michael Sweet [1].

[1] https://en.wikipedia.org/wiki/Michael_Sweet_(programmer)

Post reply on HN