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
Month: December 2014
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
A language-based approach to unifying events and threads
A Language-based Approach to Unifying Events and Threads - Li and Zdancewic, 2006 So far in this mini-series we've seen that thread and event-based models are duals, that threads are a bad idea - you should really be using events, and that events are a bad idea - you should really be using threads. What … Continue reading A language-based approach to unifying events and threads
Why events are a bad idea
Why events are a bad idea (for high concurrency servers) - von Behren et al. 2003 Amongst the authors of this paper you'll also find Eric Brewer, of CAP-theorem fame. This is part 3 of a mini-series on thread-based vs event-based programming models. In part 1 we saw the argument that they are equivalent. Despite … Continue reading Why events are a bad idea
Why threads are a bad idea
Why threads are a bad idea (for most purposes) - Ousterhout 1995 Today is part 2 of 5 in a week dedicated to threads and events. Yesterday we saw the argument from Lauer and Needham that thread-based and event-based models are equivalent (duals). Despite that, Oustehout would have you believe that threads are a bad … Continue reading Why threads are a bad idea
On the duality of operating system structures
On the Duality of Operating System Structures - Lauer and Needham, 1978 The pendulum currently says "threads and locks are bad, events are good." Vigourous defences are mounted in favour of one system over the other, and manifestos are written. Nowadays this debate rages over the best way to build applications and frameworks, but it … Continue reading On the duality of operating system structures