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 takeways 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 September:

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)

Taste

I had my first taste of good whisky in 2013. It took me a couple of months after that to get accustomed to and develop an appreciation for this spirit. By 2014 whisky had become my preferred choice of alcoholic drink.

This week I had the opportunity to sample some Japanese whisky in San Francisco at an event organized by Nikka Whisky. The whiskies I drank were:

  • Taketsuru Pure Malt: first time drinking this; liked it the least.
  • Yoichi Single Malt: first time drinking this; pretty good.
  • Miyagikyo Single Malt: first time drinking this; LOVED it.
  • Coffey Grain: I’ve had this several times before and enjoy it. We were presented with a cocktail made from this whisky that had a strong aroma of coffee.
  • Coffey Malt: I’ve had this several times before and enjoy it. We were presented with an extremely delicious Halloween themed cocktail made with this whisky and pumpkin.

If you like whisky but have never had Japanese whisky before I highly recommend giving it a try. The Coffey Grain or Coffee Malt is an excellent place to begin.

img_8856

My attempt at taking a nice picture of the whiskies I drank at the event.

 

Halcyon

I’ve always been an ardent fan of physical books, refusing to read e-books as much as possible. There’s something about the feel of a non-electronic book, of how you can feel the weight and texture of a physical tome, and how the book smells, and how the pages rustle when the wind blows fiercely (San Francisco is surprisingly windy at times), that I find irresistible.

But the times are changing, and I decided to give e-books a try. This had nothing to do with Amazon adding free e-books as a Prime benefit. That was simply a coincidence.

I’ve been reading my first e-book on my iPhone for the past 10 days now. Here’s how I feel about e-books so far:

  • I miss everything I wrote in the first paragraph of this post about physical books. 
  • Having a book pretty much always with you (since I was reading this book on my phone) is excellent. I find it hard to carry a book with me unless I’m also carrying a backpack, but when the book is on your phone this is a non-issue. I’ve found myself reading much more as a result of this. Previous moments of solitary, aimless waiting have now been transformed into consumption of passages of an e-book.
  • I typically read 2-3 books at a time, and having the ability to carry all of them with me always will be great.
  • I have a (bad) habit of folding down the corners of pages of books. I do this when the page has a nice line (or lines) that I would like write down at some point. With e-books this is another non-issue — I simply highlight the lines in the app. Though this does take out the fun of going back to a page I folded and trying to figure out which line caught my attention in the first place.
  • Reading in between sets at the gym is fun. Though sometimes I lose track of time and end up with unintentionally long breaks.
  • One of the more interesting things about having physical books on display, say on a book shelf, or lying untidily in a pile by your bed, is that they are a great conversation starter. Or even a conversation killer. With e-books this facet of reading is lost.

Overall I’ve quite enjoyed my first encounter with an e-book. I don’t see it ever replacing physical books for me, but I do see it augmenting my reading experience moving forward.