Feral Concurrency Control: An Empirical Investigation of Modern Application Integrity

Peter D. Bailis, A. Fekete, M. Franklin, A. Ghodsi, J. Hellerstein, I. Stoica
{"title":"Feral Concurrency Control: An Empirical Investigation of Modern Application Integrity","authors":"Peter D. Bailis, A. Fekete, M. Franklin, A. Ghodsi, J. Hellerstein, I. Stoica","doi":"10.1145/2723372.2737784","DOIUrl":null,"url":null,"abstract":"The rise of data-intensive \"Web 2.0\" Internet services has led to a range of popular new programming frameworks that collectively embody the latest incarnation of the vision of Object-Relational Mapping (ORM) systems, albeit at unprecedented scale. In this work, we empirically investigate modern ORM-backed applications' use and disuse of database concurrency control mechanisms. Specifically, we focus our study on the common use of feral, or application-level, mechanisms for maintaining database integrity, which, across a range of ORM systems, often take the form of declarative correctness criteria, or invariants. We quantitatively analyze the use of these mechanisms in a range of open source applications written using the Ruby on Rails ORM and find that feral invariants are the most popular means of ensuring integrity (and, by usage, are over 37 times more popular than transactions). We evaluate which of these feral invariants actually ensure integrity (by usage, up to 86.9%) and which---due to concurrency errors and lack of database support---may lead to data corruption (the remainder), which we experimentally quantify. In light of these findings, we present recommendations for database system designers for better supporting these modern ORM programming patterns, thus eliminating their adverse effects on application integrity.","PeriodicalId":168391,"journal":{"name":"Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data","volume":"251 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2015-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"72","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2723372.2737784","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 72

Abstract

The rise of data-intensive "Web 2.0" Internet services has led to a range of popular new programming frameworks that collectively embody the latest incarnation of the vision of Object-Relational Mapping (ORM) systems, albeit at unprecedented scale. In this work, we empirically investigate modern ORM-backed applications' use and disuse of database concurrency control mechanisms. Specifically, we focus our study on the common use of feral, or application-level, mechanisms for maintaining database integrity, which, across a range of ORM systems, often take the form of declarative correctness criteria, or invariants. We quantitatively analyze the use of these mechanisms in a range of open source applications written using the Ruby on Rails ORM and find that feral invariants are the most popular means of ensuring integrity (and, by usage, are over 37 times more popular than transactions). We evaluate which of these feral invariants actually ensure integrity (by usage, up to 86.9%) and which---due to concurrency errors and lack of database support---may lead to data corruption (the remainder), which we experimentally quantify. In light of these findings, we present recommendations for database system designers for better supporting these modern ORM programming patterns, thus eliminating their adverse effects on application integrity.
野性并发控制:现代应用程序完整性的实证研究
数据密集型“Web 2.0”Internet服务的兴起导致了一系列流行的新编程框架,它们共同体现了对象关系映射(Object-Relational Mapping, ORM)系统愿景的最新化身,尽管规模空前。在这项工作中,我们实证研究了现代orm支持的应用程序对数据库并发控制机制的使用和废弃。具体地说,我们将研究重点放在维护数据库完整性的外部或应用程序级机制的常用用法上,在一系列ORM系统中,这些机制通常采用声明性正确性标准或不变量的形式。我们定量地分析了这些机制在一系列使用Ruby on Rails ORM编写的开源应用程序中的使用情况,发现野性不变量是确保完整性的最流行的方法(从使用量来看,它比事务多37倍)。我们评估了这些野性不变量中哪些实际上确保了完整性(通过使用,高达86.9%),哪些—由于并发错误和缺乏数据库支持—可能导致数据损坏(其余),我们通过实验对其进行了量化。根据这些发现,我们为数据库系统设计人员提供了一些建议,以更好地支持这些现代ORM编程模式,从而消除它们对应用程序完整性的不利影响。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约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学术官方微信