Posts

Foundational distributed systems papers

I talked about the importance of reading foundational papers last week. To followup, here is my compilation of foundational papers in the distributed systems area. (I focused on the core distributed systems area, and did not cover networking, security, distributed ledgers, verification work etc. I even left out distributed transactions, I hope to cover them at a later date.)  I classified the papers by subject, and listed them in chronological order. I also listed expository papers and blog posts at the end of each section. Time and State in Distributed Systems Time, Clocks, and the Ordering of Events in a Distributed System. Leslie Lamport, Commn. of the ACM,  1978. Distributed Snapshots: Determining Global States of a Distributed System. K. Mani Chandy Leslie Lamport, ACM Transactions on Computer Systems, 1985. Virtual Time and Global States of Distributed Systems.  Mattern, F. 1988. Expository papers and blog posts There is No Now . Justin Sheehy, ACM Queue 2015 Why Logical Clock

Read papers, Not too much, Mostly foundational ones

Here is my advice to people who want to develop competence and expertise in their fields. Read papers By papers, I mean technical research papers, not white papers or blog posts.  By read, I mean read rigorously and critically .  Not too much If you read rigorously and critically, you cannot read too many papers.  Moreover, learning by doing is the only way to internalize and grok a concept. If you read papers all day, you don't have time to try things yourself.  If you are a PhD student, maybe read two or three papers a week (but, remember, rigorously and actively). If you are not in academia, maybe read one paper a week or two.    Mostly foundational ones While there are exceptions, it is better to prioritize: seminal work over incremental work, general principled work over point-solutions, work introducing techniques/tools over work applying techniques A big exception is good expository papers. Unfortunately, the academia treats them as something the cat dragged in, because they

How to make Zoom teaching suck less

Here are some tips I learned doing remote teaching last semester. I am putting them out here hoping that they help some teachers and students. Many of these tips will also be useful for remote workers in meetings and presentations. Start the class with initial chitchat The students are stressed, and initial chitchat is the least bit we can do to help. By opening the Zoom meetings 10 minutes early, and making comments about the weather, or some recent news or trivia, I found that students were ready to chime in and socialize before class.  Making your pet a part of this will melt the students' hearts. For the occasions when I could convince Pasha to cooperate for a couple minutes, that was an absolute crowd pleaser. It made everyone start talking about their pets as well. I think it would be useful to use props, like different costumes/hats or decors related to the day's lecture,  but I didn't have any good ideas of how to do this. Use informal yes/no polls frequently To kee

How I lost 20 pounds

Image
At the beginning of January I was around 220 pounds (99.7 kg). After a month of dieting and exercise, I am now at 200 pounds (90.7 kg) How did I do it? I followed intermittent fasting! I skipped breakfast and had a brunch around noon. Then I had dinner around 5:30pm. I didn't eat anything from dinner time until noon. I cutout all baking from my diet. I limited myself to cheese/yogurt, eggs, vegetables, fruits, and meat. If I didn't feel full at brunch or dinner, I just ate extra yogurt or salad to feel full. I also slowed down considerably when eating and chewed my food thoroughly. Since there is less to eat, this helped me make it last longer and enjoy it more. I have been dieting to get rid of Covid pounds. pic.twitter.com/YtLFdSCRHF — Murat Demirbas (@muratdemirbas) January 24, 2021 I drank coffee (no sugar, sometimes with coconut oil or with steamed milk) to curb my appetite in the morning and in the afternoon.  I combined dieting with a small amount of exercise. I did the

A chair named Cherry

Image
Cherry is a body-bilt chair. I met her in a conference room in Microsoft Redmond Building 43, during my sabbatical at Cosmos DB . It was love at first sit. You see my office chair was crappy and uncomfortable. But sitting on Cherry was like sitting on clouds. It had great padding and perfect support. It is as if it has been molded for my body. On an impulse, I liberated Cherry and moved her to my office in Building 44. I had a blissful time working with Cherry on my desk. A couple days later, during my stroll through the buildings, I realized I was the target of a manhunt. They had posters of Cherry on every window.  It was too dangerous for me to be out there. Look I didn't know. I didn't think removing the chair would create this much trouble. Who was this person anyway? What kind of person would give a chair a name? Well, I knew I didn’t want to mess with that kind of a person. I still miss Cherry. My current chair is an Aeron Miller, but nowhere as comforting and supportive

Virtual Consensus in Delos

Image
This paper has been awarded a best paper award at OSDI20 , and is authored by Mahesh Balakrishnan, Jason Flinn, Chen Shen, Mihir Dharamshi, Ahmed Jafri, Xiao Shi, Santosh Ghosh, Hazem Hassan, Aaryaman Sagar, Rhed Shi, Jingming Liu, Filip Gruszczynski, Xianan Zhang, Huy Hoang, Ahmed Yossef, Francois Richard, and Yee Jiun Song at Facebook, Inc. Delos is the database that stores control plane state for Facebook, building over a shared log system. Each Delos server stores a local copy of a full database, which keeps materialized state of the log, as a Delos table. This DB/ is maintained over the shared log as RSM by just reading commands from the log in sequence and applying them for materializing on the table. Virtual consensus This high level setup is familiar, so let's dive deeper to get to the novelty in this work. Delos uses virtual consensus, which is a fancy way of saying the following. The DB is maintained over a virtual log, which consists of loglets, each of which is implemen

Trial and error

Image
Like many of you I watched The Queen's Gambit and loved it. The settings of scenery and decors in 1960s were mesmerizing.   And like many of you, this rekindled the interest for chess in me. Growing up, I didn't play chess much, but my younger brother got into it as a middle school student. He bought books detailing chess games and studied them. He got a city-wide championship and such. I didn't get much into it, because I guess I didn't think of it as a serious enterprise and didn't want to expend too much energy into it.  I had this Android chess app on my phone, and I started playing with that instead of my downtime Sudoku playing . In this chess app, it is very easy to undo moves, and try other moves. I play against the machine, and yes undoing is cheating, but I use it a lot to explore different scenarios at critical points in the game. I have been very surprised about how much this accelerated my chess learning. I was able to make progress through several har

Facebook: The Inside Story (2020) by Steven Levy

I didn't know much about Facebook's story, so many things in the book was news to me.  Here are my two main take-aways from the book.  There are many inaccuracies in "The Social Network" movie . The founding story is quite different. There had been many challengers claiming they had the "facebook" idea. But social networking was not a new idea. There was even a digital facebook in Exeter at Zuckerberg's boarding high school. Of course there is a luck factor involved, but Zuckerberg should get credit (and blame) for successfully executing this vision at large scale. In this case, the quote is apt: Ideas are worthless, execution is everything. "Never attribute to malice that which is adequately explained by stupidity/incompetence." Facebook has been very reckless and greedy. They botched up things badly, many times, over and over. But they are not inherently evil. The greedy obsession with growth did Facebook in. Zuckerberg has to have everything

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

Popular posts from this blog

Foundational distributed systems papers

I have seen things

My Distributed Systems Seminar's reading list for Fall 2020

PigPaxos: Devouring the communication bottlenecks in distributed consensus

Learning about distributed systems: where to start?

Fine-Grained Replicated State Machines for a Cluster Storage System

Read papers, Not too much, Mostly foundational ones

Facebook's software architecture

Paxos unpacked

Research, writing, and career advice