Why applications are coupled to I/O and how the scenery can be changed

F. Nikolaidis, S. Zertal, Thomas Leibovici, Athanasios Kiatipis
{"title":"Why applications are coupled to I/O and how the scenery can be changed","authors":"F. Nikolaidis, S. Zertal, Thomas Leibovici, Athanasios Kiatipis","doi":"10.1109/HPCS48598.2019.9188205","DOIUrl":null,"url":null,"abstract":"The versatility and I/O demanding nature of modern applications, compel them to be operable across various storage platforms. As the platforms may exhibit different characteristics, the applications need to incorporate platform-specific code paths. More demanding applications that require concurrent use of platforms must also implement transactions, parallel streams, error handling routines and data reconstruction strategies. Building this logic is a complicated task that requires I/O expertise, but more importantly, it must be re-implemented for each application. To that end, the application decouples from the platform but is bounded to I/O related code paths. This paper presents a framework (TrIO) to decouple the I/O logic from the application source code. The framework exhibits a domain specific language, that allows the developers to model the I/O logic as a graph of components, without any implementation concerns. The runtime engine takes as input the graph and generates the respective intransit data processing network with transactional and parallel data delivery guarantees. As a proof-of-concept, a distributed filesystem prototype built atop the engine, with graphs that imitate RedHat GlusterFS volumes to define its behavior. Conducted tests show that for volumes that rely on parallelization, our prototype can outperform GlusterFS by a factor of 2.","PeriodicalId":371856,"journal":{"name":"2019 International Conference on High Performance Computing & Simulation (HPCS)","volume":"31 4 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2019 International Conference on High Performance Computing & Simulation (HPCS)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/HPCS48598.2019.9188205","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

The versatility and I/O demanding nature of modern applications, compel them to be operable across various storage platforms. As the platforms may exhibit different characteristics, the applications need to incorporate platform-specific code paths. More demanding applications that require concurrent use of platforms must also implement transactions, parallel streams, error handling routines and data reconstruction strategies. Building this logic is a complicated task that requires I/O expertise, but more importantly, it must be re-implemented for each application. To that end, the application decouples from the platform but is bounded to I/O related code paths. This paper presents a framework (TrIO) to decouple the I/O logic from the application source code. The framework exhibits a domain specific language, that allows the developers to model the I/O logic as a graph of components, without any implementation concerns. The runtime engine takes as input the graph and generates the respective intransit data processing network with transactional and parallel data delivery guarantees. As a proof-of-concept, a distributed filesystem prototype built atop the engine, with graphs that imitate RedHat GlusterFS volumes to define its behavior. Conducted tests show that for volumes that rely on parallelization, our prototype can outperform GlusterFS by a factor of 2.
为什么应用程序要耦合到I/O,以及如何改变这种情况
现代应用程序的多功能性和对I/O的要求迫使它们可以跨各种存储平台进行操作。由于平台可能表现出不同的特征,应用程序需要合并特定于平台的代码路径。需要并发使用平台的更苛刻的应用程序还必须实现事务、并行流、错误处理例程和数据重建策略。构建这种逻辑是一项复杂的任务,需要I/O专业知识,但更重要的是,它必须为每个应用程序重新实现。为此,应用程序与平台解耦,但仅限于与I/O相关的代码路径。本文提出了一个框架(TrIO)来将I/O逻辑与应用程序源代码解耦。该框架展示了一种特定于领域的语言,它允许开发人员将I/O逻辑建模为组件图,而无需考虑任何实现问题。运行时引擎将图作为输入,并生成具有事务性和并行数据交付保证的各自传输中的数据处理网络。作为概念验证,构建在引擎之上的分布式文件系统原型,使用模仿RedHat GlusterFS卷的图形来定义其行为。进行的测试表明,对于依赖并行化的卷,我们的原型的性能可以比GlusterFS高出2倍。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信