TCP puzzlers

This post was cross-posted to the Joyent blog. It’s been said that we don’t really understand a system until we understand how it fails. Despite having written a (toy) TCP implementation in college and then working for several years in industry, I’m continuing to learn more deeply how TCP works — and how it fails. [...]

Read more...
Posted on August 18, 2016 at 9:02 am by dap · Permalink · Comments Closed
In: Uncategorized

A Filesystem on Noms

Since Noms dropped last week the dev community has seemed into it. “Git for data” — it simultaneously evokes something very familiar and yet unconstrained. Something that hasn’t been well-noted is how much care the team has taken to make Noms fun to build with, and it is. Noms is a content-addressable, decentralized, append-only database. It borrows [...]

Read more...
Posted on August 9, 2016 at 8:54 am by ahl · Permalink · Comments Closed
In: APFS, btrfs, FUSE, go, noms, software, ZFS

I Love Go; I Hate Go

I liked Go right away. It was close enough to C and Java to be instantly familiar, the examples and tutorials were straightforward, and I was quickly writing real code. I’ve wanted to learn Go since its popularity was surging few years ago. In no danger of being judged an early adopter, I happily found [...]

Read more...
Posted on August 1, 2016 at 8:19 pm by ahl · Permalink · Comments Closed
In: software

APFS in Detail: Conclusions

This series of posts covers APFS, Apple’s new filesystem announced at WWDC 2016. See the first post for the table of contents. Summing Up I’m not sure Apple absolutely had to replace HFS+, but likely they had passed an inflection point where continuing to maintain and evolve the 30+ year old software was more expensive than building [...]

Read more...
Posted on June 19, 2016 at 12:37 pm by ahl · Permalink · Comments Closed
In: APFS, software

APFS in Detail: Data Integrity

This series of posts covers APFS, Apple’s new filesystem announced at WWDC 2016. See the first post for the table of contents. Data Integrity Arguably the most important job of a file system is preserving data integrity. Here’s my data, don’t lose it, don’t change it. If file systems could be trusted absolutely then the “only” reason [...]

Read more...
Posted on June 19, 2016 at 12:37 pm by ahl · Permalink · Comments Closed
In: APFS, checksums, RAID, software

APFS in Detail: Performance

This series of posts covers APFS, Apple’s new filesystem announced at WWDC 2016. See the first post for the table of contents. Performance APFS claims to be optimized for flash. Flash memory (NAND) is the stuff in your speedy SSD. Apple changed the computing industry when it put flash into the iPod and iPhone, volumes for which [...]

Read more...
Posted on June 19, 2016 at 12:36 pm by ahl · Permalink · Comments Closed
In: APFS, flash, FTL, NAND, performance, software, SSD, TRIM

APFS in Detail: Space Efficiency and Clones

This series of posts covers APFS, Apple’s new filesystem announced at WWDC 2016. See the first post for the table of contents. Space Efficiency A modern trend in file systems has been to store data more efficiently to effectively increase the size of your device. Common approaches include compression (which, as noted above, is very very likely [...]

Read more...
Posted on June 19, 2016 at 12:35 pm by ahl · Permalink · Comments Closed
In: APFS, snapshots, software

APFS in Detail: Encryption, Snapshots, and Backup

This series of posts covers APFS, Apple’s new filesystem announced at WWDC 2016. See the first post for the table of contents. Encryption Encryption is clearly a core feature of APFS. This comes from diverse requirements from the various devices, for example multiple keys within file systems on the iPhone or per-user keys on laptops. I heard [...]

Read more...
Posted on June 19, 2016 at 12:34 pm by ahl · Permalink · Comments Closed
In: APFS, software

APFS in Detail: Overview

Apple announced a new file system that will make its way into all of its OS variants (macOS, tvOS, iOS, watchOS) in the coming years. Media coverage to this point has been mostly breathless elongations of Apple’s developer documentation. With a dearth of detail I decided to attend the presentation and Q&A with the APFS [...]

Read more...
Posted on June 19, 2016 at 12:29 pm by ahl · Permalink · Comments Closed
In: APFS, software

ZFS: Apple’s New Filesystem That Wasn’t

Prologue (2006) I attended my first WWDC in 2006 to participate in Apple’s launch of their DTrace port to the next version of Mac OS X (Leopard). Apple completed all but the fiddliest finishing touches without help from the DTrace team. Even when they did meet with us we had no idea that they were mere [...]

Read more...
Posted on June 15, 2016 at 6:30 am by ahl · Permalink · Comments Closed
In: Apple, Mac OS X, ZFS