I got back from the USENIX File And Storage Technologies conference yesterday. It actually ended on Friday, but I don’t much care for flight schedules that get me to Boston well after midnight so I stayed in San Jose for the rest of the day. As always, it was an awesome conference. The mix of familiar old-timers and enthusiastic newcomers, all focused on making data storage better, is very energizing.
My own cloud-storage tutorial on Tuesday went well. We had a bit of trouble with the projection video at the beginning, but the USENIX folks are real pros so we got through it. I also had a moment of terror near the beginning when I got a persistent tickle in my throat (it is still flu season after all) and started to wonder if my voice would hold out for the full three hours, but I was able to get things under control. Thanks to the feedback from last year I think it was a much stronger presentation this time, and the general audience engagement seemed much higher. We spent the entire half-hour break continuing discussions in the middle of the room, and throughout the conference – even on the last day – people were still coming up to me to talk about the material. I’m grateful to everyone who made it possible, and everyone who made it awesome.
With that, it was on with the real show – the refereed papers, plus work-in-progress talks, birds-of-a-feather sessions, and posters. To be quite honest, there seemed to be a lower percentage of papers this year that were interesting to me personally, but that’s more a reflection of my interests than on the papers themselves which were all excellent. Here’s the full list.
From my own perspective as a filesystem developer, here are some of my own favorites.
- A Study of Linux File System Evolution (Lu et al, Best Paper [full length])
Maybe not as much fun as some of the algorithmic stuff in other papers, but I’m very excited by the idea of making an empirical, quantitative study of how filesystems evolve. I’m sure there will be many followups to this.
- Unioning of the Buffer Cache and Journaling Layers with Non-volatile Memory (Lee et al, Best Paper [short]).
Devices that combine memory-like performance and byte addressability with persistence are almost here, and figuring out how to use them most effectively is going to be very important over the next few years. This paper’s observations about how to avoid double buffering between an NVM-based cache and an on-disk journal are worth looking into.
- Radio+Tuner: A Tunable Distributed Object Store (Perkins et al, poster and WiP)
It might be about object stores, but the core idea – dynamically selecting algorithms within a storage system based on simulation of expected results for a given workload – could be applied to filesystems as well
- Gecko: Contention-Oblivious Disk Arrays for Cloud Storage (Shin et al).
This is my own personal favorite, and why I’m glad I stayed for the very last session. They present a very simple but powerful way to avoid the “segment cleaning” problem of log-structured filesystems by using multiple disks. Then, as if that’s not enough, they use SSDs in a very intelligent way to boost read performance even further without affecting writes.
I can definitely see myself trying to apply some of the ideas from Tuner and Gecko to my own work. Who knows? Maybe I’ll even come up with something interesting enough to submit my own paper next year. There’s a lot more good stuff there, too, so check out the full proceedings.