CERN Accelerating science

Towards EOS Namespace Persistence in NVRAM: Hashtable Benchmarks

Date published: 
Tuesday, 1 September, 2015
Document type: 
Summer student report
T. Kappé
EOS[1] provides fast and reliable disk-only storage for data produced by the LHC experiments. In order to ensure fast access, EOS keeps a representation of the namespace in RAM along with a change-log file on disk. As a consequence, restoring the namespace from disk after a restart or a crash can take a relatively long time. Migration of the namespace to persistent memory (non-volatile RAM or NVRAM) will ensure persistence of data even in the event of a sudden power cut, as well as a considerable improvement on boot-up time. However, this migration requires that changes to the memory are done in a transactional fashion; in the event of a crash, we would like to recover with a consistent view of the namespace. We present a hashtable that can be used to store contents persistently and transactionally, for use with the Mnemosyne[2] toolchain. To benchmark and validate this hashtable, an extensible benchmarking tool was written. We show that, outside Mnemosyne, our hashtable has a performance similar to the implementation currently in use. We furthermore integrate our own hashtable into the EOS code base.