返回
Programming Scalable Elastic Services with AEON
DOI:10.1145/3777545.png)
摘要
En 中文
分布式云应用在构建用户服务时面临多重挑战。具体而言,这类应用需具备可扩展性,以容纳日益庞大的用户群体,同时在高度分布式的并发商用硬件上执行时,要保证对共享数据访问的一致性。此外,由于应用需应对工作负载波动,它们必须具备弹性,即能根据负载增加进行横向扩展,也能在负载减少时回缩以避免过度配置及不必要的高成本。本文提出AEON,一个支持开发可扩展弹性云分布式应用的编程框架。简言之,AEON利用两种协同的“层级”编程:I. 应用编程语言(APL)使程序员能借助流行的actor范式构思可扩展应用,并引入直观的事件概念,以捕获跨多个actor的非交织执行(适用于非平凡共享数据),同时避免易出错的手动并发控制。具体而言,基于简单的基于类型的所有权分析(断言AEON应用中的引用遵循基于DAG的引用结构),事件通过轻量级同步协议高效地以可序列化方式执行,该协议也被用于创建分布式应用共享数据的一致快照。II. 弹性编程语言(EPL)使应用管理员能定义策略,以指导运行时高效、细粒度的自动缩放(扩展与回缩)。这些策略虽然引用I中编写的应用,但仅涉及高层次抽象(如actor类型和方法),不被后者引用,并避免副作用以最小化对应用性能的影响。在介绍我们的编程框架及其语言设计选择和运行时系统实现后,我们展示了其在多个用例中的应用研究,并评估了其性能。简而言之,我们的APL同步模型比手动加锁或使用现有actor语言的传统两阶段自动加锁、或使用外部事务存储具有更好的扩展性;在工作负载波动下,我们的EPL允许程序在资源使用增加的情况下显著提升性能,或在性能相似的情况下大幅减少资源使用。
Keyword:
Cloud
actor
consistency
scalability
serializability
elasticity
programming
期刊
A
IF:
1.8
论文数:
26
被引数:
1.1K

