The retrieval and processing of the data is done externally (i.e. not on your server).
With a few indices and maybe even a materialized view (or even pruning data you don't need), you can answer most queries so fast that latency between linode and the census > query time.
I know munging csv's and writing sql isn't as sexy as JSON APIs or mongodb, but sometimes the simple solutions are the right ones.
You forgot about unzipping. The total is 13.49 GB zipped, or 133.4 GB unzipped. [0]
[0] http://www2.census.gov/census_2010/04-Summary_File_1/Califor...