{'fraction_non_alphanumeric': 0.03265044814340589, 'fraction_numerical': 0.002560819462227913, 'mean_word_length': 4.965648854961832, '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}}
Exploit real-time fine-grained access patterns to partition write buffer to improve SSD performance and life-span

Solid State Drives (SSDs) have become very popular recently due to their high performance and other benefits such as shock-resistance. However, SSDs pose some unique and serious challenges to I/O and file system designers because of flash memory's unique properties, such as out-of-place update, wearing-out, and highly asymmetric performance for read, write and erase operations. Most SSDs employ a log-structured block-based FlashTranslation-Layer (FTL) to solve the out-of-place update problem. The performance of FTLs is often highly sensitive to access patterns, especially the write access patterns. For example, sequential write requests see lower overhead than random writes. Moreover, sequential write requests that are not aligned to the flash page boundary may cause extra write and garbage collection operations, increasing overhead and wear-out. In this paper, we present a novel write buffer design based on sophisticated, fine-grain write access pattern analysis. Our scheme identifies access patterns in a per-process per-stream granularity in the OS buffer cache. These patterns are then used to guide the write buffer to improve the write performance of SSDs that employ a log-structured block-based FTL. Simulation results show that our solutions can improve write performance by up to 38%. Moreover, the schemes reduce SSD erase cycles by up to 56%, which is directly translated to a major improvement on the life-span of SSDs.