{'fraction_non_alphanumeric': 0.02027027027027027, 'fraction_numerical': 0.0, 'mean_word_length': 5.0344827586206895, '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}}
Improving random write performance in homogeneous and heterogeneous erasure-coded drive arrays

In data storage systems, drive arrays known as RAIDs are often used in order to avoid data loss and to maintain availability in the event of drive failure(s). RAID schemes define various drive array organizations (denoted as RAID levels) that can be used in arrays of hard disk drives (HDDs) and arrays of NAND flash memory solid-state drives (SSDs). For larger drive arrays, using data striping with erasure coding is appealing due to its notably higher space efficiency compared to data replication. However, the main issue of data striping with erasure coding is the performance of random writes smaller than a stripe. This problem is even aggravated if the random access performance characteristics of the deployed device type (HDD or SSD) and device model are not properly considered when choosing the data striping configuration (in particular the stripe unit size).
 In this article, we provide an analytical model allowing to predict the random write throughput of homogeneous drive arrays as well as of a heterogeneous drive array with code blocks stored on the faster drives. Based on our model, we develop a method to improve the random write throughput in homogeneous drive arrays (comprising only one device type, e.g., HDDs or SSDs) by adapting the data striping configuration to the used device type and model in relation to the workload. Then, based on our previous work, we describe an organization for heterogeneous drive arrays, which is especially suitable for arrays combining HDDs with SSDs, and permits to further increase the random write throughput by storing data blocks on slower and code blocks on faster drives. Finally, we experimentally evaluate our analytical claims and show that random write throughput can indeed be notably increased in drive arrays that use data striping with erasure coding.