|
|
|
|
|
by dahfizz
1332 days ago
|
|
> Because I don't really see the fundamental difference between "we have to wait for main memory to respond" and "we have to wait for disk to respond". The difference, conservatively, is a factor of 1000. There are plenty of times in software engineering where scaling 1000x will force you to reconsider your architecture. |
|
To be clear I do not believe that async disk I/O is never useful, I just think that it's not as useful as people at first imagine when they learn about async I/O.
Yes, it may be 1000 times slower than memory. But there's a fundamental paradigm difference from network events, in that with network events you are waiting for some other entity to take action, with no implicit expectation that they will do so in any particular timeframe. Like, if you're waiting for connections on a listen socket, there's no telling how long you will be waiting.
Disk I/O is fundamentally different in that once you submit an operation, you expect it to complete within a reasonable, finite time period.