Clear communication

My cat is a great communicator. Today, just before noon, he meowed in front of my room. When I opened the door, he walked down the stairs till halfway, stopped, looked back at me, made eye contact, and meowed again. When I started following him, he passed the living room, stopped, looked back at me, meowed again, and waited for me to catch up. He then led me to the kitchen next to his feeder, and made me feed him. Many technical people forget this first rule of communication. Make sure your correspondent is following you. Make sure you connect with them strongly. My cat, Pasha, first made sure he connected with me and then communicated with me in a deep/visceral manner. He did this even without needing to use words.   How do you achieve this?  The first step is to take this as the objective. By dumping out one paragraph of content per minute to the other side, you don't achieve communication. You should stop, check the other side, confirm they are with you, before you carry on to

Reasons I hate conferences, and suggestions for fixing them

(This is about academic conferences, but I guess most of these also apply to industrial conferences.) It is too much cramming Attending a conference is like drinking from a firehose. After the first day, conferences become a drag. I can ponder about only so many papers/ideas, but in a conference they keep coming one after the other incessantly, not giving my soul a chance to catch up. I think what makes it worse is that there is too much context switching going on from one paper to another, and from one session to another. Focused workshops where the presentations/discussions revolve around the same topic work much better, as there is less context switching. I miss some of the self-stabilizing-systems workshops I had been to around 1999-2000. And also can we please have 2 hour long lunch breaks? At a self-stabilization workshop in Luminy, France, we had 3 hour long lunch breaks, and it made the workshop more productive. Networking is hard Conferences are hell for introverted people. T

Best of metadata in 2021

As it became our tradition, here are some highlights from my 2021 posts. Systems Foundational distributed systems papers There is plenty of room at the bottom Graviton2 and Graviton3 Fail-silent Corruption Execution Errors (CEEs) at CPU/cores SOSP21 conference (Day1) Using Lightweight Formal Methods to Validate a Key-Value Storage Node in Amazon S3 Building Distributed Systems With Stateright Sundial: Fault-tolerant Clock Synchronization for Datacenters Do tightly synchronized clocks help consensus? Databases Linearizability What's Really New with NewSQL? A read-only transaction anomaly under snapshot isolation FoundationDB Record Layer: A Multi-Tenant Structured Datastore Misc Learning a technical subject Your attitude determines your success Humans of Computer Systems: Obdurodon Facebook: The Inside Story (2020) by Steven Levy Previous years in review Year in review 2020 Year in review 2019 Year in review 2018 Research, writing, and career advice

Learning a technical subject

I love learning. I wanted to write about how I learn, so I can analyze if there is a method to this madness. I will first talk about what my learning process looks like in abstract terms, and then I'll give an analogy to make things more concrete and visual.   Learning is a messy process for me I know some very clear thinkers. They are very organized and methodical. I am not like that. These tidy thinkers seem to learn a new subject quickly (and effortlessly) by studying the rules of the subject and then deriving everything about that subject from that set of rules. They speak in precise statements and have clear and hard-set opinions about the subject. They seem to thrive most in theoretical subjects. In my observation those tidy learners are in the minority. Maybe the tidy thinkers are able to pull this feat off because they come from a neighboring domain/subject and map the context there to this subject quickly. But, again from my experience, it doesn't feel like that. It s

A read-only transaction anomaly under snapshot isolation

This paper, from Sigmod 2004, is short and sweet. Under snapshot isolation level, it shows a surprising example of a transaction history where the read-only transaction triggers a serialization anomaly, even when the update transactions are serializable. This is surprising because it was assumed that, under snapshot isolation, read-only transactions always execute serializably without ever needing to wait or abort because of concurrent update transactions. Background Snapshot isolation is an attractive consistency model for transactions.  Wikipedia has a very nice summary: In databases, and transaction processing (transaction management), snapshot isolation is a guarantee that all reads made in a transaction will see a consistent snapshot of the database (in practice it reads the last committed values that existed at the time it started), and the transaction itself will successfully commit only if no updates it has made conflict with any concurrent updates made since that snapshot. Sn

Humans of Computer Systems: Ted

Programming How did you learn to program? Through a project in high school.     Tell us about the most interesting/significant piece of code you wrote.   Electronic mail system. Who did you learn most from about computer systems?   Edsger Dijkstra     What is the best code you have seen?   IBM 360 operating system       What do you believe are the most important skills to be successful in your field?     There are many paths to success, and a variety of skills to get there - no MOST IMPORTANT       What quality or ability do you value most in a computer systems person? The ability to explain. Personal Which of your work/code/accomplishments are you most proud of? Read, eg, Erich Fromm - pride is not a quality that should be considered What comes to you easy that others find hard? What are your superpowers? Recursion is natural to me. What was a blessing in disguise for you? What seemed like a failure at the time but led to something better later

Graviton2 and Graviton3

What do modern cloud workloads look like? And what does that have to do with new chip designs? I found these gems in Peter DeSantis's ReInvent20 and ReInvent21 talks. These talks are very informative and educational. Me likey! The speakers at ReInvent are not just introducing new products/services, but they are also explaining the thought processes behind them. To come up with this summary, I edited the YouTube video transcripts slightly (mostly shortening it). The presentation narratives have been really well planned, so this makes a good read I think. Graviton2 This part is from the ReInvent2020 talk from Peter DeSantis.   Graviton2 is the best performing general purpose processor in our cloud by a wide margin. It also offers significantly lower cost. And it's also the most power efficient processor we've ever deployed. Our plan was to build a processor that was optimized for AWS and modern cloud workloads. But, what do modern cloud workloads look like? Let's start by


World chess championship is on. Magnus is the clear favorite, but Nepomniachtchi is coming strong. It is a lot of fun. I haven't been posting for sometime. And this seems like a good time to talk about chess. My journey picking up on chess, again As a kid I wasn't much interested in chess. My younger brother was into chess, he would buy books to review grandmasters' games. I didn't go further than playing casual games with him. Maybe it was the quarantine that triggered this, but in the last year I started playing some chess on the smartphone. I had an Android phone for the last 3 years, and I used a random chess app downloaded at Play Store. I thought the app was very neat because it let me play against the computer at different levels and it allowed me to go back and try different things. Like Git, you know. The app also suggested me hints. I thought this was a dope way to improve one's chess skills. Little did I know, I was just scratching the surface. Three yea

What’s Really New with NewSQL?

This paper is by Andy Pavlo and Matthew Aslett, and it appeared in Sigmod 2016.   NoSQL managed to scale horizontally, but this came at the expense of losing transaction and rich querying capability. NewSQL followed NoSQL to amend things and restore balance to the force. NewSQL is a class of modern relational DBMSs that seek to provide on-par scalability to NoSQL for OLTP read-write workloads while still maintaining ACID guarantees for transactions. Let's dissect this definition. The biggest benefit of NewSQL is that developers do not have to write code to deal with eventually consistent updates as they would in a NoSQL system, because they will be able to use ACID transactions and SQL-like rich querying capabilities. NewSQL is about OLTP (online transaction processing), not OLAP (online data analysis like in data warehouse systems). Well, with the caveat that it can also be about HTAP (hybrid transactional-analytical processing), as the paper mentions under the future trends secti

Rabia: Simplifying State-Machine Replication Through Randomization (SOSP'21)

This paper appeared in SOSP'21 . I took notes and screen-snapshots during the presentation of this paper, and decided to put together a summary of what I understood from it. The paper has a simple idea and a somewhat unexpected result. It will be interesting to dive deep and explore to the extent this idea can be applied in practice.  Here is the idea. State-machine replication through Paxos , more accurately MultiPaxos, is commonly used in practice. (Yes, that includes state-machine replication through Raft, if I have to spell this out to the Rafters among us.) The MultiPaxos leader drives the protocol. It is basically one round, phase-2 execution of "accept this!" "yes, boss" between the leader and followers, where phase3 commit can be piggybacked to phase-2 message. This is as simple and efficient as it gets. You can't beat it! Or can you? The paper argues that, although the happy path of MultiPaxos based state-machine replication is simple and efficient

Popular posts from this blog

Foundational distributed systems papers

Graviton2 and Graviton3

Your attitude determines your success

Progress beats perfect

Cores that don't count

Learning about distributed systems: where to start?

Silent data corruptions at scale

Read papers, Not too much, Mostly foundational ones

Sundial: Fault-tolerant Clock Synchronization for Datacenters

What’s Really New with NewSQL?