{'fraction_non_alphanumeric': 0.02734107997265892, 'fraction_numerical': 0.007518796992481203, 'mean_word_length': 4.973469387755102, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Enabling Enterprise Solid State Disks Performance

In this paper, we examine two modern enterprise Flash-based solid state devices and how varying usage patterns influence the performance one observes from the device. We observe that in order to achieve peak sequential and random performance of an SSD, a workload needs to meet certain criteria such as high degree of concurrency. We measure the performance effects of intermediate operating system software layers between the application and device, varying the filesystem, I/O Scheduler, and whether or not the device is accessed in direct mode. Finally, we measure and discuss how device performance may degrade under sustained random write access across an SSD's full address space. I. INTRODUCTION Flash storage devices are a promising new technology which have engendered much excitement for their potential to fill the memory hierarchy gap between the access times of DRAM and mechanical disks (1). However, how well they work in real system with complex workloads is not so clear. In addition, the performance of Flash devices and their pice is changing rapidly, sometimes monthly (2) (3), yet accurate assumptions about Flash behavior, including price and performance, is im- portant to correctly design a hybrid system. For example, some authors assume Flash has poor random write performance (4). A Flash device is made out of memory cells that can be read anytime, but before a non-empty cell can be written it must be first erased. The write and erase operations are considerably slower than reading. In addition, the erase operation is de- structive and, based on the particular Flash technology, a cell can sustain between 10,000 to 1,000,000 erase cycles before wearing out. Flash cells are grouped into pages (typically 4 KB), which are the atomic units of access. Pages are grouped a block (typically 256 KB), which is the atomic unit of erasing (5). Although the read and write operations take in the order of tens of microseconds, the erase operations take milliseconds. Therefore, using Flash naively would not provide for high random write performance. As Flash technology matures, techniques such as log-based writing with background cleaning and wear-leveling, over- provisioning and multiple data and control channels were adopted to enable high random I/O performance. In this paper, we examine two modern enterprise Flash solid state devices and how varying usage patterns influence the performance one observes from the device. We consider the effects of specific operating system storage software on top of the devices, the role of parallelism, and the consequences of sustained random write access on device performance. We chose to measure these specific devices as they represent current state-of-the-art Flash-based solid state devices with fast random write performance. Measurements for older devices and magnetic disks can be found in (2).