Posts

Energy approach to life, the universe, and everything

I recently read Scott Adams new book titled: " How to fail at almost everything and still win big ". I enjoyed reading the book a lot; Scott discusses a lot of intriguing ideas as usual. The main idea in the book was that you need systems instead of goals. Motivation is ephemeral, but systems/processes are persistent. As Jeff Bezos says " Good intentions don't work, good systems work! " Another main idea in the book is the importance of monitoring and managing your energy for being successful. The book advises you to "watch what you eat, exercise, match mental states to activity and attack tasks when you have the appropriate energy level". I think this energy approach to personal productivity and life is promising. So I wanted to collect my thoughts on this and see what I can add on this topic. Things that increase energy and decrease energy It isn't the mountains ahead to climb that wears you down. It is the pebble in your shoe. – Mu...

Consistency-Based Service Level Agreements for Cloud Storage

Image
This paper is from Microsoft Research and appeared in SOSP'13 . This paper is more of a position and vision paper. The paper introduces a consistency-based SLA concept, which can provide a win-win arrangement for cloud providers and developers. Problem  For performing reads from key-value stores, currently you have two options. You can do strongly-consistent reads by increasing the size of your read replica quorum, but this will increase latency of the responses, and you don't get the flexibility to revert to a quick dirty (eventually-consistent) read if a strong-consistent read would take a long time to respond. Or you go with best effort reads (which are eventually-consistent) from the key value store because you insist on low-latency answers. (Actually there is another option: You can use a strongly consistent multiversion data store like BigTable or Spanner, and relax it by reading slightly stale data and get flexibility. I will revisit this option in the discussion....

The scalable commutativity rule: Designing scalable software for multicore processors

Image
This paper was one of the best paper's at SOSP 13 . The paper is open access since SOSP paid for the open access fees for each paper that appeared in the conference. The scalable commutativity rule says that "Whenever interface operations commute, they can be implemented in a way that scales" . In other words, whenever several operations commute at the interface-level (i.e., there's no way to distinguish their execution order using the interface), for those operations we can have implementations whose memory accesses are conflict-free. (Scalable commutativity sounds like a misnomer, shouldn't the theorem be called "commutative scalability" theorem? The end goal is scalability, and commutativity is a tool for it. Thus "commutative" should qualify "scalability", not the other way around.) I found several nice generalizable insights in the paper. The first one is using commutativity as a detectable/measurable and controllable wi...

Black sheep

" Publish or Perish " has become a motto for academics, but it is hard not to get depressed about this rat race in academia. I see researchers who have published an implausible amount of papers in good venues, but they still remain obscure. With all those papers, they haven't even made a splash in their field of study. I then ask myself what chance I stand for making a big enough contribution to be useful. Then, I proceed to have my semi-annual existential crisis, and question the point of publishing and my career in academia. I recover in a couple days generally, because I like working on problems and I am curious about stuff. But, these questions loom: Am I wasting my time? Am I irrelevant with my publications? How should I allocate/manage my time to be useful? Publish less?  It is simplistic to say " It is the quality that counts. If you publish less you will publish better quality work and get recognition ". Experience refutes this. If you strive to publ...

Bionic Cyber Physical Systems

I have been neglecting my blog because of several paper and proposal deadlines. Rather than keeping the blog gather more dust, I decided to share some summaries from recent talks I attended and papers I read. This is a talk I attended couple months ago and enjoyed a lot. It is directly on the distributed systems topic, but in the future we may find ourselves programming these kind of distributed systems, and we will be dealing with a lot of bugs in our code for sure ;-) Alper Bozkurt (NCSU) has been working on bionic cyber physical systems , which aim to fuse synthetic man-made systems with naturally occuring biological organisms, such as cockroaches, moths, dogs, lemurs, and eventually humans. His research is very interesting and has been featured at National Geographics, CNN, and Stephen Hawkins show "Brave New World". Here is the PhDComics coverage of his research   ( and this ). Alper primarily works with insects. He says insects are fabuluous because they are optimiz...

Research is a capricious mistress

Research is a capricious mistress. You should be totally devoted to it, and you should be thinking about it all the time. Otherwise, it won't divulge its secrets to you. Research has this nonlinear return on investment (ROI) function. It awards persistence and dedication by folds and punishes apathy and laziness severely. If you give research your 100%, you will get at least 200% ROI back. Eventually, that is. It will first test you to see if you are worthy, if you really mean it, if you really have it in you. You will get several setbacks, false alarms. Yet, if you persist and overcome the failures, it will start giving back to you by folds. If you give research your 50% you will get 20% back. You won't make the cut, and you will be operating a business with deficiency. Usually someone else (the university that employs you) pays the tab. So what does giving 100% mean? It doesn't mean working overtime (sometimes that will be needed, and you will be doing it though)....

My notes from SOSP13 welcome and awards

The ACM Symposium on Operating Systems Principles (SOSP) is arguably the top conference in the computer systems area. The SOSP conference took a start with a welcome talk from the General Chair, Michael Kaminsky (Intel Labs), and PC Chair, Mike Dahlin (Google and UT Austin). The chairs started by thanking to the many sponsors (platinum, gold, silver, bronze level) for the conference. This year SOSP had 628 registrations, which made it the biggest SOSP as of yet, with a 16% increase over 2011 SOSP (which was yet biggest till then). Attendance distribution to SOSP is 76% from North America, 15% Europe, and 11% Asia. Among those attending 42% is faculty, 42% students, and 15% industry. There were 7 workshops on the weekend preceding the SOSP ( LADIS was one of them), and 40% of attendants also attended workshops. This year, for the first time, SOSP had full open access conference proceedings (the cost, $1100 per paper has been paid by SIGOPS), and this announcement got a huge appl...

LADIS 2013 keynotes

I attended and presented a paper at LADIS 2013 , which was colocated with SOSP13 . I will talk about my paper in a later post. Here I just want to share brief summaries of the LADIS keynotes. 1. LADIS keynote: Cloud-scale Operational Excellence, by Peter Vosshall, distinguished engineer What is operational excellence? It is anticipating and addressing problems. For us, operational excellence arises from a combination of culture + tools + processes. 1.1 Culture Amazon leadership principles are: Customer obsession Ownership (Amazon has a strong ownership culture, known as devops!) Insisting on the highest standards 1.2 Tools Amazon has tools for software deployment, monitoring, visualization, ticketing, risk auditing. In 1995, Amazon had a single web-server operation, and had a website-push perl script. This was managed by a small centralized team, named Houston. The team invested in a tool called Apollo for automating deployments. As a result, it was easy...

Beyond TrueTime: Using AugmentedTime for Improving Google Spanner

Remember this post where I talked about Spanner: Google's Globally Distributed Database ? Since then we wrote a paper on this, which got accepted at LADIS '13: 7th Workshop on Large-Scale Distributed Systems and Middleware , a workshop co-located with SOSP 2013 . The paper is available here .

How I write

Writing is easy. All you do is sit staring at the blank sheet of paper until the drops of blood form on your forehead. -- Red Smith Let's get this cleared first. Writing is hard. Whoever says it is easy is lying. There is a lovely book by Sophy Burnham called "For Writers Only"  which includes countless quotes from writers on the exquisite pain of the writing life. I highly recommend the book. All the quotations in this post are taken from that book. I see but one rule: to be clear. -- Stendhal Of course, I am not going to talk about how to write great works of literature. For that I am unqualified. I will talk about technical/scientific writing, which is a bit easier and manageable. For technical writing you do not necessarily need to be creative, playful, and poetic. You just have to communicate your points clearly. (Unfortunately, this is easier said than done.) We do not write in order to be understood, we write in order to understand. -- C. Day-Lewis Writi...

How I read a research paper

I can't tell you how you should read a research paper.  Probably a different and customized style would work best for you.   But I can tell you how I read a research paper. And if you think some of the things below make sense, you can try them for yourself and see if they work for you as well. So, how do I read a paper? The first answer that pops to my mind is "I fight with it". I strive to completely understand and "Grok" the paper by arguing with it. I resist to believe the claims in the paper at face value, I try to poke holes at it. I believe that the paper has to earn my trust, and I only accept the parts that I am obliged to accept. My algorithm for reading a paper 0. Print the paper 1. Ask questions and argue with the paper 2. Write a review 3. Fight with the paper 4. Sleep on it and come back to it Print the paper I like to physically touch the paper and handwrite and doodle on the paper. I have highlighter and different color pens read...

Apps are selfish parasites! How can we get truly collaborative apps on smartphones?

While there has been good progress and wide availability of the devices (smartphones, tablets, sensors) to fulfill the ubiquitous computing vision, the-state-of-the-art in software and integration is lagging far behind. Consider DARPA's 2009 network grand challenge on the occasion of the 40th anniversary of the Internet. The challenge was to accurately find 10 weather balloons deployed in arbitrary locations of the U.S. within a day. There was an award of $40,000 for the team that would first report the locations of the 10 balloons accurately, and this challenge was solved within 9 hours. The winning team employed social networks and a multilevel incentive structure, but had to prepare, campaign, and publicize aggressively for an entire month before the challenge day. This points to a big gap between the potential of the smartphones and the reality of the smartphone software today. Why are the existing apps so limited and person-centric? Why can we not have an app that is able t...

Ramblings on serializability

Here is a very raw/immature idea I have been toying with recently. I decided to write it down and share in order to get feedback about whether this is worth exploring further. Serializability Serializability of reads and writes ( sequential consistency ) is an important feature in distributed systems. A significant application of serializability is in transaction processing in distributed databases (e.g., Spanner). Paxos serialization versus serializability Paxos is a method for fault-tolerant state machine replication. In order to achieve fault-tolerant state machine replication, Paxos employs consensus to serialize operations at a leader and apply the operations at each replica in this exact serialized order (dictated by the leader). While serialization is not an end in Paxos but rather a means, Paxos is seen nowadays as a defacto method for serialization rather than a method for fault-tolerant state machine replication. Maybe the ZooKeeper implementation of a Paxos-based l...

Spanner: Google's Globally-Distributed Database

Image
The Spanner paper by Google (appeared in OSDI'12) is cryptic and hard to understand. When I first read it, I thought I understood the main idea, and that the benefit of TrueTime was to enable lock-free read-only transactions in Spanner. Then, I slowly realized things didn't check; it was possible to achieve lock-free read-only transactions without TrueTime as well. I did another read, and thought for some time, and had a better understanding of how TrueTime benefits Spanner, and how to improve its shortcomings. I will first provide a summary of the Spanner work (borrowing sentences and figures from the Spanner paper), and then talk about what TrueTime is actually good for. In a nutshell Spanner is Google's scalable, multi-version, globally-distributed, and synchronously-replicated database. Spanner supports non-blocking reads in the past, lock-free read-only transactions, and atomic schema changes. In order to support externally-consistent distributed transactions a...

Popular posts from this blog

Hints for Distributed Systems Design

The Agentic Self: Parallels Between AI and Self-Improvement

Learning about distributed systems: where to start?

5 Lessons at 50

Foundational distributed systems papers

Building a Database on S3

Cloudspecs: Cloud Hardware Evolution Through the Looking Glass

Aurora DSQL: Scalable, Multi-Region OLTP

TLA+ modeling tips

Supporting our AI overlords: Redesigning data systems to be Agent-first