Technical Papers Every Programmer Should Read (At Least Twice)
A Fast File System for UNIX: http://www.cs.berkeley.edu/~brewer/cs262/FFS.pdf Modern filesystems are based on this design. They add significant features - like journaling - but by reading this paper, you will form a basis for how modern file systems work.The Google Filesystem: http://labs.google.com/papers/gfs.html Great example of what you can design when you decide certain things - like storing small files - are not important.MapReduce: Simplified Data Processing on Large Clusters: http://research.google.com/archive/mapreduce.html Great example of taking an existing idea and using it to achieve high performance.The Implementation of the Cilk 5 Multithreaded Language: http://supertech.csail.mit.edu/papers/cilk5.pdf Apple's Grand Central Dispatch uses a lot of ideas from this paper.