Motorola bet on faster IO, increasing risk of data-corruptions

I need to follow up on my blog post re Pixel lagging more than Moto Z. Sorry about the click-baity title of the previous blog, but that was a way to get noticed and get some help. I am really thankful for the [small percentage of] thoughtful feedback I received. Turns out Motorola uses the F2FS + nobarrier mount option to speed up writes to NAND. nobarrier does not turn fsync is a no-op. [Read More]

Why Google Pixel lags 10x more than Moto Z

In my previous post I made an argument that a modern phone is only as fast as the slowest component: ability of NAND to handle 4k writes. I decided to compare two Android flagships on the opposite ends of random-write-4k benchmark spectrum: Moto Z vs Google Pixel. I wrote a little fio benchmark driver to fill all available device storage with random 4k writes, print perf stats along the way. Idea is to run the benchmark on /data/ partition, then fill all available space by writing to /storage/emulated/0, then do another round of testing on /data. [Read More]

Laggy phones and misleading benchmarks

TLDR: You can predict degree of unresponsiveness of a phone via random-write-4k benchmarks. I wish review websites would fill phones to 80-90% prior to running the benchmark, especially on smaller-capacity phones where users are more likely to run out of space. SQLite vs Phone NAND I’ve long held a theory that Android lag is almost directly determined by slowness induced by SQLite transactions. This weekend, while researching phones for a family member, I found some supporting evidence. [Read More]