I was reading ZFS‘s specs, and it struck me how Sun deliberately over-engineered the filesystem. To make sure that ZFS would be able to deal with just *any* storage device (or pool), they made ZFS a 128 bits filesystem. Now, 2^{128} blocks (2^{137} bytes) is a truly enormous quantity of data. In fact, it is so enormous that Jeff Bonwick explains how populating such a capacious device it would require more energy than is needed to boil all of Earth‘s oceans, give or take a few cubic miles.

The quote, which I find thoroughly amusing, is reproduced here:

Although we’d all like Moore’s Law to continue forever, quantum mechanics imposes some fundamental limits on the computation rate and information capacity of any physical device. In particular, it has been shown that 1 kilogram of matter confined to 1 litre of space can perform at most 10^{51} operations per second on at most 10^{31} bits of information. A fully populated 128-bit storage pool would contain 2^{128} blocks = 2^{137} bytes = 2^{140} bits; therefore the minimum mass required to hold the bits would be (2^{140} bits) / (10^{31} bits/kg) = 136 billion kg. […] To operate at the 10^{31} bits/kg limit, however, the entire mass of the computer must be in the form of pure energy. By E=mc^{2}, the rest energy of 136 billion kg is 1.2×10^{28} J. The mass of the oceans is about 1.4×10^{21} kg. It takes about 4,000 J to raise the temperature of 1 kg of water by 1 degree Celsius, and thus about 400,000 J to heat 1 kg of water from freezing to boiling. The latent heat of vaporization adds another 2 million J/kg. Thus the energy required to boil the oceans is about 2.4×10^{6} J/kg * 1.4×10^{21} kg = 3.4×10^{27} J. Thus, fully populating a 128-bit storage pool would, literally, require more energy than boiling the oceans. [ref]

Even though this quote reeks of hubris—although I’m not expecting vengeful bolts of lightning striking Bonwick any time soon—it got me thinking about the fundamental limits of computation, and how he could derive such a result.

Read the rest of this entry »