← Back to context

Comment by tombert

7 hours ago

On a recent project I have needed to use exFAT. exFAT is terrible for a number of reasons, but in my case the thing I had to deal with was the lack of journaling, which had the possibility to corrupt files if there were a power interruption or something.

I initially was writing a series of files and doing some quasi-append-only things with new files and compacting the old one to sort of reinvent journaling. What I did more or less worked but it was very ad hoc and bad and was probably hiding a lot of bugs I would eventually have to fix later.

And then I remembered SQLite. I realized that ACID was probably safe enough for my needs, and then all the hard parts I was reinventing were probably faster and less likely to break if I used something thoroughly audited and tested, so I reworked everything I was doing to SQLite and it worked fine.

I wish exFAT would die in a fire and a journaling filesystem would replace it as the "one filesystem you can use everywhere", but until it does I'm grateful SQLite exists.

The problem with it is you didn't solve your biggest actual problem, you just haven't had a problem bite you in the ass yet so you think your problem is solved.

  • I am not sure the problem is actually fully solvable. I think SQLite helps at least a little.

> I wish exFAT would die in a fire and a journaling filesystem would replace it as the "one filesystem you can use everywhere"

Where exactly is everywhere? Win32? All of Linux? BSDs? MacOS? IOS? ...

  • Everywhere exFAT is supported now. Windows, Mac, Linux, FreeBSD would be fine.

    • Presumably Microsoft fear making it easy to swap OSes and access the same data.

      "I can use Linux because if I get stuck I can just switch to Windows and still access my data" is a comfort that probably keeps people from even trying Linux (or other OSes)?

      Why else would MS not support BTRFS/ZFS/Ext or whatever?

      {I'm not saying that I think this works.}

      1 reply →

  • Something MacOS and Windows support natively would be a good start, it could grow from there.