This article is nonsensical. If you're reading this please don't start mmap'ing files just to read from them. It proposes an incredibly unrealistic scenario where the program is making thousands of random incredibly small unbuffered reads from a file. In reality 99 percent of programs will sequentially reading bytes into a buffer which makes orders of magnitude less syscalls.
Mmap is useful in niche scenarios, it's not magic.
At a previous company, we had a custom "database" (I use that term very loosely) built on memory mapped files. All startup, all pages were read to ensure the data was hot, unlikely to be any page faults. It worked well for the application, but obviously because the whole thing fit in memory and was preloaded. We also had our own custom write-ahead-log. Today, I'd probably use sqlite.
That is not unrealistic if you are using the file to save binary data on given positions and don't need to read all data. For example if you have a big matrix of fixed size structs and you need to read only some of them.
Mmap is useful in niche scenarios, it's not magic.