Tsukemen

I visited Japan (specifically Tokyo, Kyoto, Hiroshima, and Osaka)  in July with my brother and my best friend. It was an incredible experience. This was the first international vacation I’d taken in a while (not counting visits back home to India) and I had a lot of fun.

 

8
Kinkakuji
3
Ginkakuji
7
Nijo Castle

If you’re planning to visit Japan (and I’d highly recommend doing so) here are some tips that might help you:

  • Visit Hiroshima. It is an intense, heart-wrenching, and emotionally moving experience. It will change you.

    4
    The Hiroshima Peace Memorial
  • Get a Japan Rail (JR) pass. It allows you to use Japan’s excellent public rail system an unlimited number of times for a flat fee for 7, 14, or 21 days. It makes traveling between and within cities in Japan effortless. Make sure to also install the HyperDia app to help you plan your travels.
  • Throw out all your clothes before you leave for Japan and be prepared to acquire a whole new set of clothes when you’re back. Why? Because the food in Japan is SO GOOD that you’re going to eat A LOT and none of your old clothes will fit you anymore. To say that every meal I had in Japan was excellent would be an understatement. Highlights for me included my meal at Len, fatty tuna, Wagyu beef, tsukemen, and ochazuke.
     

    1
    Ramen
    5
    Ramen
    2
    Ochazuke

    6
    Tsukemen

Eel

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:

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

 

Failure

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

See

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