跳到主要内容
研究文章
开放式访问

证明高并发遍历正确

出版:2020年11月13日出版历史
跳过编辑注释部分

编者按

本文于2024年4月25日发布了更正。您可以从本引文页面的补充材料部分下载勘误表。

跳过摘要部分

摘要

现代高并发搜索数据结构(如搜索树)通过让操作在不进行任何同步的情况下遍历数据结构,获得了多核可扩展性和性能。然而,结果是,这些算法很难证明线性化,这需要确定遍历结果正确的时间点。问题是,在修改数据结构时对其进行遍历会导致复杂的行为,这就需要对数据结构的遍历和写入操作的所有交错进行复杂的推理。

在本文中,我们提出了一种通用的证明技术,与典型的并发推理和先前的证明技术相比,该技术以一种非常简单的方式证明了非同步遍历的正确性。我们的框架只依赖于遍历的顺序属性,以及一个概念上简单且广泛适用的关于算法写入方式改变数据结构的条件。确定目标数据结构满足我们的条件只需要简单的并发推理,而不需要考虑写入和读取的交互。使用我们的框架可以进一步简化这种推理。

为了演示我们的技术,我们将其应用于证明几个有趣且具有挑战性的并发二进制搜索树:逻辑排序AVL树、Citrus树和完全争用友好树。逻辑序树和完整的竞争友好树都超出了以往旨在简化线性化证明的方法的范围。

跳过补充材料部分

补充材料

oopsla20main-p13-p-视频.mp4

英里4

370.8 MB

工具书类

  1. 帕罗什·阿齐兹·阿卜杜拉(Parosh Aziz Abdulla)、弗雷德里克·哈齐扎(Frédéric Haziza)、卢卡斯·霍利克(Lukás Holík)、本特·琼森(Bengt Jonsson)和艾哈迈德·雷兹(Ahmed Rezine)。2013.高并发数据结构的集成规范和验证技术。在TACAS中。324-338.谷歌学者谷歌学者
  2. Daphna Amit、Noam Rinetzky、Thomas W.Reps、Mooly Sagiv和Eran Yahav。2007.验证线性化的抽象比较。CAV’07(LNCS),第4590卷。477-490.谷歌学者谷歌学者
  3. 玛雅·阿贝尔和哈吉特·阿提亚。2014.与RCU的并发更新:以搜索树为例。2014年PODC。谷歌学者谷歌学者数字图书馆数字图书馆
  4. Hagit Attiya、G.Ramalingam和Noam Rinetzky。2010.序列化的顺序验证。在第37届ACM SIGPLAN-SIGCT程序设计语言原理研讨会论文集上,POPL 2010,西班牙马德里,2010年1月17日至23日。31-42. https://doi.org/10.1145/1706299.1706305谷歌学者谷歌学者数字图书馆数字图书馆
  5. 理查德·博纳特(Richard Bornat)、克里斯蒂亚诺·加尔卡尼奥(Cristiano Calcagno)、彼得·奥赫恩(Peter W.O'Hearn)和马修·帕金森(Matthew J.Parkinson)。2005.分离逻辑中的权限核算。第32届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集,POPL 2005,美国加利福尼亚州长滩,2005年1月12-14日。259-270. https://doi.org/10.1145/1040305.1040327谷歌学者谷歌学者数字图书馆数字图书馆
  6. 艾哈迈德·博阿贾尼(Ahmed Bouajjani)、迈克尔·埃米(Michael Emmi)、康斯坦丁·埃纳(Constantin Enea)和贾德·哈姆扎(Jad Hamza)。2013.根据顺序规范验证并发程序。在ESOP’13(LNCS)第7792卷中。施普林格,290-309。谷歌学者谷歌学者数字图书馆数字图书馆
  7. 艾哈迈德·博阿贾尼(Ahmed Bouajjani)、迈克尔·埃米(Michael Emmi)、康斯坦丁·埃纳(Constantin Enea)和贾德·哈姆扎(Jad Hamza)。2015.关于将线性化降低为州可达性。自动化、语言与编程第42届国际学术讨论会,ICALP 2015,日本京都,2015年7月6日至10日,会议记录,第二部分。95-107.谷歌学者谷歌学者
  8. Ahmed Bouajjani、Michael Emmi、Constantin Enea和Suha Orhun Mutluelgil。2017.使用正向模拟证明线性化。2017年7月24日至28日在德国海德堡举行的计算机辅助验证第29届国际会议,CAV 2017,会议记录,第二部分。542-563. https://doi.org/10.1007/978-3-319-63390-9_28谷歌学者谷歌学者交叉引用交叉引用
  9. Nathan G.Bronson、Jared Casper、Hassan Chafi和Kunle Olukotun。2010年。实用并发二进制搜索树。在2010年PPoPP中。谷歌学者谷歌学者数字图书馆数字图书馆
  10. 斯蒂芬·布鲁克斯(Stephen D.Brookes)。2004.并发分离逻辑的语义。2004年8月31日至9月3日,英国伦敦,第15届国际会议,CONCUR 2004-货币理论,会议记录。16-34. https://doi.org/10.1007/978-3-540-28644-8_2谷歌学者谷歌学者交叉引用交叉引用
  11. 特雷弗·布朗(Trevor Brown)、费斯·艾伦(Faith Ellen)和埃里克·鲁珀特(Eric Ruppert)。2014年,非阻塞树木通用技术。2014年PPoPP中。谷歌学者谷歌学者数字图书馆数字图书馆
  12. 奥斯汀·T·克莱门茨(Austin T.Clements)、M·弗兰斯·卡索克(M.Frans Kaashoek)和尼科莱·泽尔多维奇(Nickolai Zeldovich)。2012.使用RCU平衡树的可扩展地址空间。ASPLOS 2012。谷歌学者谷歌学者数字图书馆数字图书馆
  13. Tyler Crain、Vincent Gramoli和Michel Raynal。2013年a。一个面向竞争的二进制搜索树。2013年欧洲标准普尔。谷歌学者谷歌学者数字图书馆数字图书馆
  14. Tyler Crain、Vincent Gramoli和Michel Raynal。2013年b。无热点非阻塞跳过列表。在ICDCS 2013中。谷歌学者谷歌学者
  15. Tyler Crain、Vincent Gramoli和Michel Raynal。2016.一个快速的面向竞争的二进制搜索树。并行处理信函26,03(2016)。谷歌学者谷歌学者交叉引用交叉引用
  16. 佩德罗·达·罗查·平托(Pedro da Rocha Pinto)、托马斯·丁斯代尔·杨(Thomas Dinsdale-Young)和菲利普·加德纳(Philippa Gardner)。2014.TaDA:时间和数据抽象逻辑。2014年7月28日至8月1日,在瑞典乌普萨拉举行的ECOOP 2014-面向对象编程第28届欧洲会议上。诉讼程序。207-231. https://doi.org/10.1007/978-3-662-44202-9_9谷歌学者谷歌学者数字图书馆数字图书馆
  17. 都铎·戴维(Tudor David)、拉希德·格拉乌伊(Rachid Guerraoui)和瓦西里厄斯·特里戈纳基斯(Vasileios Trigonakis)。2015.异步并发:扩展并发搜索数据结构的秘密。ASPLOS 2015。谷歌学者谷歌学者数字图书馆数字图书馆
  18. Mathieu Desnoyers、Paul E.McKenney、Alan S.Stern、Michel R.Dagenais和Jonathan Walpole。2012.读拷贝更新的用户级实施。IEEE传输。平行配送系统。23, 2 ( 2012 ), 375-382.谷歌学者谷歌学者数字图书馆数字图书馆
  19. 达娜·德拉赫斯勒(Dana Drachsler)、马丁·维切夫(Martin Vechev)和埃兰·雅哈(Eran Yahav)。2014.通过逻辑排序的实用并行二进制搜索树。PPoPP 2014。谷歌学者谷歌学者数字图书馆数字图书馆
  20. Cezara Dragoi、Ashutosh Gupta和Thomas A.Henzinger。2013.具有协同更新的并发对象的自动线性化证明。CAV’13(LNCS),第8044卷。施普林格,174-190年。谷歌学者谷歌学者
  21. Faith Ellen、Panagiota Fatourou、Eric Ruppert和Frank van Breugel。2010.非阻塞二进制搜索树。2010年PODC。谷歌学者谷歌学者
  22. 约塔姆·M·Y·费尔德曼(Yotam M.Y.Feldman)、康斯坦丁·埃纳(Constantin Enea)、亚当·莫里森(Adam Morrison)、诺姆·里内茨基(Noam Rinetzky)和莎伦·肖姆(Sharon Shoham)。2018.摆脱混乱:使用局部视图证明线性化。DISC 2018。谷歌学者谷歌学者
  23. 约塔姆·M·Y·费尔德曼(Yotam M.Y.Feldman)、阿特姆·凯扎(Artem Khyza)、康斯坦丁·埃纳(Constantin Enea)、亚当·莫里森(Adam Morrison)、阿列克桑达尔·纳内夫斯基(Aleksandar Nanevski)、诺姆·里内茨基(No。2020年,证明高并发遍历正确。CoRR(2020)。https://arxiv.org/abs/2010.00911谷歌学者谷歌学者
  24. 基尔·弗雷泽。2004年。实用的锁自由度。博士论文。剑桥大学计算机实验室。谷歌学者谷歌学者
  25. 文森特·格拉莫利。2015年,您对同步的了解比以往任何时候都多:同步测试,测量同步对并发算法的影响。2015年PPoPP中。谷歌学者谷歌学者数字图书馆数字图书馆
  26. 蒂莫西·哈里斯(Timothy L.Harris),2001年。非块链接列表的实用实现。在DISC 2001中。谷歌学者谷歌学者数字图书馆数字图书馆
  27. Steve Heller、Maurice Herlihy、Victor Luchangco、Mark Moir、Bill Scherer和Nir Shavit。2005.基于延迟并发列表的集合算法。在OPODIS 2005中。谷歌学者谷歌学者
  28. 托马斯·汉津格(Thomas A.Henzinger)、阿里·塞兹金(Ali Sezgin)和维克托·瓦菲亚迪斯(Viktor Vafeiadis)。2013.面向方面的线性化证明。符合。242-256.谷歌学者谷歌学者
  29. 莫里斯·赫利希(Maurice Herlihy)、尤西·列夫(Yossi Lev)、维克托·卢昌科(Victor Luchangco)和尼尔·沙维特(Nir Shavit)。2007年。一个简单的乐观跳过列表算法。在SIROCCO 2007中。谷歌学者谷歌学者数字图书馆数字图书馆
  30. 莫里斯·赫里希和尼尔·沙维特。2008年,《多处理器编程的艺术》。Morgan Kaufmann Publishers Inc.,美国加利福尼亚州旧金山。谷歌学者谷歌学者数字图书馆数字图书馆
  31. M.P.Herlihy和J.M.Wing。1990.线性化:并发对象的正确性条件。12, 3 ( 1990 ).谷歌学者谷歌学者
  32. 谢恩·霍利(Shane V.Howley)和杰里米·琼斯(Jeremy Jones)。2012.非阻塞内部二进制搜索树。2012年SPAA。谷歌学者谷歌学者
  33. 克利夫·琼斯。1983.(并行)程序的规范和设计。在IFIP大会上。321-332.谷歌学者谷歌学者
  34. 拉尔夫·荣格(Ralf Jung)、罗伯特·克雷伯斯(Robbert Krebbers)、雅克·亨利·朱丹(Jacques-Henri Jourdan)、亚历斯·比兹亚克(Ales Bizjak)、拉尔斯·比克达尔(Lars Birkedal)和德里克·德雷尔。2018.从头开始的Iris:高阶并发分离逻辑的模块化基础。J.功能。程序。28(2018),e20。https://doi.org/10.1017/S0956796818000151谷歌学者谷歌学者交叉引用交叉引用
  35. 拉尔夫·荣格(Ralf Jung)、鲁道夫·莱皮格雷(Rodolphe Lepigre)、高拉夫·帕塔萨拉西(Gaurav Parthasarathy)、玛丽安娜·拉波波特(Marianna Rapoport)、阿明·蒂马尼(Amin Timany)、德里克·德雷尔(Derek Dr。2020年,未来是我们的:分离逻辑中的预言变量。程序。ACM计划。Lang.4,POPL(2020),45:1-45:32。https://doi.org/10.1145/3371113谷歌学者谷歌学者数字图书馆数字图书馆
  36. 悉达斯·克里希纳(Siddharth Krishna)、尼萨·帕特尔(Nisarg Patel)、丹尼斯·沙沙(Dennis Shasha)和托马斯·维斯(Thomas Wies)。2020年。验证并发搜索结构模板。第41届ACM SIGPLAN编程语言设计与实现会议论文集,PLDI 2010。ACM公司。谷歌学者谷歌学者数字图书馆数字图书馆
  37. 悉达斯·克利须那(Siddharth Krishna)、丹尼斯·沙沙(Dennis E.Shasha)和托马斯·维斯(Thomas Wies)。2018.顺其自然:并发数据结构的组合抽象。PACMPL 2,POPL(2018),37:1-37:31。https://doi.org/10.1145/3158125谷歌学者谷歌学者数字图书馆数字图书馆
  38. Kfir Lev-Ari、Gregory V.Chockler和Idit Keidar。2015年a。一种证明数据结构线性化的构造方法。在DISC 205中。谷歌学者谷歌学者
  39. Kfir Lev-Ari、Gregory V.Chockler和Idit Keidar。2015年b。一种证明数据结构线性化的构造方法。分布式计算第29届国际研讨会,DISC 2015,日本东京,2015年10月7日至9日,会议记录。356-370. https://doi.org/10.1007/978-3-662-48653-5_24谷歌学者谷歌学者数字图书馆数字图书馆
  40. 鲁·莱·维尔德和阿列克桑达尔·纳内夫斯基。2013.粗粒度并发的主观辅助状态。2013年1月23日至25日,在意大利罗马举行的第40届ACM SIGPLAN-SIGCT编程语言原理年度研讨会上,POPL’13。561-574. https://doi.org/10.1145/2429069.2429134谷歌学者谷歌学者数字图书馆数字图书馆
  41. 梁洪进和冯新宇。2013.使用非固定线性化点对线性化能力进行模块化验证。2013年6月16日至19日,在美国华盛顿州西雅图举行的ACM SIGPLAN编程语言设计与实现会议上,PLDI’13。459-470.谷歌学者谷歌学者数字图书馆数字图书馆
  42. 毛延东(Yandong Mao)、埃迪·科勒(Eddie Kohler)和罗伯特·塔潘·莫里斯(Robert Tappan Morris),2012年。快速多核密钥值存储的缓存技术。在EuroSys 2012中。谷歌学者谷歌学者数字图书馆数字图书馆
  43. 保罗·麦肯尼。2004.利用延迟销毁:分析操作系统内核中的读-复制-更新技术。博士论文。OGI。谷歌学者谷歌学者数字图书馆数字图书馆
  44. Paul E.McKenney和John D.Slingwine。1998.读-副本更新:使用执行历史解决并发问题。在PDCS中。谷歌学者谷歌学者
  45. Maged M.Michael。2002.高性能动态无锁哈希表和基于列表的集。2002年SPAA。谷歌学者谷歌学者
  46. Aleksandar Nanevski、Anindya Banerjee、Germán Andrés Delbianco和Ignacio Fábregas。2019.在分离逻辑中指定并发程序:形态和模拟。程序。ACM计划。Lang.3,OOPSLA(2019),161:1-161:30。https://doi.org/10.1145/3360587谷歌学者谷歌学者数字图书馆数字图书馆
  47. Aravind Natarajan和Neeraj Mittal。2014.快速并发无锁二进制搜索树。2014年PPoPP中。谷歌学者谷歌学者数字图书馆数字图书馆
  48. 彼得·奥赫恩(Peter W.O'Hearn)。2004.资源、并发性和局部推理。2004年8月31日至9月3日,英国伦敦,第15届国际会议,CONCUR 2004-货币理论,会议记录。49-67. https://doi.org/10.1007/978-3-540-28644-8_4谷歌学者谷歌学者交叉引用交叉引用
  49. P.W.O'Hearn、N.Rinetzky、M.T.Vechev、E.Yahav和G.Yorsh。2010.用后视验证线性化。2010年PODC。谷歌学者谷歌学者
  50. Susan S.Owicki和David Gries。1976.验证并行程序的属性:公理方法。Commun公司。ACM 19,5(1976),279-285。https://doi.org/10.1145/360051.360224谷歌学者谷歌学者数字图书馆数字图书馆
  51. Matthew J.Parkinson、Richard Bornat和Peter W.O'Hearn。2007.非阻塞堆栈的模块化验证。第34届ACM SIGPLAN-SIGACT编程语言原理研讨会会议记录,POPL 2007,法国尼斯,2007年1月17-19日。297-302. https://doi.org/10.1145/1190216.1190261谷歌学者谷歌学者数字图书馆数字图书馆
  52. 杜鹃·拉德(Azalea Raad)、朱尔斯·维拉德(Jules Villard)和菲利普·加德纳(Philippa Gardner)。CoLoSL:并行局部主观逻辑。《编程语言与系统——2015年第24届欧洲编程研讨会》,ESOP,作为欧洲软件理论与实践联合会议的一部分,ETAPS 2015,英国伦敦,2015年4月11日至18日。诉讼程序。710-735. https://doi.org/10.1007/978-3-662-46669-8_29谷歌学者谷歌学者交叉引用交叉引用
  53. Arunmoezhi Ramachandran和Neeraj Mittal。2015.快速无锁内部二进制搜索树。2015年ICDCN。谷歌学者谷歌学者数字图书馆数字图书馆
  54. 伊利亚·谢尔盖(Ilya Sergey)、阿列克桑达尔·纳内夫斯基(Aleksandar Nanevski)和安妮迪亚·班纳吉(Anindya Banerjee)。2015.使用历史和主观性指定和验证并发算法。《编程语言与系统——2015年第24届欧洲编程研讨会》,ESOP,作为欧洲软件理论与实践联合会议的一部分,ETAPS 2015,英国伦敦,2015年4月11日至18日。诉讼程序。333-358. https://doi.org/10.1007/978-3-662-46669-8_14谷歌学者谷歌学者数字图书馆数字图书馆
  55. Ilya Sergey、Aleksandar Nanevski、Anindya Banerjee和Germán Andrés Delbianco。2016.作为非线性并发对象正确性条件的Hoare-style规范。2016年ACM SIGPLAN面向对象编程、系统、语言和应用国际会议论文集,OOPSLA 2016,SPLASH 2016的一部分,荷兰阿姆斯特丹,2016年10月30日至11月4日。92-110. https://doi.org/10.1145/2983990.2983999谷歌学者谷歌学者数字图书馆数字图书馆
  56. 丹尼斯·沙沙和内森·古德曼。1988.并发搜索结构算法。ACM变速器。数据库系统。13, 1 ( 1988 ), 53-90.谷歌学者谷歌学者数字图书馆数字图书馆
  57. Josh Triplett、Paul E.McKenney和Jonathan Walpole。2011.通过相对论编程实现可调整大小、可扩展、并发哈希表。在USENIX ATC 2011中。谷歌学者谷歌学者数字图书馆数字图书馆
  58. 司提芬·图、郑文婷、埃迪·科勒、芭芭拉·利斯科夫和塞缪尔·麦登。2013年,多核内存数据库中的快速交易。SOSP 2013中。谷歌学者谷歌学者
  59. 亚伦·图伦(Aaron Turon)、德里克·德雷尔(Derek Dreyer)和拉尔斯·比克达尔(Lars Birkedal)。2013.在高阶并发逻辑中统一精化和囤积式推理。2013年9月25日至27日在美国马萨诸塞州波士顿举行的ACM SIGPLAN功能编程国际会议上。377-390. https://doi.org/10.1145/2500365.2500600谷歌学者谷歌学者数字图书馆数字图书馆
  60. V.瓦菲亚迪斯。2008.模块化细粒度并发验证。博士论文。剑桥大学。谷歌学者谷歌学者
  61. 维克托·瓦菲亚迪斯。2009.验证线性化的形状值抽象。在VMCAI'09中:程序。第10届国际验证、模型检查和抽象解释会议(LNCS),第5403卷。施普林格,335-348。谷歌学者谷歌学者
  62. 维克托·瓦菲亚迪斯。2010.自动证明线性化。2010年7月15日至19日在英国爱丁堡举行的2010年CAV第22届国际会议上的计算机辅助验证。《会议录》(计算机科学讲稿),泰西尔·图利、拜伦·库克和保罗·杰克逊(编辑),第6174卷。施普林格,450-464。https://doi.org/10.1007/978-3642-14295-6_40谷歌学者谷歌学者数字图书馆数字图书馆
  63. 维克托·瓦菲亚迪斯、莫里斯·赫利希、托尼·霍尔和马克·夏皮罗。2006.基于懒惰并发列表的集合实现的安全证明。技术报告UCAM-CL-TR-659。剑桥大学计算机实验室。谷歌学者谷歌学者
  64. 维克托·瓦菲亚迪斯、莫里斯·赫利希、托尼·霍尔和马克·夏皮罗。2016。证明高度并发的可线性化对象的正确性。在2006年PPOPP中。美国医学会,129-136。谷歌学者谷歌学者
  65. He Zhu、Gustavo Petri和Suresh Jagannathan。2015.Poling:SMT辅助线性化证明。计算机辅助验证第27届国际会议,2015年7月18日至24日,美国加利福尼亚州旧金山,CAV 2015,会议记录,第二部分。3-19.谷歌学者谷歌学者

索引术语

  1. 证明高并发遍历正确

      建议

      评论

      登录选项

      检查您是否可以通过登录凭据或您的机构访问本文。

      登录

      完全访问权限

      • 发布于

        封面图片美国计算机学会编程语言会议录
        美国计算机学会程序设计语言会议录 第4卷,发行OOPSLA
        2020年11月
        3108页
        EISSN公司:2475-1421
        内政部:10.1145/3436718
        期刊目录

        版权所有©2020所有者/作者

        本作品根据Creative Commons Attribution International 4.0许可证授权。

        出版商

        计算机协会

        美国纽约州纽约市

        出版历史

        • 出版:2020年11月13日
        发布于太平洋石油公司第4卷,发行OOPSLA

        权限

        请求有关此文章的权限。

        请求权限

        检查更新

        限定符

        • 研究文章

      PDF格式

      以PDF文件查看或下载。

      PDF格式

      电子阅读器

      使用eReader联机查看。

      电子阅读器