Busting Modern Hardware Myths (2013)
highscalability.com
highscalability.com
The problem is that sometimes, these abstractions leak. Knowing that what you're seeing is one of those leaks is key to not go down the rabbit hole of, for example, chasing a bug that ends up being caused by a hardware failure (painful experience!). So you have to keep notice of those layers below those you're directly working with; while you don't have to live there, you shouldn't totally ignore their existence.
I am not asking this rhetorically.
I certainly wouldn't discourage anyone from watching the video. At least read the slides!
http://gotocon.com/dl/goto-aar-2012/slides/MartinThompson_My...
Here's a chart (note that the vertical scale is logarithmic): http://preshing.com/images/integer-perf.png
In the '90s processors were doubling in performance every 20 months or so (i.e. a factor of 64x per decade). Since about 2005 processors have been doubling in performance about every 43 months. This is much slower than the insanely fast rate during the '90s but it is still very fast and still on an exponential curve.
Interesting that in order to compare apples to apples it's single threaded. That means for a back of the envelope estimation of ideally parallel loads performance, the graph goes "through the roof" since it's exactly twice on my laptop or four times on my desktop.
"there's a limited number of times you can READ and ERASE a block" (emphasis mine)
My understanding is that ERASE cycles are what's limited; reading and writing are not destructive to the flash.
the old "SAM" (Sequential Access Method) libraries talked to tape, and "DASD" (Direct Access Storage Devices) were what you and I would call a hard drive.
Think 'relative seek time' on a tape seeking to the correct block can take minutes, on disks it generally takes milliseconds. Both of them are accessed sequentially once you seek to the correct block, and that was the point of the article. Relative to seek time, disk reads are taking longer (a consequence of one physical head serving more potential bits).
I tried to get Seagate to put two independent R/W heads in a disk once. They wouldn't go for it.
Back to your comment though "RAM" as in Random Access Memory is often distinguished from Hard Drives, especially in early computer science classes to point out the differences. And again what this article is saying is that even dynamic RAM today, looks more like an I/O device than memory.
In the early 2000's at NetApp, one of the performance engineers managed to track down the performance limiter on Pentium 4's to the frontside bus memory controller. The FSB could only issue so many memory transactions per second, and the P4 had doubled the length of a cache line (that improved streaming performance at the expense of everything else). The tricky bit was that the chip reported CPU 100% busy, but in reality it was the memory controller that was busy, not the CPU.
I'm pretty sure that's tape, not HDD.
It's not slight. Modern RAM has about 20x more bandwidth doing sequential reads vs. random reads. It's almost entirely due to the addressing setup times needed to access different parts of RAM (something I suspect most programmers don't even know exists).
Programmers should actually be treating RAM the same way they treat disks, if they want the best possible performance the hardware can deliver. You can treat the L3 cache the way you used to treat RAM—they're certainly big enough these days!
One of the problem I work on is completely random access memory bound, so to scale, we now use ridiculously cheap CPUs (AMD Kaveri chips if anyone cares) paired with DDR3 2400 DRAM, $100 motherboards, and an Infiniband fabric and switch to keep them talking to each other quickly. (We use Kaveri's because we also are doing GPU computation at the same time, and thanks to the slow RAM, the on-chip R7 GPU is more than fast enough to keep up.)
On the plus side, I get to spend way less time optimizing the code since the CPU just sits there idling most of the time, which is a nice change. :)
Nope, I'm only 27.
I don't work with tapes at all, but I know that they are not dying as a medium...
HDD is the new tape.
But ultimately calling these "myths" is somewhat absurd. Everything is relative. Relative to a magnetic hard drive, main memory offers impossibly fast random access. Sure, it's slow compared to cache memory, but that is a different discussion, and a different level of optimization. Similarly, when your SSD offers you 10s to 100s of thousands of random seeks per second, it is a universe better than the 10s to low 100 of a magnetic disk.
Sequential access indicates that you have to pass all the data between where you are and where you want to go underneath the read head. So a denser medium would increase your access time unless you also changed some other fundamental (such as the speed with which you can move your medium around).
For a disk drive rotational speeds and head seek times have been more or less constant for a very long time, so the time to access a certain block can be computed without the underlying storage density becoming a factor.
So historically RA indicates disks/drums and so on and SA indicates tapes and derivatives. Bubble memory and its more recent incarnations are somewhere in the middle.
I haven't heard it stated directly, but I've seen it implied plenty. The typical scenario is simply someone who doesn't grok the gulf between random and sequential disk performance.