Ozone:完全乱序的编排
编程语言
2024-07-16 v3
摘要
编排式编程是一种用于编写分布式应用的范式。它允许程序员编写一个称为编排的单一程序,该程序可被编译以生成应用中每个进程的正确实现。尽管编排提供了良好的静态保证,但当消息或进程发生延迟时,它们可能会表现出高延迟。这是因为编排中的进程通常以固定的、确定性的顺序执行,无法适应运行时消息到达的顺序。在非编排代码中,程序员可以通过允许进程乱序执行来解决此问题——例如,通过使用future或响应式编程。然而,在编排代码中,乱序的进程执行可能导致严重且微妙的错误,称为通信完整性违规(CIVs)。在本文中,我们为乱序进程开发了一个编排式编程模型,该模型能保证不存在CIVs和死锁。作为我们方法的一个应用,我们还在编排式编程语言Choral中引入了一个用于通过future进行安全非阻塞通信的API。该API允许进程乱序执行、并发参与多个编排,并处理无序的数据消息。我们提供了对该API的说明性评估,表明乱序执行可以通过将通信与计算重叠来减少延迟并提高吞吐量。
引用
@article{arxiv.2401.17403,
title = {Ozone: Fully Out-of-Order Choreographies},
author = {Dan Plyukhin and Marco Peressotti and Fabrizio Montesi},
journal= {arXiv preprint arXiv:2401.17403},
year = {2024}
}
备注
To appear ECOOP 2024. 26 pages, 22 Figures, 3 pages appendix