Programming and proving with distributed protocols

Programming and proving with distributed protocols Sergey et al., POPL 18 Last week we looked at the verification of Rust’s type-based safety guarantees, and a verification toolchain for proving properties of JavaScript programs. Today it’s the turn of Disel, a framework for developing and verifying message-passing based distributed systems (it would seem to fit beautifully ... Continue Reading

KV-Direct: High-performance in-memory key-value store with programmable NIC

KV-Direct: High-performance in-memory key-value store with programmable NIC Li et al., SOSP’17 We’ve seen some pretty impressive in-memory datastores in past editions of The Morning Paper, including FaRM, RAMCloud, and DrTM. But nothing that compares with KV-Direct: With 10 programmable NIC cards in a commodity server, we achieve 1.22 billion KV operations per second, which ... Continue Reading

Canopy: an end-to-end performance tracing and analysis system

Canopy: an end-to-end performance tracing and analysis system Kaldor et al., SOSP’17 In 2014, Facebook published their work on ‘The Mystery Machine,’ describing an approach to end-to-end performance tracing and analysis when you can’t assume a perfectly instrumented homogeneous environment. Three years on, and a new system, Canopy, has risen to take its place. Whereas ... Continue Reading

Growing a protocol

Growing a protocol Ramasubramanian et al., HotCloud'17 I've been really enjoying working my way through a selection of the HotCloud papers - they're relatively short, thought-provoking, and designed to promote discussion (each paper has a set of discussion questions at the very end - great if you're looking at them in a group of some ... Continue Reading