主机名:page-component-848d4c4894-5nwft总加载时间:0渲染日期:2024-05-14T22:21:48.061Z有数据问题:falsehasContentIssue为false

分布式系统建模、测试和执行的协议组合器

部分内容: PADL 2019年会议

剑桥大学出版社在线出版:2021年2月15日

克里斯托弗·安德森
附属:
丹麦奥胡斯奥胡斯大学计算机科学系(电子邮件:kristoffer@arndalandersen.dk)
伊利亚·塞尔吉
附属:
新加坡国立大学计算学院、亚勒美国学院和新加坡国立大学(电子邮件:ilya.sergey@yale-nus.edu.sg)
权限和权限 [在新窗口中打开]

摘要

核心共享和HTML视图不适用于此内容。但是,由于您有权访问此内容,可以通过“保存PDF”操作按钮获得完整的PDF。

分布式系统很难正确建模、测试、调试和教学。他们的教科书定义,通常以复制状态机的形式给出,简明扼要,但如果天真地转换为可运行的实现,则容易引入编程错误。

在这项工作中,我们提出分布式协议组合器(DPC),一种声明性编程框架,旨在弥合规范和分布式系统可运行实现之间的差距,并促进其建模、测试和执行。DPC基于最先进的逻辑,用于组成系统验证。DPC的贡献在于它是一个新的程序级原语家族,它有助于用较小的组件构建大型分布式系统,简化最常见的异步消息传递通信模式的使用,并为系统的测试和用户友好的动态验证提供了机制。本文描述了框架设计背后的主要思想,并介绍了它在Haskell中的实现。我们通过一系列特征示例介绍DPC,并在文献中的一些分布式协议上展示它。

本文扩展了我们之前的会议出版物(Andersen&Sergey,2019a) 通过对协议及其实现的随机测试的探索,以及对协议的有界模型检查的额外案例研究。

类型
研究文章
版权
©作者,2021年。剑桥大学出版社出版

工具书类

阿达姆森,,克里斯托弗,奎斯特,莫勒,安德斯,卡里姆,雷兹瓦纳,斯里德哈拉姆,马努,提示,弗兰克&,Koushik公司. (2017). 通过控制不确定性修复事件竞争错误。第289–299页,共页:ICSE.ACM公司。谷歌学者
安科纳,达维德,波诺,薇薇安娜,布拉韦蒂,马里奥,坎波斯,乔安娜,卡斯塔尼亚,朱塞佩,丹尼·卢,皮尔雷·马洛,同性恋,西蒙·J。,热斯贝尔,,贾基诺,埃琳娜,,雷蒙德,约翰森,艾纳·布洛克,马丁斯,弗朗西斯科,马斯卡迪,薇薇安娜,蒙特西,法布里西奥,内科娃,鲁米亚娜,Ng公司,尼古拉斯,帕多瓦尼,卢卡,瓦康塞洛斯,瓦斯科T。&吉田,伸子. (2016).编程语言中的行为类型.编程语言的基础和趋势,(2-3),95230.交叉参考谷歌学者
安徒生,克里斯托弗只是阿恩达尔&谢尔盖,伊利亚. (2019a) ●●●●。分布式协议组合器。 169186 共:PADLLNCS,第11372卷。斯普林格。交叉参考谷歌学者
安徒生,克里斯托弗只是阿恩达尔&谢尔盖,伊利亚. (2019b) ●●●●。分布式协议组合器:实现。https://doi.org/10.5281/zenodo.3902686.交叉参考谷歌学者
布雷迪,埃德温. (2017).并发通信系统的类型驱动开发.计算机科学(AGH),18().谷歌学者
钱德拉,图沙尔,格雷塞默,罗伯特&红石,约书亚. (2007). 帕克索斯活了下来:一个工程的观点。 398407 共:PODC.ACM。谷歌学者
克莱森,科恩&休斯,约翰. (2011).Quickcheck:用于随机测试haskell程序的轻量级工具.Acm sigplan通知,46(4),5364.交叉参考谷歌学者
Coq开发团队. (2020).Coq证明助理参考手册。可从网址:http://coq.inria.fr.谷歌学者
德赛,安库什,古普塔,维韦克,杰克逊,伊桑·K。,卡迪尔,沙恣,拉贾马尼,斯里拉姆·K。&祖弗里,达米恩. (2013). P: 安全的异步事件驱动编程。 321332 共:PLDI.ACM公司。谷歌学者
德赛,安库什,Phanishayee公司,阿马尔,卡迪尔,沙恣&塞希亚,桑吉特. (2018). 动态分布式系统的组合编程和测试。PACMPL公司,2(OOPSLA),159:1–159:30。谷歌学者
丁斯代尔-杨,托马斯,多德,迈克,加德纳,菲利普,帕金森氏症,马修·J。&瓦菲亚迪斯,维克多. (2010). 并发抽象谓词。 504528 共:ECOOP.LNCS,第6183卷。斯普林格。谷歌学者
德拉戈伊,切扎拉,亨廷格,托马斯A。&祖弗里,达米恩. (2016). PSync:一种用于容错分布式算法的部分同步语言。 400415 共:POPL.ACM公司。谷歌学者
芬德勒,罗伯特·布鲁斯&费雷森,马提亚斯. (2002).高阶函数合同. 4859 第页,共页:ICFP.ACM公司.谷歌学者
加尔卡·佩雷斯,阿尔瓦罗,戈茨曼,阿列克谢,梅什曼,尤里&谢尔盖,伊利亚. (2018). 帕克索斯共识,解构和抽象。 912939 第页,共页:员工持股计划.LNCS,第10801卷。斯普林格。谷歌学者
戈默斯塔特,汉娜,,利明&普芬宁,弗兰克. (2018). 会话类型的并发合同。 771798 第页,共页:员工持股计划.LNCS,第10801卷。斯普林格。谷歌学者
灰色,詹姆斯·N·。(1978).关于数据库操作系统的说明. 393481 的:在操作系统中.施普林格.谷歌学者
霍布利策,克里斯,豪厄尔,乔恩,卡普里特索斯,马诺斯,洛奇,雅各布·R·。,帕尔诺,布莱恩,罗伯茨,迈克尔·L·。,塞蒂,Srinath电视台。&Zill公司,布瑞恩. (2015). IronFleet:证明实际的分布式系统是正确的。 117 共:SOSP.ACM公司。谷歌学者
海特尔,汉斯,拉内塞,伊凡,瓦康塞洛斯,瓦斯科T。,凯雷斯,卢斯,碳纤维,马可,丹尼·卢,皮尔雷·马洛,莫斯特鲁斯,季米特里斯,帕多瓦尼,卢卡,拉瓦拉,安托尼奥,托斯托,埃米利奥,维埃拉,雨果·托雷斯&扎瓦塔罗,詹路易吉. (2016).会话类型和行为合同的基础.ACM计算。调查。,49(1), 3:1–3:36.交叉参考谷歌学者
琼斯,悬崖B。(1983).干扰程序开发方法的初步步骤.编程语言和系统上的Acm事务,5(4),596619.交叉参考谷歌学者
基利安,查尔斯·埃德温,安德森,詹姆斯·W·。,布罗,赖安,贾拉,兰吉特&瓦赫达特,阿明·M。(2007). Mace:构建分布式系统的语言支持。 179188 共:PLDI.ACM公司。谷歌学者
克莱普曼,马丁2016年2月。如何进行分布式锁定.https://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html.谷歌学者
克罗格·杰斯佩森,莫顿,蒂曼尼,阿明,Ohlenbusch公司,玛丽特·埃德娜,格雷格森,西蒙·奥德谢德&比克达尔,拉尔斯. (2020). Aneris:分布式系统模块化推理的机械化逻辑。 336365 第页,共页:员工持股计划LNCS,第12075卷。斯普林格。谷歌学者
兰波特,莱斯利. (1998).兼职议会.ACM托拉斯,16(2),133169.谷歌学者
兰波特,莱斯利. (2001).帕克索斯变得简单.谷歌学者
兰波特,莱斯利&施耐德,弗雷德·B。(1985). 规范和验证的正式基础。 203285 of:分布式系统:规范的方法和工具,高级课程.LNCS,第190卷。斯普林格。谷歌学者
灯具,巴特勒·W·。(1996). 如何使用共识构建高可用性系统。WDAG公司.交叉参考谷歌学者
兰格,朱利安&托斯托,埃米利奥. (2012). 从本地会话类型合成编排。 225239 共:CONCURLNCS,第7454卷。斯普林格。谷歌学者
莱奥尼尼,洛伦佐,里维埃,艾蒂安&Felber公司,帕斯卡. (2009). SPLAY:分布式系统评估变得很简单(或者如何轻而易举地将想法转化为实时系统)。 185198 第页,共页:NSDI.USENIX协会。谷歌学者
,,哈达克,保罗&琼斯,马克·P。(1995). 单声道变压器和模块化口译员。 333343 共:POPL.ACM出版社。谷歌学者
线路接口单元,燕红A。,斯托勒,斯科特·D·。,,&戈尔博维茨基,迈克尔. (2012).分布式算法从清晰到高效. 395410 第页,共页:OOPSLA.ACM公司.谷歌学者
梅尔格拉蒂,埃尔南·C。&帕多瓦尼,卢卡. (2017). 高阶会话的陪衬合同。程序。ACM程序。语言。,1(ICFP),35:135:29.谷歌学者
纳内夫斯基,阿列克桑达尔,莫里塞特,格雷格,希纳尔,阿维,戈维罗,保罗&比克达尔,拉尔斯. (2008). Ynot:命令式程序的依赖类型。 229240 第页,共页:ICFP.谷歌学者
纽科姆,克里斯,Rath公司,提姆,,风扇,蒙特亚努,博格丹,布鲁克,马克&迪尔杜夫,迈克尔. (2015).Amazon web服务如何使用正式方法.Commun公司。ACM公司,58(4).交叉参考谷歌学者
奥赫恩,彼得·W·。,雷诺,约翰·C·。&,红seok. (2001).关于改变数据结构的程序的局部推理.CSL公司。LNCS公司,体积。2142.施普林格.谷歌学者
帕顿,奥德,麦克米兰,肯尼思·L·。,熊猫,奥罗吉特,萨吉夫,穆利(Mooly)&肖姆,莎伦. (2016). 常春藤:通过交互式泛化进行安全验证。 614630 共:PLDI.ACM公司。谷歌学者
普芬宁,弗兰克&埃利奥特,圆锥. (1988). 高阶抽象语法。 199208 共:PLDI.ACM公司。谷歌学者
普雷尔,乔治&谢尔盖,伊利亚. (2018). 机械化区块链共识。 7890共:CPP。ACM公司。谷歌学者
谢尔盖,伊利亚,纳内夫斯基,阿列克桑达尔,班纳吉,安妮迪娅&德尔比安科,热曼·安德雷斯. (2016). Hoare-style规范作为非线性并发对象的正确性条件。 92110 第页,共页:OOPSLA.ACM公司。谷歌学者
谢尔盖,伊利亚,威尔科克斯,詹姆斯·R·。&塔特洛克,扎卡里. (2018). 使用分布式协议进行编程和验证。PACMPL,2(POPL),28:1–28:30。谷歌学者
范·雷内西,罗贝特&阿尔廷布肯,德尼. (2015).帕克索斯制作得相当复杂.ACM组件。调查。,47(), 42:142:36.交叉参考谷歌学者
威库姆,格哈德&轮毂,戈特弗里德. (2002).事务信息系统:并发控制和恢复的理论、算法和实践.摩根考夫曼.谷歌学者
威尔科克斯,詹姆斯·R·。,呜呜,道格,潘切卡,帕维尔,塔特洛克,扎卡里,,Xi(希),恩斯特,迈克尔·D·。&安德森,托马斯·E·。(2015). Verdi:用于实现和正式验证分布式系统的框架。 357368 共:PLDI.ACM公司。谷歌学者
威尔科克斯,詹姆斯·R·。,谢尔盖,伊利亚&塔特洛克,扎卡里. (2017). 模块验证分布式系统的编程语言抽象。 19时1分19:12 第页,共页:SNAPL.谷歌学者
提交响应

讨论

尚未发布此文章的讨论。