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.
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.
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.
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.
I’ve had RARE, the newest album by Hundredth, on repeat for the past two days. In a departure from their previous metalcore style, RARE is a collection of ethereal shoegaze that is stunningly beautiful.
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 tablethat 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.