4 ms·
So many algorithms, data structures and patterns in computer sciences were based on the idea that hard disks are slow and their seek times are especially slow.
by abhinai 8y ago
So many algorithms, data structures and patterns in computer sciences were based on the idea that hard disks are slow and their seek times are especially slow. However, the introduction of solid state drives has changed this. There days I have almost no server with an actual disk drive on it.
I wonder how (1) the software has evolved to face this new reality, (2) how much of the old code is still being used and (3) what are the performance penalties we pay for using disk performance characteristic assumptions in code that actually runs on solid state drives?
- ignoramous 8y agoWell, most distributions choose saner defaults. For instance, RHEL/CentOS/AmazonLinux use noop io-scheduler by default for SSD based machines. Though, I get your point: for instance, the TCP keep-alive defaults aren't suitable for all kinds of workloads: https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-firewall-guidance.html https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-... I guess, that's why performance tuning is an art form as it is workload dependant: https://youtu.be/89fYOo1V2pA https://youtu.be/89fYOo1V2pA
- thatsaguy 8y agoIncidentally, SSDs also benefit from read and write locality. Although there's no seek penalty, there's still a large benefit from dispatching multiple reads and writes from/to the same cell. You get those for free by trying to minimize "seeks", although the underlying logic behind this optimization is simpler.