Efficient Data Eviction across Multiple Tiers of Storage

semanticscholar(2019)

引用 0|浏览0
暂无评分
摘要
1 EXTENDED ABSTRACT Data-intensive computing offers unprecedented opportunities for scientific discovery, high-fidelity insights, and data-driven decision making. However, I/O has become a major challenge for extreme scale computing [4] due to the unparalleledmagnitude of datamovement. The de facto solution to these challenges has been addressed by using large scale Parallel File Systems (PFS). Modern storage environment have proposed the addition of multiple layers of storage between the applications and the PFS. In these environments, upper layers have a higher bandwidth at the cost of reducing storage capacity, with the PFS as the bottom layer having a hypothetical infinite capacity. This difference in capacities and speeds between storage layers makes it extremely challenging to evict data from upper layers to lower layers efficiently. Currently, the transfer of data between these storage layers is achieved by either caching or buffering the data within the intermediate layers allowing the environment to match the performance gap between two successive layers. Scientists have proposed various software solutions to address the performance gap between layers. Data Buffering is one solution in which the data is accumulated in fast intermediate-storage-layers and are eventually flushed down. For instance, Data Elevator [1], Univistor [5], and Hermes [3] are examples of such a buffering system. A second approach is Data Aggregation in which data from various nodes is collected by an aggregation layer composed of specialized hardware, such as burst buffers or I/O forwarders. These layers then flush the data collected into the underlying archival storage (e.g., PFS). Finally, there is also Collective I/O in which processes of an application coordinate themselves before performing an I/O operation. This is commonly achieved in HPC clusters by using MPI collective I/O frameworks [2]. These software solutions play a critical role in addressing the growing I/O gap and in enabling efficient scientific discovery. These techniques not only enhance the I/O efficiency of an application, but they also have in common that they trigger the asynchronous flushing of data to the archival storage. The importance of the latter operation is further exacerbated in applications (e.g, The Square Kilometer Array or the Atlas experiment at the Large Hadron-Collider) where data production exceeds the size of intermediate buffering layers (e.g., RAM, NVMe, or burst buffers) since the overall performance of these applications is closely tied to their ability to move data to/from larger storage clusters in a timely and efficient manner. Data flushing suffers from several challenges. Firstly, although buffering data into faster layers improves the application throughput and latency, the data flushing of these layers into the final archival storage is bound by the speed of the lowest layers. This creates a gap in performance during the data flushing between two layers in which the data can be written faster into one layer than it can be evicted from the current into the subsequent layer. Secondly, all software based solutions perform data flushing in batches which increases the read latency for accessing data. Thirdly, traditional data flushing is implemented using push-based architectures, an operation which is typically hidden between computational phases. For many applications, it can become impractical and a misallocation of resources to meet this computational requirement since I/O is bounded by the slowest layer. In order to deal with these challenges, we ought tomove towards a near-real time pull-based architecture to improve the efficiency of data eviction between layers. To address the above challenges, we present RFlush, a real-time data flushing platform for multi-tiered storage environments. The core of RFlush is a streaming architecture with exactly once semantics where all operations are decoupled and performed in parallel. This architecture allows RFlush to provide a low latency and autoscaling capabilities while also providing an efficient pipeline for continuous data flushing operations to enable high resource utilization. RFlush stands between the buffering platform and the archival storage, and it performs continuous data flushing operations through a server-pull mechanism, where data from multiple layers is pulled by RFlush and moved into lower layers. Using a data streaming model allows us to move away from traditional batch-based applications and provides us the ability to efficiently flush high volumes of data.
更多
查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要