uFLIP & EagleTree


It is amazingly easy to produce meaningless results when measuring flash devices, partly because of the peculiarity of flash memory, but primarily because their behavior is determined by layers of complex, proprietary, and undocumented software and hardware. uFLIP is a component benchmark for measuring the response time distribution of flash IO patterns, defined as the distribution of IOs in space and time. uFLIP includes a benchmarking methodology which takes into account the particular characteristics of flash devices. The source code of uFLIP, available on the web, was registered at APP. uFLIP’s git repository is: https://github.com/ClydeProjects/FlashIO. uFLIP was the starting root of the Clyde Project.

Within this project, we proposed, more recently, a new SSD simulation framework, named Eagle-Tree, which complements uFLIP for the analysis of flash devices. EagleTree allows exploring how a given algorithm, say a hash join or LSM-tree insertions, leverages the intrinsic parallelism of a modern SSD, or how a slight change in the internals of an SSD would impact its overall performance. EagleTree is an extensible, customizable SSD simulator designed to enable deep analyses of the interplay between the FTL, block management scheme, IO scheduling policy and application workload. EagleTree is available for Linux, and is licensed under GPL. EagleTree’s git repository is: https://github.com/nivdayan/EagleTree.