Erlang Workshop最新文献

筛选
英文 中文
Riak PG: distributed process groups on dynamo-style distributed storage Riak PG:基于动态分布式存储的分布式进程组
Erlang Workshop Pub Date : 2013-09-28 DOI: 10.1145/2505305.2505309
Christopher S. Meiklejohn
{"title":"Riak PG: distributed process groups on dynamo-style distributed storage","authors":"Christopher S. Meiklejohn","doi":"10.1145/2505305.2505309","DOIUrl":"https://doi.org/10.1145/2505305.2505309","url":null,"abstract":"We present Riak PG, a new Erlang process group registry for highly available applications. The Riak PG system is a Dynamo-based, distributed, fault-tolerant, named process group registry for use as an alternative to the built-in Erlang process group facility, pg2, and the globally distributed extended process registry, gproc.\u0000 Riak PG aims to provide a highly-available, fault-tolerant, distributed registry by sacrificing strong consistency for eventual consistency in applications where availability of the registry is paramount to application function and performance.","PeriodicalId":140676,"journal":{"name":"Erlang Workshop","volume":"243 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-09-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130471050","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}
引用次数: 9
Testing blocking operations with QuickCheck's component library 用QuickCheck的组件库测试阻塞操作
Erlang Workshop Pub Date : 2013-09-28 DOI: 10.1145/2505305.2505310
U. Norell, Hans Svensson, T. Arts
{"title":"Testing blocking operations with QuickCheck's component library","authors":"U. Norell, Hans Svensson, T. Arts","doi":"10.1145/2505305.2505310","DOIUrl":"https://doi.org/10.1145/2505305.2505310","url":null,"abstract":"It is a challenge to write test cases for software with blocking operations, i.e. operations that do not return until data become available. One should prevent the test case itself to block, whereas at the same time, one wants to test the blocking behaviour. Therefore, the standard solution is to write concurrent test cases, each call in the test case executed by a newly spawned process, together with a lot of boilerplate code. Manually crafted test cases can check that blocking calls are indeed blocked and unblocked as expected. Writing such test cases is error-prone and covering all interesting cases requires a lot of manually written tests.\u0000 By using QuickCheck?s state machines one can automatically generate the test cases from a specification, but also here the boilerplate code is needed. We demonstrate that by using the component library in QuickCheck, an extension of the state machine formalism, the boilerplate code is no longer needed. Using the component library results in clear and concise specifications that are effectively used for testing. By using this new library, software with blocking operations can be tested much more thoroughly than by using a manual test approach.","PeriodicalId":140676,"journal":{"name":"Erlang Workshop","volume":"80 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-09-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124866905","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}
引用次数: 6
Towards automatic actor pinning on multi-core architectures 在多核架构上实现actor的自动绑定
Erlang Workshop Pub Date : 2012-09-14 DOI: 10.1145/2364489.2364501
E. Francesquini, A. Goldman, J. Méhaut
{"title":"Towards automatic actor pinning on multi-core architectures","authors":"E. Francesquini, A. Goldman, J. Méhaut","doi":"10.1145/2364489.2364501","DOIUrl":"https://doi.org/10.1145/2364489.2364501","url":null,"abstract":"The actor model is a high-level programming abstraction that attempts to ease the development of parallel applications, among others, by shielding the developer from the underlying platform. In this model the execution relies on a runtime environment (RE) to be able to efficiently use the underlying machine. Modern processors possess a hierarchical architecture of memory, thus making the performance of an application dependent on the placement of the application threads. This makes the choices of the RE much more important since the chosen actor placement will have a considerable impact on the application performance. In this paper we describe a work in progress that aims to create an on-line automatic actor placement engine. Using application profiling in association with hardware counters, it will pin and migrate actors to processing units aiming to optimize performance.","PeriodicalId":140676,"journal":{"name":"Erlang Workshop","volume":"132 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132130892","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
Co-ops: concurrent algorithmic skeletons for Erlang Co-ops: Erlang的并发算法框架
Erlang Workshop Pub Date : 2012-09-14 DOI: 10.1145/2364489.2364500
Jay Nelson
{"title":"Co-ops: concurrent algorithmic skeletons for Erlang","authors":"Jay Nelson","doi":"10.1145/2364489.2364500","DOIUrl":"https://doi.org/10.1145/2364489.2364500","url":null,"abstract":"Erlang offers a programmer 3-4 orders of magnitude more processes than conventional languages. This difference in approach to concurrency leads to architectures and attitudes embracing processes as key elements of a software system, providing fault isolation, distributed algorithms, and code modularity. Coming hardware improvements promise 3-4 orders of magnitude more CPUs than conventional hardware. How will this additional power be used by Erlang programmers and how might it impact Erlang system architecture? This poster introduces a new library of cooperating processes or \"co-ops\" which implement an algorithmic skeleton as a directed acyclic graph (DAG) spanning a large number of processes, trading program code for dataflow scaffolding to gain a more principled architecture and explicitly defined concurrent data pathways.","PeriodicalId":140676,"journal":{"name":"Erlang Workshop","volume":"165 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116123309","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}
引用次数: 1
Hansei: property-based development of concurrent systems Hansei:基于属性的并发系统开发
Erlang Workshop Pub Date : 2012-09-14 DOI: 10.1145/2364489.2364505
Joseph Blomstedt
{"title":"Hansei: property-based development of concurrent systems","authors":"Joseph Blomstedt","doi":"10.1145/2364489.2364505","DOIUrl":"https://doi.org/10.1145/2364489.2364505","url":null,"abstract":"Avoiding concurrency errors remains one of the main challenges in day-to-day Erlang development. Errors can arise both from unexpected process and message interleaving, as well as concurrent clients or users interacting with the system in an unanticipated manner. To address this issue, many testing tools have been developed over the years. One approach is to pair a property-based testing tool with a tool that overrides the Erlang scheduler. This allows developers to focus on defining the properties of their system, and let the testing tools worry about testing these properties across different interleavings.\u0000 This paper builds upon this approach and presents the Hansei testing framework. Hansei provides an approach to writing property-based tests that build on standard OTP abstractions, as well as a testing infrastructure designed to support test-driven development of concurrent systems. The Hansei infrastructure builds on the existing QuickCheck property-based testing tool, and supports both built-in message interleaving as well as a testing mode that works with existing process interleaving tools. Existing tools are more mature and feature-complete, while the built-in Hansei support has the unique property of being able to operate on code that spans multiple Erlang VMs.","PeriodicalId":140676,"journal":{"name":"Erlang Workshop","volume":"185 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116658009","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
Failover and takeover contingency mechanisms for network partition and node failure 网络分区和节点故障的故障转移和接管应急机制
Erlang Workshop Pub Date : 2012-09-14 DOI: 10.1145/2364489.2364498
Macías López, Laura M. Castro, D. Cabrero
{"title":"Failover and takeover contingency mechanisms for network partition and node failure","authors":"Macías López, Laura M. Castro, D. Cabrero","doi":"10.1145/2364489.2364498","DOIUrl":"https://doi.org/10.1145/2364489.2364498","url":null,"abstract":"Proper definition of suitable mechanisms to cope with network partition and to recover from node failure are among the most common problems when designing and implementing a fault-tolerant distributed system. The concern is even more serious when the different scenarios could not be predicted beforehand and are detected once the system is at deployment stage.\u0000 There are a number of decisions that can be made when choosing the right contingency mechanisms to deal with these distribution-bounded problems. The factors that must be taken into account include not only the technology in use, the node layout, the message protocol and the properties of the messages to be exchanged, certain desired/demanded features such as latency, bandwidth,... but also the communications network reliability, and even the hardware where the system is running on.\u0000 In this paper we present ADVERTISE, a distributed system for advertisement transmission to on-customer-home set-top boxes (STBs) over a Digital TV network (iDTV) of a cable operator. We use this system as a case study to explain how we addressed the aforementioned problems, and present a set of good practices that can be extrapolated to comparable systems.","PeriodicalId":140676,"journal":{"name":"Erlang Workshop","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124381259","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}
引用次数: 2
ErLLVM: an LLVM backend for Erlang ErLLVM: Erlang的LLVM后端
Erlang Workshop Pub Date : 2012-09-14 DOI: 10.1145/2364489.2364494
Konstantinos Sagonas, Chris Stavrakakis, Yiannis Tsiouris
{"title":"ErLLVM: an LLVM backend for Erlang","authors":"Konstantinos Sagonas, Chris Stavrakakis, Yiannis Tsiouris","doi":"10.1145/2364489.2364494","DOIUrl":"https://doi.org/10.1145/2364489.2364494","url":null,"abstract":"This paper describes ErLLVM, a new backend for the HiPE compiler, the native code compiler of Erlang/OTP, that targets the LLVM compiler infrastructure. Besides presenting the overall architecture of ErLLVM and its integration in Erlang/OTP, we describe the changes to LLVM that ErLLVM required and discuss technical challenges and decisions we took. Finally, we provide a detailed performance evaluation of ErLLVM compared to BEAM, the existing backends of the HiPE compiler, and Erjang.","PeriodicalId":140676,"journal":{"name":"Erlang Workshop","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122538997","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}
引用次数: 12
Distributed computation on dynamo-style distributed storage: riak pipe 发电机式分布式存储的分布式计算:riak管
Erlang Workshop Pub Date : 2012-09-14 DOI: 10.1145/2364489.2364497
Bryan Fink
{"title":"Distributed computation on dynamo-style distributed storage: riak pipe","authors":"Bryan Fink","doi":"10.1145/2364489.2364497","DOIUrl":"https://doi.org/10.1145/2364489.2364497","url":null,"abstract":"The Dynamo model, as described by Amazon in 2007, has become a popular concept in the development of distributed storage systems. The model accounts for only CRUD operations, however. This paper describes a system called Riak Pipe that enables the use of generic functions in place of CRUD operations. This allows Dynamo-model users to exploit other resources, such as CPU time, available in their cluster, as well as to gain the efficiencies offered by data-local processing.","PeriodicalId":140676,"journal":{"name":"Erlang Workshop","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125755717","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}
引用次数: 12
Erlang as an implementation platform for BDI languages Erlang作为BDI语言的实现平台
Erlang Workshop Pub Date : 2012-09-14 DOI: 10.1145/2364489.2364491
Álvaro Fernández Díaz, Clara Benac Earle, Lars-Åke Fredlund
{"title":"Erlang as an implementation platform for BDI languages","authors":"Álvaro Fernández Díaz, Clara Benac Earle, Lars-Åke Fredlund","doi":"10.1145/2364489.2364491","DOIUrl":"https://doi.org/10.1145/2364489.2364491","url":null,"abstract":"In this paper we report on our experiences using Erlang to implement a subset of the agent-oriented programming language Jason. The principal existing implementation of Jason is written in Java, but suffers from a number of drawbacks, i.e., has severe limitations concerning the number of agents that can execute in parallel. Basing a Jason implementation on Erlang itself has the potential of improving such aspects of the resulting multi-agent platform. To evaluate Erlang as a programming language implementation platform the paper describes our experiences in mapping Jason to Erlang, highlighting the positive and negative aspects of Erlang for this task. Moreover, the paper contains a number of benchmarks to evaluate the quantitative aspects of the resulting Jason implementation, especially with respect to support large multi-agent systems.","PeriodicalId":140676,"journal":{"name":"Erlang Workshop","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129051110","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}
引用次数: 5
ooErlang: another object oriented extension to Erlang Erlang的另一个面向对象扩展
Erlang Workshop Pub Date : 2012-09-14 DOI: 10.1145/2364489.2364502
Jucimar Maia da Silva Junior, R. Lins
{"title":"ooErlang: another object oriented extension to Erlang","authors":"Jucimar Maia da Silva Junior, R. Lins","doi":"10.1145/2364489.2364502","DOIUrl":"https://doi.org/10.1145/2364489.2364502","url":null,"abstract":"This paper presents ooErlang, an object oriented extension to the Erlang programming language. Its simple syntax, closer to other widely used object-oriented languages such as Java, makes easier its adoption.","PeriodicalId":140676,"journal":{"name":"Erlang Workshop","volume":"24 20","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"113962680","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
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
相关产品
×
本文献相关产品
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信