首页 > 最新文献

Proceedings of the 22nd ACM SIGPLAN International Workshop on Erlang最新文献

英文 中文
TLS the Erlang/OTP Way (Experience Report) TLS的Erlang/OTP方式(经验报告)
Pub Date : 2023-08-30 DOI: 10.1145/3609022.3609414
Ingela Anderton Andin, Raimo Niskanen, Péter Dimitrov, Kiko Fernandez-Reyes
The Transport Layer Security (TLS) protocol is one of the most used protocols to ensure data privacy, integrity and authenticity on the Internet. Erlang/OTP's TLS implementation is widely used in industry, and especially in the telecommunication sector. This paper describes an overview of the TLS protocol in the context of Erlang. We explain Erlang/OTP's TLS protocol design and implementation, optimizations, a benchmark evaluation of the Erlang TLS protocol implementation against previous Erlang/OTP's TLS implementations, and a benchmark comparison against the Go's TLS implementation.
传输层安全(TLS)协议是Internet上最常用的保证数据保密性、完整性和真实性的协议之一。Erlang/OTP的TLS实现广泛应用于工业领域,尤其是电信领域。本文概述了在Erlang环境下的TLS协议。我们解释了Erlang/OTP的TLS协议设计和实现、优化、Erlang TLS协议实现与以前的Erlang/OTP TLS实现的基准评估,以及与Go的TLS实现的基准比较。
{"title":"TLS the Erlang/OTP Way (Experience Report)","authors":"Ingela Anderton Andin, Raimo Niskanen, Péter Dimitrov, Kiko Fernandez-Reyes","doi":"10.1145/3609022.3609414","DOIUrl":"https://doi.org/10.1145/3609022.3609414","url":null,"abstract":"The Transport Layer Security (TLS) protocol is one of the most used protocols to ensure data privacy, integrity and authenticity on the Internet. Erlang/OTP's TLS implementation is widely used in industry, and especially in the telecommunication sector. This paper describes an overview of the TLS protocol in the context of Erlang. We explain Erlang/OTP's TLS protocol design and implementation, optimizations, a benchmark evaluation of the Erlang TLS protocol implementation against previous Erlang/OTP's TLS implementations, and a benchmark comparison against the Go's TLS implementation.","PeriodicalId":270362,"journal":{"name":"Proceedings of the 22nd ACM SIGPLAN International Workshop on Erlang","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2023-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116668163","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Code Analysis at WhatsApp (Keynote) WhatsApp的代码分析(Keynote)
Pub Date : 2023-08-30 DOI: 10.1145/3609022.3615585
Ke Mao
In the ever-evolving world of software development, code analysis stands as a critical component for quality and efficiency. This keynote will present an overview of code analysis tools at WhatsApp, and then delve into the techniques of dynamic and static analysis, with examples of their industrial deployments. The keynote will discuss the integration of code analysis into early stages of the software development life cycle, from continuous integration pipelines to DevOps practices.
在不断发展的软件开发世界中,代码分析是质量和效率的关键组成部分。本主题演讲将介绍WhatsApp代码分析工具的概述,然后深入研究动态和静态分析技术,并提供其工业部署的示例。主题演讲将讨论将代码分析集成到软件开发生命周期的早期阶段,从持续集成管道到DevOps实践。
{"title":"Code Analysis at WhatsApp (Keynote)","authors":"Ke Mao","doi":"10.1145/3609022.3615585","DOIUrl":"https://doi.org/10.1145/3609022.3615585","url":null,"abstract":"In the ever-evolving world of software development, code analysis stands as a critical component for quality and efficiency. This keynote will present an overview of code analysis tools at WhatsApp, and then delve into the techniques of dynamic and static analysis, with examples of their industrial deployments. The keynote will discuss the integration of code analysis into early stages of the software development life cycle, from continuous integration pipelines to DevOps practices.","PeriodicalId":270362,"journal":{"name":"Proceedings of the 22nd ACM SIGPLAN International Workshop on Erlang","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2023-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133061459","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Mria: An Eventually Consistent Mnesia 玛丽亚:最终一致的失忆症
Pub Date : 2023-08-30 DOI: 10.1145/3609022.3609416
Dmitrii Fedoseev, Serhii Tupchii, T. M. Garitezi, Zaiming Shi
Mnesia, an Erlang distributed database, serves as an embedded storage and replication layer for OTP applications requiring low read latency and high availability. EMQX is a publish-subscribe message broker supporting the MQTT protocol that uses Mnesia to replicate its internal state across the cluster. We analyze the limitations of Mnesia's replication protocol scalability in large clusters under high load. To address these limitations, we developed Mria, an extension to the Mnesia database that provides eventual consistency within a cluster and achieves better horizontal scalability. We validated Mria using a variety of testing techniques, including model checking, chaos engineering, and formal verification. Replacing Mnesia with Mria allowed us to scale the EMQX cluster to 23 nodes, handle 100 million simultaneous client sessions and achieve a higher sustained load.
Mnesia是一个Erlang分布式数据库,为要求低读取延迟和高可用性的OTP应用程序提供嵌入式存储和复制层。EMQX是一个支持MQTT协议的发布-订阅消息代理,该协议使用Mnesia跨集群复制其内部状态。我们分析了在高负载下Mnesia复制协议可扩展性在大型集群中的局限性。为了解决这些限制,我们开发了Mria,这是对Mnesia数据库的扩展,它提供了集群内的最终一致性,并实现了更好的水平可伸缩性。我们使用各种测试技术来验证Mria,包括模型检查、混沌工程和正式验证。用Mria取代Mnesia使我们能够将EMQX集群扩展到23个节点,同时处理1亿个客户端会话,并实现更高的持续负载。
{"title":"Mria: An Eventually Consistent Mnesia","authors":"Dmitrii Fedoseev, Serhii Tupchii, T. M. Garitezi, Zaiming Shi","doi":"10.1145/3609022.3609416","DOIUrl":"https://doi.org/10.1145/3609022.3609416","url":null,"abstract":"Mnesia, an Erlang distributed database, serves as an embedded storage and replication layer for OTP applications requiring low read latency and high availability. EMQX is a publish-subscribe message broker supporting the MQTT protocol that uses Mnesia to replicate its internal state across the cluster. We analyze the limitations of Mnesia's replication protocol scalability in large clusters under high load. To address these limitations, we developed Mria, an extension to the Mnesia database that provides eventual consistency within a cluster and achieves better horizontal scalability. We validated Mria using a variety of testing techniques, including model checking, chaos engineering, and formal verification. Replacing Mnesia with Mria allowed us to scale the EMQX cluster to 23 nodes, handle 100 million simultaneous client sessions and achieve a higher sustained load.","PeriodicalId":270362,"journal":{"name":"Proceedings of the 22nd ACM SIGPLAN International Workshop on Erlang","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2023-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114321164","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
A Semantics of Core Erlang with Handling of Signals 带有信号处理的核心Erlang语义
Pub Date : 2023-08-30 DOI: 10.1145/3609022.3609417
Aurélie Kong Win Chang, Jérôme Feret, Gregor Gössler
We introduce a small step semantics for a subset of Core Erlang modeling its monitoring and signal systems. The goal of our semantics is to enable the construction of causal explanations for property violations, which will be the object of future work. As a first axis of reflection, we chose to study the impact of the order of messages on a faulty behavior. We present our semantics and discuss some of our design choices. This work is a part of a broader project on causal debugging of concurrent programs in Erlang.
我们为Core Erlang的一个子集引入了一个小步骤语义,对其监控和信号系统进行建模。我们的语义的目标是能够构建财产侵犯的因果解释,这将是未来工作的对象。作为反射的第一个轴,我们选择研究消息顺序对错误行为的影响。我们展示了我们的语义,并讨论了我们的一些设计选择。这项工作是在Erlang中对并发程序进行因果调试的更广泛项目的一部分。
{"title":"A Semantics of Core Erlang with Handling of Signals","authors":"Aurélie Kong Win Chang, Jérôme Feret, Gregor Gössler","doi":"10.1145/3609022.3609417","DOIUrl":"https://doi.org/10.1145/3609022.3609417","url":null,"abstract":"We introduce a small step semantics for a subset of Core Erlang modeling its monitoring and signal systems. The goal of our semantics is to enable the construction of causal explanations for property violations, which will be the object of future work. As a first axis of reflection, we chose to study the impact of the order of messages on a faulty behavior. We present our semantics and discuss some of our design choices. This work is a part of a broader project on causal debugging of concurrent programs in Erlang.","PeriodicalId":270362,"journal":{"name":"Proceedings of the 22nd ACM SIGPLAN International Workshop on Erlang","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2023-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133868114","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Generation and Refinement of Testing Models 测试模型的生成和细化
Pub Date : 2023-08-30 DOI: 10.1145/3609022.3609415
Luis Eduardo Bueso de Barrio, Lars-Åke Fredlund, Clara Benac Earle, Ángel Herranz, Julio Mariño-Carballo
Writing property-based testing models is a challenging task. This article introduces a new tool, Faktory, which is capable of automatically generating an executable property-based testing model from less complicated sources: normal function type specifications, and traditional function calling contracts using pre- and post-conditions. Concretely, Faktory is an Elixir library which from an API annotated with executable calling contracts written using the Corsa contract checking library, automatically generates a property-based testing model in the form of a state machine implemented using the Makina state machine DSL. In the article we illustrate the functionalities of the Faktory tool using a number of examples. The first one shows how to test a functional data structure; the second shows how to improve test-case generation by reusing test results; and in the third example a stateful key-value storage is tested by first deriving an initial test model using Faktory, and then refining the generated model using the Makina model/state machine extension mechanism.
编写基于属性的测试模型是一项具有挑战性的任务。本文介绍了一个新工具factory,它能够从不太复杂的来源自动生成一个可执行的基于属性的测试模型:普通的功能类型规范,以及使用前置和后用条件的传统功能调用契约。具体来说,factory是一个Elixir库,它从一个带有可执行调用契约注释的API(使用Corsa契约检查库编写)中自动生成一个基于属性的测试模型,以使用Makina状态机DSL实现的状态机的形式。在本文中,我们将使用一些示例来说明factory工具的功能。第一个演示了如何测试一个功能数据结构;第二部分展示了如何通过重用测试结果来改进测试用例的生成;在第三个示例中,通过首先使用factory派生初始测试模型,然后使用Makina模型/状态机扩展机制对生成的模型进行细化,来测试有状态键值存储。
{"title":"Generation and Refinement of Testing Models","authors":"Luis Eduardo Bueso de Barrio, Lars-Åke Fredlund, Clara Benac Earle, Ángel Herranz, Julio Mariño-Carballo","doi":"10.1145/3609022.3609415","DOIUrl":"https://doi.org/10.1145/3609022.3609415","url":null,"abstract":"Writing property-based testing models is a challenging task. This article introduces a new tool, Faktory, which is capable of automatically generating an executable property-based testing model from less complicated sources: normal function type specifications, and traditional function calling contracts using pre- and post-conditions. Concretely, Faktory is an Elixir library which from an API annotated with executable calling contracts written using the Corsa contract checking library, automatically generates a property-based testing model in the form of a state machine implemented using the Makina state machine DSL. In the article we illustrate the functionalities of the Faktory tool using a number of examples. The first one shows how to test a functional data structure; the second shows how to improve test-case generation by reusing test results; and in the third example a stateful key-value storage is tested by first deriving an initial test model using Faktory, and then refining the generated model using the Makina model/state machine extension mechanism.","PeriodicalId":270362,"journal":{"name":"Proceedings of the 22nd ACM SIGPLAN International Workshop on Erlang","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2023-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124374858","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Proceedings of the 22nd ACM SIGPLAN International Workshop on Erlang 第22届ACM SIGPLAN国际Erlang研讨会论文集
{"title":"Proceedings of the 22nd ACM SIGPLAN International Workshop on Erlang","authors":"","doi":"10.1145/3609022","DOIUrl":"https://doi.org/10.1145/3609022","url":null,"abstract":"","PeriodicalId":270362,"journal":{"name":"Proceedings of the 22nd ACM SIGPLAN International Workshop on Erlang","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121691570","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
期刊
Proceedings of the 22nd ACM SIGPLAN International Workshop on Erlang
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1