Posts

Showing posts from December, 2020

Year in Review: Best of Metadata in 2020

What a decade this year has been! Here are some highlights among my 2020 posts. Distributed systems My Distributed Systems Seminar's reading list for Fall 2020  Learning about distributed systems: where to start?  Millions of tiny databases Compositional Programming and Testing of Dynamic Distributed Systems  Ocean Vista: Gossip-Based Visibility Control for Speedy Geo-Distributed Transactions  Zoom Distributed Systems Reading Group  Distributed coordination PigPaxos: Devouring the communication bottlenecks in distributed consensus  WormSpace: A modular foundation for simple, verifiable distributed systems  Hermes: A fast fault-tolerant and linearizable replication protocol  Scalog: Seamless Reconfiguration and Total Order in a Scalable Shared Log State-Machine Replication for Planet-Scale Systems Streamlet: textbook streamlined blockchains  Modeling Streamlet in TLA+ Book reviews Book review. Tiny Habits Vincent Van Gogh, Lust for Life  How innovation works and why it flourishes in

Hybrid clocks crate in Rust

Image
I have been learning Rust in my spare time. It has a very steep learning curve, but in return you get to use an elegant, fast, and safe programming language you can use anywhere from embedded systems to datacenter computing. Rust stole like an artist the best concepts from several languages and combined them under one roof with style. Rust has seen a lot of traction recently, and I think Rust is here to stay for a long time.  In the last couple months, I have been writing small programs to practice Rust, and recently I decided I should go bigger and consider reading a real code base, but something with manageable size. I chose to focus on the hybrid clocks crate because it was the right size, and it solved an important problem.  The hybrid clocks crate showcases many of the best practices of Rust. It has a thoughtful design. It shows practical use of struct and trait implementations and trait objects . It was initially hard for me to wrap my mind around the design, because the design

Compositional Programming and Testing of Dynamic Distributed Systems

Image
This paper is authored by Ankush Desai, Amar Phanishayee, Shaz Qadeer, and Sanjit A. Seshia, and it appeared at OOPSLA 2018. The paper describes the ModP framework extension over the P language . P is a language developed for safe event-driven programming. P models processes as state machines: the state machines communicate via message passing, and events cause state machines to transition between states.  The killer feature of P is unifying modeling with programming! P enables the programmers to write specifications and enables systematic testing both via random testing and exhaustive symbolic execution testing. P is used in event driven systems such as device drivers and robotics . The P GitHub page  states that P is used in Microsoft (P# and Coyote ) and also used extensively at AWS for model-based testing of complex distributed systems.   Compositional testing of distributed systems A problem with systematic testing is that monolithic testing of large systems fail due to combinato

Popular posts from this blog

Hints for Distributed Systems Design

Learning about distributed systems: where to start?

Making database systems usable

Looming Liability Machines (LLMs)

Foundational distributed systems papers

Advice to the young

Linearizability: A Correctness Condition for Concurrent Objects

Scalable OLTP in the Cloud: What’s the BIG DEAL?

Understanding the Performance Implications of Storage-Disaggregated Databases

Designing Data Intensive Applications (DDIA) Book