I almost missed the milestone, and then I realised that today was the 100th paper in the #themorningpaper series! I'm sure most readers of my blog posts have figured out the formula by now: I review one CS paper every weekday morning and post the write-up on this blog. Each morning paper is announced via … Continue reading Reflections on 100 editions of #themorningpaper
Category: Uncategorized
Online, Aysnchronous Schema Change in F1
Online, Asynchronous Schema Change in F1 Rae et al. 2013 Continuous deployment and evolution of running services with zero downtime is the holy grail. With stateless services this is comparatively easy to achieve. But once we have stateless services, and especially large volumes of data in a store, things get more difficult. We would ideally … Continue reading Online, Aysnchronous Schema Change in F1
F1: A Distributed SQL Database That Scales
F1: A Distributed SQL Database That Scales - Google 2012 (** updated paper link above, thanks to Brenden Kromhout for pointing out the dead link **) In recent years, conventional wisdom in the engineering community has been that if you need a highly scalable, high- throughput data store, the only viable option is to use … Continue reading F1: A Distributed SQL Database That Scales
Blazes: Coordination analysis for distributed programs
Blazes: Coordination analysis for distributed programs - Alvaro et al. 2014 For many practitioners distributed consistency is the most critical issue for system performance and manageability at scale. In Blazes, Alvaro et al. take a fresh look at 'an urgent issue for distributed systems developers,' namely the correctness and efficiency of distributed consistency mechanisms for … Continue reading Blazes: Coordination analysis for distributed programs
Derflow: Distributed Deterministic Dataflow programming for Erlang
Derflow: Distributed Deterministic Dataflow programming for Erlang - Bravo et al. 2014 Today's choice is part of the work of the SyncFree European research project on large-scale computation without synchronisation. Non-determinism makes it very difficult to reason about distributed applications. So Bravo et al. figured life might be easier if we could just make them … Continue reading Derflow: Distributed Deterministic Dataflow programming for Erlang
The Network is Reliable
The Network is Reliable - Bailis and Kingsbury 2014 This must be the easiest paper summary to write of the series so far. The network is reliable? Oh no it isn't... OK, here's a little more detail :) Network reliability matters because it prevents us from having reliable communication, and that in turn makes building … Continue reading The Network is Reliable
A Hitchhiker’s Guide to Fast and Efficient Data Reconstruction in Erasure-coded Data Centers
A Hitchhiker's guide to fast and efficient data reconstruction in erasure-coded data centers - Rashmi et al. So far this week we've looked at a programming languages paper and a systems paper, so for today I thought it would be fun to look at an algorithm-based paper. HDFS enables horizontally scalable low-cost storage for the … Continue reading A Hitchhiker’s Guide to Fast and Efficient Data Reconstruction in Erasure-coded Data Centers
f4: Facebook’s warm BLOB storage system
f4: Facebook's warm BLOB storage system - Muralidhar et al. 2014 This is a story of system engineering trade-offs, a design informed by data analysis, and hard-won experience. It's the story of how Facebook implemented a tiered storage solution for BLOBs and introduced per data class (temperature) replication factor, latency, and time-to-recovery tuning. If you're … Continue reading f4: Facebook’s warm BLOB storage system
Predicate Logic as Programming Language
Predicate Logic as Programming Language - Kowalski 1974 The purpose of programming languages is to enable the communication from man to machine of problems and their general means of solution. Kowalski shows us that predicate logic can be used as the basis of a "useful and practical, high-level, non-deterministic programming language with sound theoretical foundations." … Continue reading Predicate Logic as Programming Language
Scala Actors: Unifying thread-based and event-based programming
Scala Actors: Unifying thread-based and event-based programming - Haller & Odersky 2008 Yesterday we saw a Haskell-based approach to unifying events and threads, today's paper shows how to apply some of those same ideas on top of the JVM using Scala. There is an impedance mismatch between message-passing concurrency and virtual machines, such as the … Continue reading Scala Actors: Unifying thread-based and event-based programming