Merci

Continuing my tradition from last year, here’s I’m thankful for in 2016:

  • You.
  • An awesome new job at a fantastic company. My co-workers at Uber are incredible, and inspire and motivate me each and every day.
  • My friends and family. I care for all of you deeply. Thank you for all that you’ve done for me. Thank you for always being there for me. Thank you.
  • All the new art (books, music, concerts, food, etc.) that I’ve been fortunate enough to experience.
  • Karan Parikh from December 2015 — for coming up with a list of personal goals and resolutions for 2016. Even though they have been hard to follow/accomplish, I feel that they have made me into a better person than who I was at the beginning of the year. What do you think?

Happy Thanksgiving!

Void

(summaries of and key takeaways from two papers I read last month)

Paper: SLIK: Scalable Low-Latency Indexes for a Key-Value Store

  • Building a low latency, consistent, and scalable secondary index for a NoSQL distributed store is hard.
  • Partitioning your secondary index independently of your data (i.e. not co-locating your secondary index with the data) is key for high performance.
  • SLIK returns consistent data without the need for transactions at write time by using what they term an “ordered write approach”. The SLIK client library shields applications from consistency checking by primary key hashes at read time.
  • I’ve used rule-based programming languages like Prolog before, but I did not know that rule-based programming can be used for non-AI related tasks like concurrent, pipelined RPC requests like SLIK does in its client API implementation.
  • SLIK reuses its underlying system’s (i.e. RAMCloud‘s) storage system to store a representation of the secondary indexes SLIK builds for fast recovery in the face of failure.
  • Measure n times (where n >= 2) cut once: SLIK keeps its design simple by not implementing a garbage collection mechanism to handle invalid secondary index entries. The paper explains how the space saving gained by a garbage collector in their system are negligible.
  • By performing expensive operations like index creation in the background without locking the entire table SLIK ensures that performance never suffers.

Paper:  Caching Doesn’t Improve Mobile Web Performance (Much)

  • Measure n times (where n >= 2) cut once: a 10% increase in cache hit rate in Flywheel only lead to a 1-2% reduction in mobile page load times. This is because of the inherent limitations in web page design and cell phone device hardware (as revealed and evaluated in this paper)A systematic evaluation of the problem (i.e. quantifying the gains of caching in mobile web performance) might have saved engineering effort in improving cache hit rate.
  • I was surprised that page load time was used as an evaluation criteria for cache performance, when above-the-fold load time seems like a more appropriate metric. As revealed in section 3.3 of the paper, this is because above-the-fold load time is harder to measure.
  • The load time for the critical path of a web page determines its overall page load time, and if the elements along the path are not cacheable, then more caching will have zero benefit to page load time. As proved in the experiments detailed in the paper, the amount of data on the critical path that can be cached is much smaller than the amount of overall data that can be cached for most mobile web pages.
  • The bottleneck for mobile web performance is the slow CPUs on mobile devices. Since the computational complexity involved with rendering the page is so high, caching does not give us the page load time reductions we expect on mobile devices.

Quotes: October Edition

I wrote a blog post talking about how I write down lines from books I’m reading. Here are some lines that I loved from the books that I read in October:

If you’d take your head out of the clouds and look around you now and then you’d be surprised at what you see. — Asterios Polyp

Life is stressful dear. That’s why they say “rest in peace.” — Asterios Polyp

After all, folks aren’t so hard to figure out, y’know — you just ignore what they say and watch what they do. — Asterios Polyp

How can we call death — about which we know nothing — the opposite of life, when we barely comprehend life itself? — Asterios Polyp

I am the hero of my own story. — Asterios Polyp

Her breath is wine-sweet, and she has one of those smiles that seem architecturally impossible. It still slays me. — Dark Matter

He laughs. Beautifully. — Dark Matter

Perfect in their imperfection and asymmetry, like a range of mountains. Or the shape of a river. — Dark Matter

Goal Tracking: October Edition

At the beginning of the year I published a post outlining what some of my goals for the year were. In the spirit of being transparent, here is the progress I made on them over the course of October –

  1. 100% self availability over the course of the month. October was a crazy month.
  2. Volunteered for 0 hours  😦
  3. No procrastination!
  4. Continued being honest and open over the course of October. I said things that the Karan of 2015 might have had trouble vocalizing.
  5. Zero Rust progress.
  6. I read 3 books in October — Asterios Polyp (a gorgeous graphic novel with a story that I wish were slightly better), The Man in the High Castle (first book I read in 2016 that I did not like. The story was OK, but I really disliked the writing style), Dark Matter (another book I didn’t really enjoy).
  7. I read 3 research papers — High-Availability at Massive Scale: Building Google’s Data Infrastructure for Ads (I wrote a post about it too)SLIK: Scalable Low-Latency Indexes for a Key-Value Store, and Caching Doesn’t Improve Mobile Web Performance (Much) (the last two papers were from Usenix ATC 2016, and were both fantastic).
  8. I wrote 9 posts.
  9. I didn’t really play much guitar in October.
  10. (a) (goal achieved)
    (b) (goal achieved)
    (c) (goal achieved)
    (d) (goal achieved)
    (e) (goal achieved)