Posts

How to write your research paper

The legend of Köroğlu I will start with a story of oppression and an uprising, involving a mythical horse in the process. Way to start a post about writing research papers, huh? In 16th century Anatolia, there was a corrupt and oppressor mayor in the Bolu state. The mayor one day decided that he should find and gift the best horse in the world to the Sultan. He contacted a very skilled horse breeder. The breeder said the horse that is deserving of the Sultan should be very special, and said none of his horses is worthy of this. He went on a quest for this horse himself. One day he saw some street kids abusing a feeble and awkward-looking foal. He immediately recognized the potential in this foal and bought the foal, and headed for the mayor's palace. The mayor got outraged, being the ignorant oppressor he is, he thought the breeder is mocking him by offering this weak awkward foal. The mayor immediately ordered the breeder to be blinded. The breeder had a young son, who beca...

Dapper, a Large-Scale Distributed Systems Tracing Infrastructure

Image
This paper is from Google. This is a refreshingly honest and humble paper. The paper is not pretending to be sophisticated and it doesn't have the "we have it all, we know it all" attitude. The paper presents the Dapper tool which is trying to solve a real problem, and it honestly represents how this simple straightforward solution fares and where it can be improved. This is the attitude of genuine researchers and seekers of truth. It is sad to see that this paper did not get published in any conferences and is still listed as a Google Technical Report since April 2010. What was the problem? Not enough novelty? Not enough graphs? Use case: Performance monitoring tail at scale Dapper is Google's production distributed systems tracing infrastructure. The primary application for Dapper is performance monitoring to identify the sources of latency tails at scale. A front-end service may distribute a web query to many hundreds of query servers. An engineer looking on...

Naiad: A timely dataflow system

Image
What is in a name? Naiad is from Microsoft Research.  Dryad , a general purpose runtime for execution of data parallel applications, was also from Microsoft Research. An application written for Dryad is modeled as a directed acyclic graph (DAG) and Dryad is the " tree nymph " in Greek mythology. Naiad is a stream processing platform and Naiad is the " stream nymph " in Greek mythology. Naiad is an opensource project that has been receiving a lot of attention recently. I expect we will hear more about Naiad, because it is very useful for low-latency real-time querying and high-throughput incremental-processing of streaming big data. What is not to like? Naiad is useful especially in incremental processing of graphs. As has been observed before, MapReduce is inappropriate for graph processing because of the large number of iterations needed in graph applications. MapReduce is a functional language, so using MapReduce requires passing the entire state of the grap...

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...

Popular posts from this blog

Hints for Distributed Systems Design

My Time at MIT

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

Foundational distributed systems papers

Advice to the young

Learning about distributed systems: where to start?

Distributed Transactions at Scale in Amazon DynamoDB

Making database systems usable

Looming Liability Machines (LLMs)

Analyzing Metastable Failures in Distributed Systems