Nylas Paper Reading Group

Large-scale cluster management at Google with Borg

Google’s Borg system is a cluster manager that runs hundreds of thousands of jobs, from many thousands of different applications, across a number of clusters each with up to tens of thousands of machines. This paper presents an architectural overview.
Read more »

An Administrator’s Guide to Internet Password Research

The research literature on passwords is rich but little of it directly aids those charged with securing web-facing services or setting policies. With a view to improving this situation we examine questions of implementation choices, policy and administration using a combination of literature survey and first-principles reasoning to identify what works, what does not work, and what remains unknown.
Read more »

A fast quantum mechanical algorithm for database search

This paper applies quantum computing to a mundane problem in information processing and presents an algorithm that is significantly faster than any classical algorithm can be. The problem is this: there is an unsorted database containing N items out of which just one item satisfies a given condition - that one item has to be retrieved. The most efficient classical algorithm for this will look at an average of N/2 items before finding the desired item. The number of steps required by the algorithm of this paper is O(N^1/2).
Read more »

Raft: In Search of an Understandable Consensus Algorithm

Raft is a consensus algorithm that is designed to be easy to understand. It's equivalent to Paxos in fault-tolerance and performance. The difference is that it's decomposed into relatively independent subproblems, and it cleanly addresses all major pieces needed for practical systems.
Read more »

Spanner: Google's Globally Distributed Database

Spanner is Google’s scalable, multi-version, globallydistributed, and synchronously-replicated database. It is the first system to distribute data at global scale and support externally-consistent distributed transactions. This paper describes how Spanner is structured, its feature set, the rationale underlying various design decisions, and a novel time API that exposes clock uncertainty.
Read more »

Virtual Time and Global States of Distributed Systems

A distributed system can be characterized by the fact that the global state is distributed and that a common time base does not exist. However, the notion of time is an important concept in every day life of our decentralized "real world" and helps to solve problems like getting a consistent population census or determining the potential causality between events. We argue that a linearly ordered structure of time is not (always) adequate for distributed systems and propose a generalized non-standard model of time which consists of vectors of clocks.
Read more »

Time, Clocks, and the Ordering of Events in a Distributed System

The concept of one event happening before another in a distributed system is examined, and is shown to define a partial ordering of the events. A distributed algorithm is given for synchronizing a system of logical clocks which can be used to totally order the events. The use of the total ordering is illustrated with a method for solving synchronization problems. The algorithm is then specialized for synchronizing physical clocks, and a bound is derived on how far out of synchrony the clocks can become.
Read more »

The Knowledge Complexity of Interactive Proof Systems

This paper introduces a new theorem-proving procedure, that is a new efficient method of communicating a proof.
Read more »

CRDTs: Consistency without Concurrency Control

A CRDT is a data type whose operations commute when they are concurrent. Replicas of a CRDT eventually converge without any complex concurrency control. As an existence proof, the paper presents a non-trivial CRDT: a shared edit buffer called Treedoc.
Read more »

Bitcoin: A Peer-To-Peer Electronic Cash System

The original Bitcoin paper -- this paper proposes a solution to the double-spending problem in digital currency using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work.
Read more »

Dynamo: Amazon's Highly Available Key-value Store

This paper presents the design and implementation of Dynamo, a highly available key-value storage system that some of Amazon’s core services use to provide an “always-on” experience. To achieve this level of availability, Dynamo sacrifices consistency under certain failure scenarios. It makes extensive use of object versioning and application-assisted conflict resolution in a manner that provides a novel interface for developers to use.
Read more »

ZooKeeper: Wait-free coordination for Internet-scale systems

ZooKeeper is a service for coordinating processes of distributed applications. It incorporates elements from group messaging, shared registers, and distributed lock services in a replicated, centralized service.
Read more »

Kafka: A Distributed Messaging System for Log Processing

Kafka is a distributed messaging system for collecting and delivering high volumes of log data with low latency.
Read more »

Storm @ Twitter

Storm is a realtime fault-tolerant and distributed stream data processing system used at Twitter. This paper describes the architecture of Storm and its methods for distributed scale-out and fault-tolerance. This paper also describes how queries (aka. topologies) are executed in Storm, and presents some operational stories based on running Storm at Twitter.
Read more »