Appending data and reading it efficiently is the key to achieving good performance. Many clients may append data to a single file concurrently and its important to achieve this at low synchronization cost. Google employs producer-consumer algorithm to design such system http://en.wikipedia.org/wiki/Producer-consumer_problem .via Web Space: A simplistic view of Google’s File System.
This semester I am teaching Concurrent and Parallel programing at ISCTE-IUL. One of the challenges I have is to get real application examples that don’t look “fake” or being invented just for the purpose of that class. Students need to understand the importance of those concepts as they are then applied in solving real life problems. One of such problems is the producer-consumer coordination problem that google has to solve in order to implement its file system. There’s also a paper dedicated to the Google File System by Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung