Showing posts from January, 2020

Future of work

A week or so ago, I told you I wanted to brainstorm about the future of work . Well, here it is for what it is worth. Work wants to be free/liberated  As liberties progress and more welfare is created, our expectations move higher up in Moslow's hierarchy . We are not satisfied with achieving bare survival by means of our work, and we want to thrive, flourish, and express ourselves via our work. We long to have more autonomy and freedom of choice and expression in our work. We like to pursue our own enterprises as part of our work. We already see things moving away from the traditional industrial model with company loyalty, closer to this type of model. In software field, which is well off compared to others, people switch jobs frequently, and try to build their own brands/niches, and demand fulfillment from their work. As these trends shape the future of work, we will see a growing gig economy that is served/supported by algorithmic platforms. Some primitive examples of th

CSE 610 Distributed Consensus, Decentralized Ledgers, and Blockchains

This semester I am teaching a small research course on Distributed Consensus, Decentralized Ledgers, and Blockchains. Blockchains! You? One should be able to call bullshit when one sees bullshit. In this blog, I did that several times for certain claims about blockchains technology.  But, just because of some stupid/hyped-up claims and some first-generation inefficient implementations, it is unacceptable to make fun of and ridicule the entire blockchains field. (Yes, it is definitely a field, when a Turing Award winner and a strong candidate for Turing Award publishes papers on the topic. ) A researcher should not use a broad brush to paint. Truth is multidimensional. Even when parts of a field is impractical right now, that doesn't justify putting the entire field down. P2P was impractical. It lost to the centralized model. But the best ideas from those work found their way to traditional datacenter computing. The distributed hash table idea got adopted for distributed

Future of Work (MSFT Faculty Summit 2019)

Future of work is a very interesting topic. This is something I would like to think about and brainstorm. But since the topic is very broad, the attempts to talk about future of work can get hazy and vague.  NSF has released this call for proposals on Future of Work.  It invites researchers to start addressing the needs/problems/challenges future work with a "convergent perspective". I am accustomed to seeing vague and extravagant language in NSF calls, but I think this one surpassed the usual. The word convergent/convergence appears 22 times in the call. (I think convergent is a new word for interdisciplinary in this context.) I guess a similar thing happened with the Microsoft Faculty Summit 2019. Last July, I was at Microsoft for my sabbatical, and had a chance to attend the Microsoft Faculty Summit, whose subject was "Future of Work" . It was a two day workshop, and I was very motivated to learn as much as I could from the workshop, because the topic is very i

Book review. Every tool is a hammer: Life is what you make it (by Adam Savage)

This book, published in 2019, is from Adam Savage of Mythbuster's fame. The book is a love letter to making. The book defines making not as the physical act of building but as the audacity of creating: "Making is more than the physical act of building. It's dancing, it's sweing. It's cooking. It's writing songs. It's silk-screening. It's breaking new trails both literally and figuratively." To me, this book is another manifestation of  the "War of Art" book by Steven Pressfield  in a different format/domain. This book talks about the resilience, the labor of creativity, and acting in face of a fearful/challenging project, which is also the topic of the War of Art book. The "How to be a Pro" concept discussed in the War of Art book is also explored in depth here. The respect for the craft, the tools, and the requirement to ship something by the deadline defines the professional.  "Professional is patient, prepared, acts

Distributed systems analogies

I start my distributed systems class each semester with a video of a murmuration of starlings. I tell the students that this still qualifies for a distributed system, because the definition fits: A collection of autonomous nodes communicating to address a problem collectively, with no shared memory and no common physical clock. Just from simple local actions of each starling (i.e., that of readjusting position with respect to neighbors) a global behavior of the murmuration emerges in poetic beauty. I like this analogy pedagogically because it is very visual. What I don't like about the analogy is that the specification of the global behavior is lax. The starlings don't crash into each other, fine, but there is no other constraint about the global behavior of the murmuration. No constraints there. The murmuration can go to any direction, split, rejoin, etc. What could be a better analogy for a distributed system? To answer this question, let's start by considering a

Practical Byzantine Fault Tolerance

This paper is authored by Miguel Castro and Barbara Liskov, and it appeared in OSDI 1999. The conference version has around 2500 citations, and the journal version has close to 1500 citations. This paper is the grandfather for most Byzantine Fault Tolerant (BFT) protocols, including work that appeared through 2000s-2010s at OSDI/SOSP, and more recent blockchain BFT work such as LibraBFT.  The serpentine history of Byzantine fault-tolerance The paper starts with this declaration: "We believe that Byzantine fault-tolerant algorithms will be increasingly important in the future because malicious attacks and software errors are increasingly common and can cause faulty nodes to exhibit arbitrary behavior." How prescient of them. When Byzantine fault tolerance (BFT) was first introduced by Lamport in 1982 , it was mostly of theoretical interest, and it remained so for a long time. Although the prediction in this 1999 paper eventually came true, I don't think it happened

Death's End (by Liu Cixin) and the Swordholder problem

This is the last book in Liu Cixin's Remembrance of Earth's Past trilogy. I had written reviews for the Three Body Problem and Dark Forest before . So for completeness sake, I write my impressions about this book as well. This time I try not to talk much about the plot, and try to keep this spoiler-free. This book is epic, in terms of the space distance and timeline it covers. It is awe-inspiring in that vastness in space and time sense, and makes you think at the universal scale. This book feels much more hardcore sci-fi than the previous two books, and less believable than them. The book also feels rushed in character/plot development (definitely not length) compared to the previous two books. But all in all, it is a very captivating science fiction and I couldn't stop thinking about it even one week after finishing the book. The book still has a very cynical and very pessimistic view of human nature (as well as alien nature). The universe is a dark forest, where eve

State Machine Replication in Facebook's Libra Blockchain

This paper presents LibraBFT , the state machine replication system designed for Facebook's Libra Blockchain. LibraBFT is based on HotStuff, which I had summarized recently . LibraBFT adds modules, such as a pacemaker, to adopt and operationalize the HotStuff protocol within a real-world blockchain system. The plan with the Libra project is that, initially, the participating validators will be permitted into the consensus network by "Founding Members". Later on, membership eligibility will gradually become open/permissionless while preserving decentralization with careful governance. (To facilitate dynamic membership, Libra BFT can reconfigure itself by embedding configuration-change commands in the sequence.) In my summary below I mostly use prose lifted from the LibraBFT whitepaper . It is a 41 page paper, so I focus only on the important parts to provide the summary. After the summary, I add a brief discussion about how LibraBFT compares with other blockchain conse

How to speak (by Patrick Winston)

On New Year's morning, I watched the above lecture by Patrick Winston, the late MIT professor, on "How To Speak". (Patrick Winston passed away in July 2019. May he rest in peace.)   I had previously covered the Winston star idea by him ; this talk provides a more general and comprehensive treatment on how to speak and present. Patrick's talk contained several new gems for me. And I thought I already know a lot about presenting. Start with an empowerment promise. Nobody cares about your talk, they care about what useful things they can learn from your talk. So make this about the audience, look at this from their perspective, and start by telling them what useful thing they will get out of this talk. Differentiate between presentations that aim to expose (a job talk or a conference talk) versus that aim to inform (a lecture). For an exposition talk, you need to get across your message in the first five minutes. You should explain the problem you solve and

Popular posts from this blog

Learning about distributed systems: where to start?

Hints for Distributed Systems Design

Foundational distributed systems papers

Metastable failures in the wild

The demise of coding is greatly exaggerated

The end of a myth: Distributed transactions can scale

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

SIGMOD panel: Future of Database System Architectures

Why I blog

There is plenty of room at the bottom