Posts

Building Distributed Systems With Stateright

Image
Stateright is a model checker for distributed systems. It is provided as a Rust library, and it allows you to verify systems implemented in Rust. It is openly available on GitHub and the developer, Jon Nadal, is looking for contributors and new users.   On Tuesday Jon gave a presentation to us on Zoom. He made his presentation slides available here. We have also recorded Jon's presentation and the Q&A and demo sessions in entirety.    The highlights of Stateright are: great visualization support, time travel debugger: which helps you go back/forth and choose to explore another branch from a given point of the current execution (in the Figure below, the Next Steps heading provide possible next steps to choose from), an actor-based model, an embedded linearizability tester, and extensive docs and Rust book for introducing the concepts. The model trait has state, init_states, actions, next_state, and properties. Similarly there is an actor trait you can implement, and model che

Book review. Storyworthy: Engage, Teach, Persuade, and Change Your Life through the Power of Storytelling

The most powerful person in the world is the storyteller. The storyteller sets the vision, values and agenda of an entire generation that is to come. -- Steve Jobs This book is by  Matthew Dicks , 48-time Moth StorySLAM winner and 6-time GrandSLAM champion. The book gives great tips about crafting stories. Earlier I had covered " Made to stick " and " Talk like TED "  on presenting and story telling. This book is at a different level than those. I strongly recommend you to read this book. It is entertaining as much as it is informative. This is like a short-story format version of the Hollywood movie-script format storytelling, which I covered briefly with " Nobody wants to read your shit ". Both books have the same message really: "You must streamline your message (staying on theme), and make its expression fun (organizing around an interesting concept)." My highlights from the book No one ever made a decision because of a number. They need a st

Sundial: Fault-tolerant Clock Synchronization for Datacenters

Image
This paper appeared recently in OSDI 2020 . This paper is about clock synchronization in the data center. I presented this paper for our distributed systems zoom meeting group . I took a wider view of the problem by explaining time synchronization challenges and fundamental techniques to achieve precise time synchronization. I will take the same path in this post as well. It is a bit circuitous road, but it gives a scenic pleasurable journey. So let's get going. The benefits of better time synchronization For any distributed system, timestamping and ordering of events is a very important thing. Processes in a distributed system run concurrently without knowing what the other processes are doing at the moment.  Processes learn about each other's states only by sending and receiving messages and this information by definition come from the past state of the nodes. The process needs to compose the coherent view of the system from these messages and all the while the system is movi

Your attitude determines your success

This may sound like a cliche your dad used to tell, but after many years of going through new areas, ventures, and careers, I find this to be the most underrated career advice. This is the number one advice I would like my kids to internalize as they grow up. This is the most important idea I would like every one undertaking a new venture to know.  If you think you are not good enough, it becomes a self-fulfilling prophecy. If you think you are not enjoying something, you start to hate it.  I gave examples of this several times before. Let's suffice with this one : In graduate school, I had read "Hackers: Heroes of the Computer Revolution" from Steven Levy and enjoyed it a lot. (I still keep the dog eared paper copy with affection.) So, I should have read Steven Levy's Crypto book a long time ago. But for some reason, I didn't...even though I was aware of the book. I guess that was due to a stupid quirk of mine; I had some aversion to the security/cryptography res

Defending Computer Science & Engineering in a life raft debate

Image
What is a life raft debate ? In the Life Raft Debate, we imagine that there has been a nuclear war, and the survivors (the audience) are setting sail to rebuild society from the ground up. There is a group of academic-types vying to win the coveted Oar and get on the raft, and only one seat is left. Each professor has to argue that his or her discipline is the one indispensable area of study that the new civilization will need to flourish. At the end of the debating, the audience votes and the lucky winner claims the Oar and climbs aboard, waving goodbye to the others.   Maybe a discipline worth its own salt would  be able to built their own boat, no? Or a good discipline would have documented their findings so well and made itself a science rather than an art, so a practitioner is not needed to transfer information. Which discipline do I think should be the discipline to go? Let me tell you, I would oppose having a computer science and engineering person on the boat before we make sur

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

Popular posts from this blog

Foundational distributed systems papers

Your attitude determines your success

My Distributed Systems Seminar's reading list for Fall 2020

I have seen things

Learning about distributed systems: where to start?

PigPaxos: Devouring the communication bottlenecks in distributed consensus

Read papers, Not too much, Mostly foundational ones

Sundial: Fault-tolerant Clock Synchronization for Datacenters

Facebook's software architecture

Paxos unpacked