3 ms·
our software to be aware of the true characteristics of the underlying hardware. Ewww, no. That's a terrible goal, and a poor understanding of how things curr
by JohnBooty 12y ago
our software to be aware of the true characteristics of the underlying hardware.
Ewww, no.
That's a terrible goal, and a poor understanding of how things currently work.
Traditional spinning disks aren't dumb devices. There is a lot of stuff happening at the firmware level. Address translation, remapping of bad sectors to spare sectors, command queuing, etc.
It's complicated stuff, to put it mildly, and you're suggesting that we ought to duplicate these tasks across every app and/or driver and/or OS?
Even if (to choose a single, arbitrary application) Postgres had some kind of really specialized code that bypassed the SATA protocol and had direct access to the physical flash memory cells of a single manufacturer's SSD firmware, the odds of achieving a performance win are pretty low and the complexity of Postgres is sure to have increased sharply.
Maybe you could move up a level, and have that kind of specialization at the driver level and not the application level, but still: yuck. Hardware and software creators should focus on kicking ass at implementing protocols, not on ignoring protocols and creating compatibility nightmares.
- zokier 12y ago> It's complicated stuff, to put it mildly, and you're suggesting that we ought to duplicate these tasks across every app and/or driver and/or OS? I was thinking the filesystem layer. > Hardware and software creators should focus on kicking ass at implementing protocols, not on ignoring protocols and creating compatibility nightmares. I didn't mean that protocols should be ignored. I did mean that the protocols should evolve. Of course the transition period might be bit painful. Some existing work: Open NAND Flash Interface Working Group http://en.wikipedia.org/wiki/Open_NAND_Flash_Interface_Working_Group http://en.wikipedia.org/wiki/Open_NAND_Flash_Interface_Worki... (note the "Block Abstracted NAND" which is an example of the kind of mid-way solution I'm thinking of) UBIFS http://en.wikipedia.org/wiki/UBIFS http://en.wikipedia.org/wiki/UBIFS this also has layered approach, UBI layer for managing the raw flash and then on top of it the proper FS.
- JohnBooty 12y agoI re-read my initial post and I just wanted to say that my negative tone was totally out of line. I'm sorry I posted such a condescending and snarky reply. I think you really do raise an interesting point, and thank you for the links!