Towards Application Driven Storage. Optimizing RocksDB for Open-Channel SSDs

Open-channel SSDs enable the host to undertake responsibilities that in typical SSDs are assumed by the Flash Translation Layer (FTL) embedded in the device. From the application perspective, this means that storage policies that have traditionally been based on best efforts can now be tailored for each specific application. In other words, applications can implement their own FTLs and govern data placement and garbage collection.

In this talk at LinuxCon Europe, I explain how to integrate an application FTL with LightNVM – the kernel subsystem providing support for Open-Channel SSDs. More specifically, I report on the design and implementation of a LightNVM backend for RocksDB we refer to as DFlash (Direct Flash). The focus is on both the LightNVM interfaces to which other applications could hook to, and the modifications to RocksDB so that it can communicate with LightNVM. I also provide some experimental results on a real hardware CNEX Labs Open-Channel SSD.

If you have any questions or feedback feel free to write to me at javier<at>javigon.com

Presentation PDF.

Enjoy! 🙂

Certainty Boot

A month ago we presented our work on a new technique for validating an execution environment at boot time at ISC’14; we refer to it as certainty boot. In the first stages of this work, we found inspiration in Cory Doctorow’s talk “The Coming War on General Purpose Computing”. Here, Doctorow actually proposes a high-level description of what we have implemented. At the moment we have a prototype based on ARM TrustZone as a Trusted Execution Environment and a Secure Element as a tamper-resistant unit. Now we are working on a demo using a Zynq ZC702 development board.

Here you can find the article and the presentation.

Continue reading

Getting efficient with vim and YADR

A couple weeks ago I posted my new working environment: YADR + iTerm2 . I am still loving it, and in fact it gets better and better as one gets used to the shortcuts and the new functionality that was simply not there before! The problem is that due to all that many new shortcuts + the chances of you messing up when typing something wrong in vim, I keep finding myself in google or egreping my YADR tree very often. This post is therefore as much for myself as for anybody in the same situation as me: A compilation of shortcuts and useful commands that make my/your life easier. Continue reading