One of the many highlights of my recent visit to Japan was a dinner I had at Len (also called Ren). Len is a two Michelin starred restaurant in Tokyo and I managed to get a 6pm dinner reservation there on my second last night in Japan.

The meal was phenomenal. I love Japanese food, and in my mind this meal exemplified everything that attracts me towards Japanese cuisine – simplicity, elegance, and the freshness of ingredients.

Restaurants that “ruin” a food item for me hold a special place in my heart. By “ruin” here I mean that they serve me such a perfect version of the food item in question that subsequent versions I eat elsewhere will (most likely) pale in comparison. This first happened to me at Quince where I had the best mac and cheese I’d ever had in my life, and it happened again at Len, where I had the most sublime and incredible rice and eel I’ve ever tasted. This is a simple dish, but in its simplicity lies perfection.

Here are some pictures from my dinner:

Sea urchin and steamed egg custard
Water melon and abalone soup.
Chef Jun Mishina charcoal grilling pike eel.
Charcoal grilled pike eel. This was my first time eating pike eel!
Japanese beef and eggplant with a plum sauce.
Steamed rice and eel with house-made pickles. Perfection.



My goal for June was to read ten research papers. Unfortunately I failed.

Here are the papers I read:

  1. WiscKey: Separating Keys from Values in SSD-conscious Storage
  2. Polaris: Faster Page Loads Using Fine-grained Dependency Tracking
  3. Efficient Memory Disaggregation with Infiniswap
  4. Redundancy Does Not Imply Fault Tolerance: Analysis of Distributed Storage Reactions to Single Errors and Corruptions
  5. Early Detection of Configuration Errors to Reduce Failure Damage
  6. MemC3: Compact and Concurrent MemCache with Dumber Caching and Smarter Hashing
  7. Replex: A Scalable, Highly Available Multi-Index Data Store

Here I the papers I didn’t have the time to read:

  1. CORFU: A distributed shared log
  2. vCorfu: A Cloud-Scale Object Store on a Shared Log
  3. Hints for Computer System Design

Favorite paper – WiscKey: Separating Keys from Values in SSD-conscious Storage


(my thoughts and summary on the second paper I read this month as part of my endeavor to read ten research papers in June)

Paper: MemC3: Compact and Concurrent MemCache with Dumber Caching and Smarter Hashing

This research paper introduces readers to MemC3, which stands for Memcached with CLOCK and Concurrent Cuckoo Hashing. MemC3 is Memcached with modifications to make it faster and use less space. The researchers achieve the speed boost by allowing multiple reads and a single write to happen concurrently using their own concurrent implementation of Cuckoo Hashing. The space savings are gained by using the CLOCK algorithm to implement LRU cache eviction.

The authors begin by examining the existing use cases and design choices of Memcached. They notice that most Memcached use cases are read heavy, and that Memcached either (a) uses a single thread, or (b) (in newer versions) uses a single global lock. These two observations highlight areas where Memcached’s performance can be improved.

To improve the read and write performance and to enable concurrent operations the researchers replace Memcached hash table + linked list based cache with a 4-way set associate hash table that uses Cuckoo Hashing. I hadn’t heard of Cuckoo Hashing before reading this paper, and it is quite an interesting concept. To allow multiple readers and one writer the authors develop their own concurrent Cuckoo Hashing algorithm that combines lock striping and optimistic locking in a simple and easy to understand algorithm. This section (section 3.2) was the part of the paper that I enjoyed the most.

To save space and to implement an LRU cache eviction policy the authors use the CLOCK algorithm. The paper also describes how their cache eviction algorithm works safely with their concurrent cuckoo hashing algorithm.

The paper ends with an evaluation section that compares MemC3 and Memcached in a variety of configurations and workloads and shows that MemC3 almost always outperforms Memcached.


Lifting/workout injuries this year so far (listed in descending order of severity):

  1. Pulled muscle in my lower left back.
  2. Micro tear in my tricep in my right arm.
  3. Pain in the region of my right knee.
  4. Sprained finger.
  5. Bruise on nose. This was a result of doing what I call a “jump clap push up”: it’s a clap push up in which you also lift your entire body up while you’re clapping, so your feet are lifted off the ground when you clap. I can typically do these without any problem, but because of injury #2 in this list I fell and my nose hit the ground. Hard. This happened before I knew that I had torn my tricep; I was trying to see if my arm had healed. Turns out it hadn’t.