基于安全闭包传递的分布式程序设计
Distributed Programming via Safe Closure Passing
摘要:
包含函数式编程的编程系统,例如,高阶函数对于大规模分布式编程来说正变得越来越流行。Apache Spark等新框架利用功能技术为内存数据分析提供高级声明式API,通常优于Hadoop MapReduce等传统的“大数据”框架。然而,广泛使用的编程模型仍然相当ad-hoc;实现权衡,静态类型和语义等方面尚未得到很好的理解。我们提出了一个新的异步编程模型,其核心有几个原则,促进分布式数据的功能处理。我们的模型的重点是简单性,性能和表现力。通信的主要方式是将函数(闭包)传递给分布式的、不可变的数据。为了确保闭包的安全和有效分布,我们的模型利用了语法和基于类型的限制。我们报告在Scala中的原型实现。最后,我们提出了初步的实验结果评估的静态,基于类型的优化序列化的性能影响。
英文摘要:
Programming systems incorporating aspects of functional programming, e.g., higher-order functions, are becoming increasingly popular for large-scale distributed programming. New frameworks such as Apache Spark leverage functional techniques to provide high-level, declarative APIs for in-memory data analytics, often outperforming traditional "big data" frameworks like Hadoop MapReduce. However, widely-used programming models remain rather ad-hoc; aspects such as implementation trade-offs, static typing, and semantics are not yet well-understood. We present a new asynchronous programming model that has at its core several principles facilitating functional processing of distributed data. The emphasis of our model is on simplicity, performance, and expressiveness. The primary means of communication is by passing functions (closures) to distributed, immutable data. To ensure safe and efficient distribution of closures, our model leverages both syntactic and type-based restrictions. We report on a prototype implementation in Scala. Finally, we present preliminary experimental results evaluating the performance impact of a static, type-based optimization of serialization.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。