PaaS层作为三层核心服务的中间层,既为上层应用提供简单、可靠的分布式编程框架,又需要基于底层的资源信息调度作业、管理数据,屏蔽底层系统的复杂性。随着数据密集型应用的普及和数据规模的日益庞大,PaaS层需要具备存储与处理海量数据的能力。本节先介绍PaaS层的海量数据存储与处理技术,然后讨论基于这些技术的资源管理与调度策略。
1.海量数据存储与处理技术
1)海量数据存储技术
云计算环境中的海量数据存储既要考虑存储系统的I/O 性能,又要保证文件系统的可靠性与可用性。
DeCandia等(2007)设计了基于P2结构的Dynamo存储系统,并应用于Amazon的数据存储平台。借助于P2P技术的特点,Dynamo允许使用者根据工作负载动态调整集群规模。另外,在可用性方面,Dynamo采用零跳分布式散列表结构降低操作响应时间;在可靠性方面,Dynamo利用文件副本机制应对节点失效。由于保证副本强一致性会影响系统性能,所以,为了承受每天数千万的并发读写请求,Dynamo中设计了最终一致性模型,弱化副本一致性,保证提高性能。
2)数据处理技术与编程模型
PaaS平台不仅要实现海量数据的存储,而且要提供面向海量数据的分析处理功能。由于PaaS平台部署于大规模硬件资源上,所以海量数据的分析处理需要抽象处理过程,并要求其编程模型支持规模扩展,屏蔽底层细节并且简单有效。
2.资源管理与调度技术(www.xing528.com)
海量数据处理平台的大规模性给资源管理与调度带来挑战。研究有效的资源管理与调度技术可以提高Map Reduce、Dryad等PaaS层海量数据处理平台的性能。
1)副本管理技术
副本机制是PaaS层保证数据可靠性的基础,有效的副本策略不但可以降低数据丢失的风险,而且能优化作业完成时间。
PaaS层的海量数据处理以数据密集型作业为主,其执行性能受到I/O 带宽的影响。为了减少任务执行过程中的网络传输开销,可以将任务调度到输入数据所在的计算节点,因此,需要研究面向数据本地性(Data-Locality)的任务调度算法。除了保证数据本地性,PaaS层的作业调度器还需要考虑作业之间的公平调度。PaaS层的工作负载中既包括子任务少、执行时间短、对响应时间敏感的即时作业(如数据查询作业),也包括子任务多、执行时间长的长期作业(如数据分析作业)。研究公平调度算法可以及时为即时作业分配资源,使其快速响应。
3)任务容错机制
为了使PaaS平台可以在任务发生异常时自动从异常状态恢复,需要研究任务容错机制。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。