Saturday, October 28, 2017

HPTS'17 day 0

A couple weeks ago, I attended HPTS'17. As I wrote in my HTPS'15 posts (day1 and day2), HPTS is an unconventional workshop. "Every two years, HPTS brings together a lively and opinionated group of participants to discuss and debate the pressing topics that affect today's systems and their design and implementation, especially where scalability is concerned. The workshop includes position paper presentations, panels, moderated discussions, and significant time for casual interaction. The only publications are slide decks by presenters who choose to post them." HPTS is by invitation only and keeps it under 100 participants. The workshop brings together experts from both industry and academia so that they can mix and interact.

Although some people prefer to keep what happens at HPTS to stay at HPTS, I find it hard to not talk about HPTS. I learn a lot at HPTS and I want to share at least some of those. And this year I don't think there was any confidential technology discussed at all. So I don't think Pat Helland will find this post and shout at me.

Travel to HPTS

I flew from Buffalo (BUF) to Chicago (ORD) to San Jose (SJC). The United flights were on time, and I was happy except for United asking for payment for any sort of in-flight entertainment. Almost nobody pays for the in-flight movies, but unfortunately almost nobody turns off their monitors in the seats either. So every monitor in the plane keeps playing catchy advertising clips over and over again, which drives me mad. I am the type of person who cannot concentrate enough to participate in a conversation if there is a screen in the same room. So 3 hours into the flight, I get into a half-crazed mode, as these monitors catch my eye again and again in a loop and torture me.

I landed at the SJC airport at noon and headed to the car rental. I was excited because I was going to see if I could actually get my \$9 daily rate from Hertz.

Yes, you heard it right. When I bought my tickets from United a month earlier, I had reserved a car rental. The rates was around \$40 for SJC car rentals. I checked these a couple times and was trying to decide which company to rent to. Then when I refreshed the screen, I saw that Hertz was now only at \$9 daily to rent. This surely must have been a glitch or an update-error at their database, but I immediately jumped on this and reserved it. See the screenshot below.

So, when I arrived at the Hertz counter, I was determined to stick to my guns, and see how this will play out. HPTS dinner was not till 6pm, and I wasn't pressed for time. When it was my turn, I waited for the Hertz staff to provide me with my reservation. She wasn't able to find it with my name, but when I gave her the reservation number she located it. She said that they don't have any cars to offer at \$9 rate, let alone a midsize car for \$9. I insisted that this is the reservation I had, and didn't comment further. Now I got really curious and wanted to see how they will resolve this issue, but I wasn't going to make it easy for them by budging early.

She called her manager, and the manager moved me to another counter. At this point I was already into my 30 minutes at Hertz counter. The manager again couldn't locate the reservation with my name, but located it with the reservation number. He kept looking at it, and asked me about how I was able to get a reservation for \$9, because it was the lowest rate he has seen so far. I refrained from commenting. He stared at the screen for many minutes, and called his manager. While we waited for the manager's manager to arrive, the manager helping me was also on the phone with their support center. At one point he lit up, and said "Oh! That's why!!!"

At this point, we are about 50 minutes into my stay at the Hertz counters. But since I have been taking this at stride, and was curious about how it will play out, I am still having fun. I am even thinking "Oh I bet this will make a fun story for why distributed databases should implement strong consistency". (Like that time when Brad Fitzpatrick gave away an Apple Gift card for free on his Twitter account, and caused a race condition. Scroll down and expand to read the continuation of the thread, it is hilarious.)

OK, back to the manager and his enlightenment point. The manager told me that my reservation is for SJO and not for SJC. And I told him, I don't understand what he means. He then explained to me that my reservation was for SJO, CR, that is for the San Jose airport at Costa Rica, and not for SJO, CA, the San Jose airport at California. The manager's manager arrived and I explained to them that this is what the United web page gave me and I wasn't the one at fault. They told me not to worry as they will give me their best rate.

Their best rate turned out to be \$79. I thought that Hertz was a victim of a computer error and would have to go with the \$9 rate, but it turned out I was the victim of a computer error. The joke was on me now. So I moved to the Dollar counters, and rented a compact car for \$35 rate and left the car rental around 1:30pm. Computers hate me.

I still had time to kill before the HPTS dinner, so I drove through Santa Cruz. I took a walk at the Santa Cruz Wharf. It was an absolutely gorgeous day. I then drove to Asilomar conference grounds, checked in at my room, and took a nap before dinner.

Dinner and beyond

For dinner, I was at the same table with Shel Finkelstein and Ethan Miller both from UC Santa Cruz. When they asked me what I am working on these days, I mentioned about the WAN Paxos protocol I am working on. They were more interested about the semantics of its transaction model, and asked me whether it was MVCC and used snapshot isolation (the answer for our WAN Paxos is no). A long discussion on snapshot isolation ensued ---a proper way to start HPTS indeed. Shel gave a snapshot isolation with two variables on the snapshot a=0, b=100, and the invariant a<b. Thread 1 starts with that snapshot and sets a:=60, still satisfying the invariant. Thread 2 starts with that snapshot and sets b:=20, still satisfying the invariant. While both threads are individually correct, their combined result violates the invariant.

At the dinner, I also met with Peter Bailis briefly. Always nice to meet him again. I wish I had more time to chat and learn from him. Later on day 3, I met his graduate student Firas Abuzaid and chat with him as well.

After dinner, we went to the chapel for snacks and beverages. I met Jonathan Ellis, cofounder and CTO of DataStax and had a long talk. I then talked with a MongoDB engineer. And followed that by talking to Ben Darnell, CTO and cofounder of CockroachDB. Vaibhav Arora from UC Santa Barbara was also in that conversation. (He will be in job market soon, he is brilliant, hire him.) We talked about CockroachDB transaction commit protocol. The protocol starts like snapshot isolation, with the reads from a given timestamp, but at commit time it serializes commits and prevents conflicts in a pessimistic manner. That is, unlike the snapshot isolation example above, the protocol checks for the timestamps of the reads at Transaction 1 and Transaction 2 and would not allow those transactions to both commit since both transactions' timestamps are 0 and they overlap accessing same variables.

Then we moved to the directors cottage. Pat Helland had special beverage tasting scheduled there till midnight. I met Evan Jones from Bluecore.  I met several others in the cottage an talked about their current work and my current research.

Then I met Tony Voellm from Microsoft CosmosDB team, and talked with him at length. Then we both joined a group talking about SSD disks with Ethan Miller. Ethan argued that a big benefit to switching to SSDs is it reduces the space footprint of servers/storage in the datacenter, and that is a big gain.

I also talked to Ippokratis Pandis at Amazon, whom I knew from before.

I was later involved in another conversation, where I learned that datacenters accumulate junk, much like how our laptops accumulate junk files over years. And  closing restructuring a datacenter is a good chance to get rid of all that junk, much like how we get rid of junk files in our old laptops --by buying a new laptop.

End of day 0

I am not telling these to name drop (well maybe there is a bit of that). I am telling these to show that I was able to meet about 15 people just on day 0. And I am a shy guy. HPTS is great for meeting passionate people and geeking out about distributed systems. I looked at the attendance list and from a rough estimation I must have chat with at least 50 participants by the end of day 2 of HPTS.

There is a lot more to tell, but I will save Day 1 to the next post. Here is the HPTS'17 agenda to whet your appetite.

1 comment:

Evan Jones said...

Hello, thanks for the mention :) It was great to meet you too. Cheers!