glennklockwood
Re:What's So Bad About Posix I/O?
on Tuesday September 12, 2017 @11:25AM (#15228032)
There are very few cases in practice where it's needed. The bigger issue is deciding what consistency semantics you _do_ want to have once you decide that strong isn't necessary. Every decision exposes another corner case where someone's application breaks.
Re:What's So Bad About Posix I/O?
on Tuesday September 12, 2017 @11:04AM (#15227849)
A more pedantic title would be "What's so bad about POSIX I/O for scalable performance on networked file systems". As others have said, it's an old problem that predates exascale by decades. I never asserted that POSIX is fundamentally broken; it's just that other communities with I/O issues at extreme scales decided to not even bother with the idea of POSIX and went straight for stateless, REST-like APIs and got atomicity through immutability.
It's a pronounced problem in high-performance computing because that community evolved from a much more primitive era and is dragging decades of legacy applications (and, to some degree, thinking) behind it.
Re:What's So Bad About Posix I/O?
on Tuesday September 12, 2017 @10:55AM (#15227767)
The context was definitely HPC, but that's mostly because it's the last place where this problem persists in a very big way. The WORM workloads that serve up most of the data we consume globally just rejected POSIX entirely and created the scalable object interfaces we know and love. It was very obvious that having every Roku in the world mount a Netflix file system over the WAN was insane, so nobody had to write an article calling for the end of that bad behavior.
Updating POSIX, whether it be through more expressive consistency options or just giving middleware developers the knobs they need to implement such mechanisms themselves, has come up before[1], as you say. My worry is that many of the serious efforts from years past were ahead of their time, and hyperscale has gone their own way so the ship has sailed on POSIX I/O.
Re:What's So Bad About Posix I/O?
on Tuesday September 12, 2017 @10:48AM (#15227684)
It is and people do use it, but it ultimately still exists as software that sits on top of POSIX in the vast majority of cases. It can clean up really bad POSIX I/O by buffering and reordering, but doing so induces latency, memory overheads, and consumes other resources that don't always pay dividends at all scales.