CaMELot: Catching and Mitigating Event-Loop Concurrency Issues
CaMELot:捕获并缓解事件循环并发问题
基本信息
- 批准号:EP/V007165/1
- 负责人:
- 金额:$ 26.73万
- 依托单位:
- 依托单位国家:英国
- 项目类别:Research Grant
- 财政年份:2021
- 资助国家:英国
- 起止时间:2021 至 无数据
- 项目状态:已结题
- 来源:
- 关键词:
项目摘要
Most modern computer applications depend in some way or another on computations that are performed by server applications on the internet. More and more of these server applications are now built as so-called microservices, which allow developers to gradually update or fix issues in unrelated parts of a larger application, and therefore, have become popular. Many of these microservices avoid certain types of concurrency issues by design. Unfortunately, they still suffer from other kinds of concurrency issues, for example when multiple online customers try to reserve the same seats at the same time.For software engineers, it is hard to test for all possible concurrent interactions. In practice, this means that only simple concurrency issues are reliably detected during testing. Complex issues can however easily slip through and make it into server applications and then handle client requests incorrectly. One example of such a concurrency issue appeared at Nasdaq when the Facebook stock was traded for the first time, resulting in the loss of millions of dollars.Our goal is to develop techniques that detect concurrency issues automatically at run time, to be able to circumvent them, and enable developers to fix them, using detailed information gathered by the detection techniques. Researchers have shown that one can detect and avoid issues, for instance by changing the order in which client requests are processed. In practice however, current techniques slow server applications down significantly, which make these techniques too costly to be used. Our aim is to dynamically balance the need for accurate information and minimize slow down. We conjecture that we can get most practical benefits while only rarely tracking precise details of how program code executes. In addition to automatically preventing concurrency issues to cause problems, we will also use the obtained information to provide feedback to developers so that they can fix the underlying issue in their software.Thus, overall the goal of this research project is to make server applications, and specifically microservices, more robust and resilient to software bugs that are hard to test for and therefore typically remain undiscovered until they cause major issues for customers or companies.Our work will result in the development of adaptive techniques that detect concurrency issues, and automatically tradeoff accuracy and run-time overhead, to be usable in practice. Furthermore, the detection techniques will be used to provide actionable input to the software developers, so that the concurrency issue can be fixed and therefore be prevented reliably in the future.To evaluate this work, we will collect various different types of concurrency issues and make them openly available. This collection will be based on issues from industrial systems and derived from theoretical scenarios for highly complex bugs. We include these theoretical scenarios, since such complex bugs are hard to diagnose and test for, they likely remain undiagnosed and undocumented in practice, but have the potential of causing major disruptions.Finally, we will build and evaluate our proposed techniques based on a system designed for concurrency research. The system uses the GraalVM technology of Oracle Labs, which allows us to prototype at the level of state-of-the-art systems, while keeping the development effort manageable for a small team.
大多数现代计算机应用程序都以某种方式依赖于互联网上服务器应用程序执行的计算。越来越多的服务器应用程序现在被构建为所谓的微服务,它允许开发人员逐步更新或修复大型应用程序中不相关部分的问题,因此变得流行起来。许多微服务在设计上避免了某些类型的并发性问题。不幸的是,它们仍然存在其他类型的并发性问题,例如,当多个在线客户试图同时预订相同的座位时。对于软件工程师来说,很难测试所有可能的并发交互。在实践中,这意味着只有简单的并发性问题才能在测试期间被可靠地检测到。然而,复杂的问题很容易渗透到服务器应用程序中,然后错误地处理客户机请求。这种并发性问题的一个例子出现在纳斯达克,当时Facebook股票首次交易,导致数百万美元的损失。我们的目标是开发在运行时自动检测并发性问题的技术,以便能够绕过并发性问题,并使开发人员能够使用检测技术收集的详细信息来修复并发性问题。研究人员已经证明,可以检测并避免问题,例如,通过改变处理客户端请求的顺序。然而,在实践中,目前的技术显著降低了服务器应用程序的速度,这使得这些技术的使用成本太高。我们的目标是动态平衡对准确信息的需求,并最大限度地降低速度。我们推测,在很少跟踪程序代码执行的精确细节的情况下,我们可以获得最实际的好处。除了自动防止并发问题导致问题之外,我们还将使用获得的信息向开发人员提供反馈,以便他们可以修复软件中的潜在问题。因此,本研究项目的总体目标是使服务器应用程序,特别是微服务,更健壮,更有弹性,以应对难以测试的软件错误,因此通常直到它们给客户或公司造成重大问题时才会被发现。我们的工作将导致自适应技术的开发,这些技术可以检测并发性问题,并自动权衡准确性和运行时开销,以便在实践中使用。此外,检测技术将用于向软件开发人员提供可操作的输入,以便可以修复并发性问题,从而在将来可靠地防止并发性问题。为了评估这项工作,我们将收集各种不同类型的并发性问题,并使它们公开可用。这个集合将基于来自工业系统的问题,并衍生于高度复杂的错误的理论场景。我们包含了这些理论场景,因为这些复杂的bug很难诊断和测试,它们在实践中可能仍然未被诊断和记录,但有可能导致重大中断。最后,我们将基于一个为并发研究而设计的系统来构建和评估我们提出的技术。该系统使用了Oracle实验室的GraalVM技术,它允许我们在最先进的系统水平上进行原型设计,同时保持小团队的开发工作可管理。
项目成果
期刊论文数量(8)
专著数量(0)
科研奖励数量(0)
会议论文数量(0)
专利数量(0)
Live Objects All The Way Down: Removing the Barriers between Applications and Virtual Machines
始终保持活动对象:消除应用程序和虚拟机之间的障碍
- DOI:10.22152/programming-journal.org/2024/8/5
- 发表时间:2023
- 期刊:
- 影响因子:0
- 作者:Pimás J
- 通讯作者:Pimás J
Optimizing the Order of Bytecode Handlers in Interpreters using a Genetic Algorithm
使用遗传算法优化解释器中字节码处理程序的顺序
- DOI:10.1145/3555776.3577712
- 发表时间:2023
- 期刊:
- 影响因子:0
- 作者:Huang W
- 通讯作者:Huang W
Dynamic Library Compartmentalization
动态库划分
- DOI:10.1145/3618305.3623604
- 发表时间:2023
- 期刊:
- 影响因子:0
- 作者:Larose O
- 通讯作者:Larose O
Who You Gonna Call: Analyzing the Run-Time Call-Site Behavior of Ruby Applications
你要打电话给谁:分析 Ruby 应用程序的运行时调用站点行为
- DOI:10.1145/3563834.3567538
- 发表时间:2022
- 期刊:
- 影响因子:0
- 作者:Kaleba S
- 通讯作者:Kaleba S
Profile Guided Offline Optimization of Hidden Class Graphs for JavaScript VMs in Embedded Systems
嵌入式系统中 JavaScript VM 隐藏类图的配置文件引导离线优化
- DOI:
- 发表时间:2022
- 期刊:
- 影响因子:0
- 作者:Tomoharu Ugawa;Stefan Marr;Richard E. Jones
- 通讯作者:Richard E. Jones
{{
item.title }}
{{ item.translation_title }}
- DOI:
{{ item.doi }} - 发表时间:
{{ item.publish_year }} - 期刊:
- 影响因子:{{ item.factor }}
- 作者:
{{ item.authors }} - 通讯作者:
{{ item.author }}
数据更新时间:{{ journalArticles.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ monograph.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ sciAawards.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ conferencePapers.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ patent.updateTime }}
Stefan Marr其他文献
Efficient and deterministic record & replay for actor languages
高效且确定的记录
- DOI:
- 发表时间:
2018 - 期刊:
- 影响因子:0
- 作者:
Dominik Aumayr;Stefan Marr;Clément Béra;E. G. Boix;H. Mössenböck - 通讯作者:
H. Mössenböck
The SOM family: virtual machines for teaching and research
SOM 系列:用于教学和研究的虚拟机
- DOI:
10.1145/1822090.1822098 - 发表时间:
2010 - 期刊:
- 影响因子:0
- 作者:
M. Haupt;R. Hirschfeld;Tobias Pape;Gregor Gabrysiak;Stefan Marr;A. Bergmann;Arvid Heise;Matthias Kleine;R. Krahn - 通讯作者:
R. Krahn
Capturing High-level Nondeterminism in Concurrent Programs for Practical Concurrency Model Agnostic Record & Replay
捕获并发程序中的高级不确定性以实现与实际并发模型无关的记录
- DOI:
- 发表时间:
2021 - 期刊:
- 影响因子:0
- 作者:
Dominik Aumayr;Stefan Marr;Sophie Kaleba;E. G. Boix;H. Mössenböck - 通讯作者:
H. Mössenböck
Asynchronous snapshots of actor systems for latency-sensitive applications
适用于延迟敏感应用程序的 Actor 系统的异步快照
- DOI:
- 发表时间:
2019 - 期刊:
- 影响因子:0
- 作者:
Dominik Aumayr;Stefan Marr;E. G. Boix;H. Mössenböck - 通讯作者:
H. Mössenböck
Towards an actor-based concurrent machine model
迈向基于参与者的并发机器模型
- DOI:
10.1145/1565824.1565825 - 发表时间:
2009 - 期刊:
- 影响因子:0
- 作者:
Hans Schippers;T. V. Cutsem;Stefan Marr;M. Haupt;R. Hirschfeld - 通讯作者:
R. Hirschfeld
Stefan Marr的其他文献
{{
item.title }}
{{ item.translation_title }}
- DOI:
{{ item.doi }} - 发表时间:
{{ item.publish_year }} - 期刊:
- 影响因子:{{ item.factor }}
- 作者:
{{ item.authors }} - 通讯作者:
{{ item.author }}
相似海外基金
Catching antibiotic factories in action
捕捉行动中的抗生素工厂
- 批准号:
2890998 - 财政年份:2023
- 资助金额:
$ 26.73万 - 项目类别:
Studentship
COVID-19 Preventive Health Inventory: Evaluating a primary care approach to catching-up on needed chronic and preventive care for Veterans
COVID-19 预防性健康清单:评估初级保健方法,以赶上退伍军人所需的慢性和预防性护理
- 批准号:
10538144 - 财政年份:2022
- 资助金额:
$ 26.73万 - 项目类别:
Catching the Silent Killer Before it Strikes - A Novel Blood Test For All Ovarian Cancers
防患于未然——针对所有卵巢癌的新型血液检测
- 批准号:
10025177 - 财政年份:2022
- 资助金额:
$ 26.73万 - 项目类别:
Collaborative R&D
Catching the fast waves: high speed RF sensing using Brillouin scattering
捕捉快波:利用布里渊散射进行高速射频传感
- 批准号:
DP220101431 - 财政年份:2022
- 资助金额:
$ 26.73万 - 项目类别:
Discovery Projects
Studies on catching performance of newston net for standardization of microplastics sampling method
纽斯顿网捕集性能研究,用于标准化微塑料采样方法
- 批准号:
20H03060 - 财政年份:2020
- 资助金额:
$ 26.73万 - 项目类别:
Grant-in-Aid for Scientific Research (B)
CATCHing up: A continuation of the Coordination and Activity Tracking in CHildren cohort study
赶上:儿童队列研究协调和活动跟踪的延续
- 批准号:
418821 - 财政年份:2020
- 资助金额:
$ 26.73万 - 项目类别:
Operating Grants
Intellectural Property System of Technological Catching-up: Comparison of China, India and Thailand
技术追赶的知识产权制度:中国、印度和泰国的比较
- 批准号:
19KK0035 - 财政年份:2019
- 资助金额:
$ 26.73万 - 项目类别:
Fund for the Promotion of Joint International Research (Fostering Joint International Research (B))
Catching up the Science of Problem Properties: The Microspatial Dynamics of Crime, Disorder, and Property Management
追赶问题财产的科学:犯罪、骚乱和财产管理的微观空间动力学
- 批准号:
1921281 - 财政年份:2019
- 资助金额:
$ 26.73万 - 项目类别:
Standard Grant
Doctoral Dissertation Research: Catching the cognitive consequences of bilingual language processing on the fly
博士论文研究:即时捕捉双语语言处理的认知后果
- 批准号:
1946051 - 财政年份:2019
- 资助金额:
$ 26.73万 - 项目类别:
Standard Grant
Effectiveness of backhanded catching in baseball infielder
棒球内野手反手接球的有效性
- 批准号:
19K20038 - 财政年份:2019
- 资助金额:
$ 26.73万 - 项目类别:
Grant-in-Aid for Early-Career Scientists