Issue #93
Curated list of blogs, videos, papers, podcasts on programming and distributed systems.
“You know what's weird? Day by day, nothing seems to change, but pretty soon...everything's different.”
― Bill Watterson
Posts
Open Access to ACM Digital Library During Coronavirus Pandemic
We believe that ACM can help support research, discovery and learning during this time of crisis by opening the ACM Digital Library to all. For the next three months, there will be no fees assessed for accessing or downloading work published by ACM. - #acm
SSH is a powerful tool which often grants a lot of access to anyone using it to log into a server. In this post, I’m going to talk about a few different ways that you can easily improve the security of your SSH model without needing to deploy a new application or make any huge changes to user experience. - #gravitational
Consistent Hashing — An Efficient & Scalable Data Distribution Algorithm
We will start with a very simplistic approach to solving data partitioning problem and see how Consistent Hashing overcomes all the bottlenecks. The algorithm is employed by many open source applications like Cassandra, Riak, Dynamo DB, etc - #medium
Year of Clojure on the Desktop
I think JVM has a sweet spot for desktop apps that lies between interactive forms / typesetting that web is good at and extremely resource-intensive apps like games / 3D modeling software that need to be written in something lower-level. In the middle of that sweet spot, there is Clojure and cljfx that allow developing UI interactively with instant feedback — in the live app, not some static UI builder. It’s not all rainbows. - #vlaaad #github
Rewriting the heart of our sync engine
In particular, we’re going to share reflections on how to think about a major software rewrite and highlight the key initiatives that made this project a success, like having a very clean data model. - #dropbox #infrastructure
Control and responsibility is a key point for a wide range of embedded systems. On the one hand, sensors and detectors must notify some other devices that some event occurred, on the other hand, other systems should react as soon as possible. - #medium #deryugin.denis
Coyote: Making it easier for developers to build reliable asynchronous software
The tool runs very quickly and reaches unheard-of levels of coverage of all non-deterministic choices in code, enabling it to find most of the tricky bugs in a way that’s also trivial to reproduce and debug. - #microsoft #research
PigPaxos: Devouring the communication bottlenecks in distributed consensus
The central idea in PigPaxos is to decouple the communication from the decision-making at the leader. PigPaxos revises the communication flow to replace the direct communication between the leader and followers in Paxos with a relay based communication flow. - #muratbuffalo
Papers
Design patterns for container-based distributed systems
This paper describes three types of design patterns that we have observed emerging in container-based distributed systems: single-container patterns for container management, single-node patterns of closely cooperating containers, and multi-node patterns for distributed algorithms. Like object-oriented patterns before them, these patterns for distributed computation encode best practices, simplify development, and make the systems where they are used more reliable. - #usenix
Characterizing, Modeling, and Benchmarking RocksDB Key-Value Workloads at Facebook
To address this issue, we propose a key-range based modeling and develop a benchmark that can better emulate the workloads of real-world key-value stores. This benchmark can synthetically generate more precise key-value queries that represent the reads and writes of key-value stores to the underlying storage system. - #usenix
Books
Concurrency: the Works of Leslie Lamport
This book touches on a lifetime of contributions by Leslie Lamport to the field of concurrency and on the extensive influence he had on people working in the field - #acm #dl
Videos
Advanced Distributed Systems Design (Online Course)
This online course on modern architecture design practices for distributed systems with Service-Oriented Architecture will change the way you think about designing software systems.
(Free for 60 days) - #particular #learn
Scaling yourself - Scott Hanselman
Distributed systems lectures by Lindsey Kuper
As long as I have to teach remotely, I’d like to make the course more widely available, and as long as we’re all stuck inside for some indefinite period of time, I might as well try to make it fun.
#twitch #lindseykuper