We call them “computers”, but the software and hardware are overwhelmingly concerned with storing and retrieving data. Yesterday’s Disk Performance research fit into a larger context in the QConf presentation; a survey of all the levels of storage that make up a modern system.
Now for the explanation:
Registers · These live right inside the CPU operate at its cycle speed; a single instruction can involve more than one.
Cache · Since CPUs have been getting faster much faster than DRAM has been getting faster, computers all have cache between the processor and main memory. There may be multiple levels, referred to as “L1”, “L2”, and “L3”; the number and performance of these things vary from system to system.
DRAM · Also known as “main memory”; present in amounts in the one-to-three-digit number of gigabytes.
Distributed Hash Table · memcached and friends; widely deployed in nearly all modern Web applications. This is a computer with a whole lot of DRAM, connected via a fast network, with the memory used as a lookaside cache to avoid unnecessary database accesses.
SSD and Disk · See yesterday’s 2008 Disk Performance.
Tape · It’s not going away, particularly in a regulation-heavy environment where businesses are increasingly required to store everything forever. These days, tape subsystems include a robot mechanism to mount and dismount tape cartridges, it’s all very hands-off.
Methodology · No magic here, just Web search and digging for publicly available data, plus a few Bonnie runs. I’m sure there are widely-used computers out there with numbers outside of the ranges I’ve suggested at most levels of the hierarchy. But I think these are pretty representative, and what really matters is the orders-of-magnitudes relationships between them; the thing that system designers need to keep in mind as they ponder their storage options.
Oh, and obviously these numbers are highly time-sensitive; they were different last year and they’ll be different next year.