The only thing more satisfying than writing code is being able to remove it (this is, incidently, yet another reason why slop coding anything you care about is nonsense).
I was talking with a client in the UK a fortnight or so ago now who’d written his own file store system he’d carried around for years. It stored metadata for each file in a database, which also included a hash of each file, and basic attributes he wanted to track. Upon retrieval of each file using a vaguely object store-like API, the hash of the file would be calculated, then compared against what was in the database.
Our chat went something like this:
Them: And it works like this.
Me: That’s amazing. How long have you used this?
Them: About twenty years or so, give or take.
Me: Has it saved your bacon a couple of times?
Them: Absolutely. I was able to detect corruption in a whole folder of photos from [their client site] in 2003.
Me: Would you consider using ZFS for something like this in the future?
Them: ZFS?
Me: Yeah, the file system and volume manager those Sun boffins developed that …
Them: Oh, ZFS! Yeah I’ve heard of that. Is it still a thing?
Me: Yes! It’s the only one I trust with data I care about.
Them: Huh, I might give that a look. Then I’d just need to store the metadata separately.
Me: You can also store metadata for a data set using ZFS properties as well.
Anyway I bring this up because I got an SMS from him this morning saying he’d been able to replace most of his codebase with ZFS, and managed to ink out a significant performance boost in the process. I asked for permission to share here.
This experience tells me a couple of key things:
-
There are still people who care about data integrity out there, which is a relief.
-
There are people born every minute who haven’t seen The Flintstones, as Merlin Mann would say.
I get this experience with BSD all the time too. People implement Penguins assuming its the default and only way to go, but you show them the way of Beastie, and they’re surprised it’s (still) a technically viable and pleasant alternative.
I’d argue this tech is good enough to sell itself, but it does still need a bit of advocacy too :).