IceDust: Incremental and Eventual Computation of Derived Values in Persistent Object Graphs

D. Harkes, D. Groenewegen, E. Visser
{"title":"IceDust: Incremental and Eventual Computation of Derived Values in Persistent Object Graphs","authors":"D. Harkes, D. Groenewegen, E. Visser","doi":"10.4230/LIPIcs.ECOOP.2016.11","DOIUrl":null,"url":null,"abstract":"Derived values are values calculated from base values. They can be \nexpressed in object-oriented languages by means of getters calculating the derived value, and in relational or logic databases by means of (materialized) views. However, switching to a different calculation strategy (for example caching) in object-oriented programming requires invasive code changes, and the databases limit expressiveness by disallowing recursive aggregation. \n \nIn this paper, we present IceDust, a data modeling language for \nexpressing derived attribute values without committing to a calculation strategy. IceDust provides three strategies for calculating derived values in persistent object graphs: Calculate-on-Read, Calculate-on-Write, and Calculate-Eventually. We have developed a path-based abstract interpretation that provides static dependency analysis to generate code for these strategies. Benchmarks show that different strategies perform better in different scenarios. In addition we have conducted a case study that suggests that derived value calculations of systems used in practice can be expressed in IceDust.","PeriodicalId":172012,"journal":{"name":"European Conference on Object-Oriented Programming","volume":"174 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2016-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"23","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"European Conference on Object-Oriented Programming","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.4230/LIPIcs.ECOOP.2016.11","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 23

Abstract

Derived values are values calculated from base values. They can be expressed in object-oriented languages by means of getters calculating the derived value, and in relational or logic databases by means of (materialized) views. However, switching to a different calculation strategy (for example caching) in object-oriented programming requires invasive code changes, and the databases limit expressiveness by disallowing recursive aggregation. In this paper, we present IceDust, a data modeling language for expressing derived attribute values without committing to a calculation strategy. IceDust provides three strategies for calculating derived values in persistent object graphs: Calculate-on-Read, Calculate-on-Write, and Calculate-Eventually. We have developed a path-based abstract interpretation that provides static dependency analysis to generate code for these strategies. Benchmarks show that different strategies perform better in different scenarios. In addition we have conducted a case study that suggests that derived value calculations of systems used in practice can be expressed in IceDust.
持久对象图中派生值的增量和最终计算
派生值是从基值计算出来的值。它们可以在面向对象语言中通过计算派生值的getter来表示,也可以在关系数据库或逻辑数据库中通过(物化)视图来表示。然而,在面向对象编程中切换到不同的计算策略(例如缓存)需要侵入性的代码更改,并且数据库通过不允许递归聚合限制了表达性。在本文中,我们提出了IceDust,这是一种数据建模语言,用于表示派生属性值,而无需提交计算策略。IceDust提供了三种策略来计算持久对象图中的派生值:读时计算、写时计算和最终计算。我们已经开发了一个基于路径的抽象解释,它提供静态依赖分析来为这些策略生成代码。基准测试表明,不同的策略在不同的场景下表现更好。此外,我们还进行了一个案例研究,表明在实践中使用的系统的推导值计算可以在IceDust中表示。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约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学术官方微信