科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道使用 WebSphere Extended Deployment Compute Grid 并行执行批处理程序

使用 WebSphere Extended Deployment Compute Grid 并行执行批处理程序

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

IBM® WebSphere® Extended Deployment Compute Grid 作为执行框架,负责执行具有一定企业服务质量的批处理工作负载,其中包括事务完整性、安全性和重新启动功能等。

作者:ibm 来源:ibm 2007年10月6日

关键字: 技术 程序 WEBSPHERE 中间件

  • 评论
  • 分享微博
  • 分享邮件

引言

IBM WebSphere Extended Deployment Compute Grid 作为批处理执行环境,为 Java 批处理和网格应用程序提供容器管理的服务质量。这些服务质量是通过利用在其上部署组件的基础应用服务器这一方法提供的。批处理计算是任何企业 IT 基础结构不可或缺的一部分。批处理应用程序负责业务服务,如计算信用评级、应用利息计算等。WebSphere Extended Deployment Compute Grid(以下称为 Compute Grid)作为执行框架,负责执行具有一定企业服务质量的批处理工作负载,其中包括事务完整性、安全性和重新启动功能等。为什么将此技术称为 Compute Grid,而不是 Java 批处理?本文将通过描述代理服务模式,以便跨端点网格并行执行批处工作负载来回答该问题。





回页首


关于模式

批处理工作负载传统上是数据密集的,必须在一些定义的目标集中执行;例如,它们必须在某个时段内完成,执行事务完整性,发生故障时允许重新启动等。网格计算(包括跨端点网格并行执行作业)的原则随着下一代企业应用程序而出现。

假设批处理应用程序必须处理 100 万亿条数据记录。如果这些数据是可以不依赖于其他记录处理每条记录的数据,则处理记录的顺序无关紧要。通常,批处理作业按顺序处理记录,从第一条记录开始,依次处理其余记录,直到工作完成。此工作负载的执行时间与要处理的记录数量有函数关系,并且可能执行相当长的时间。这时可以执行并行机制。可以将具有这些特征的作业分解成较小的工作块,将每个工作块分派到应用服务器中的多个执行线程中,并同时处理它们。

如何利用网格计算原则、基础中间件运行时提供的服务质量以及 Compute Grid 的容器和执行管理功能来并行处理批处理工作负载?

本文描述的并行执行批处理工作负载的代理服务模式演示了对单个批处理作业进行分区,和跨某些端点网格并行执行分区的技术。此外,该模式还利用了更高级的分区技术,如端点关联性主动缓存和其他技术。代理服务模式可用于解决提出的问题,我们给出以下假设:

  • 可以将作业的输入数据分解为不连续的分区。
  • 可以彼此独立地执行每个分区。
  • 可以从产生的不连续分区聚合作业的输出数据。





回页首


解决方案

Compute Grid 由两个主要组件组成:

  • 长时间运行调度程序 (LRS) 分派并监视单个作业的执行。
  • 长时间运行执行环境 (LREE) 执行单个作业,同时确保所需的服务质量(事务完整性、重新启动功能、安全等)。LREE 是多线程的服务器流程;可以将单个批处理作业分派给 LREE 中的单个线程,因此,单个 LREE 可以并行执行许多批处理作业。

LRS 公开一组 API,这些 API 能够以编程方式提交作业,监视作业状态,并对作业执行生命周期操作(停止、取消和重新启动)。这些 API 是代理服务模式不可或缺的一部分。


图 1. Compute Grid 中的代理服务模式
图 1. Compute Grid 中的代理服务模式

代理服务模式由以下两部分组成:

  • 代理服务

    代理服务模式中的主要组成部分是代理服务本身,它充当 Compute Grid 运行时的前端,并公开逻辑业务函数。图 1 描绘了此服务,其中方法 ExecuteEndOfMonthProcessing() 是公开的。

    分区应用程序的用途是将单个逻辑请求分解为多个较小的分区。图 2 描述了代理服务执行的操作,它包含可以创建分区的业务逻辑。然后将每个分区作为不连续的作业提交给 LRS(随后由 LRS 作为不连续的独立作业进行管理)。代理服务监视所提交的每个作业,在作业完成时,通知请求程序任务已经完成。



    图 2. 代理服务执行的操作
    图 2. 代理服务执行的操作

    Compute Grid 的多个功能还涉及到代理服务模式。一个关键功能是自 Compute Grid 版本 6.1 开始提供的 xJCL 变量替换,xJCL 变量替换支持在 LRS 拥有和管理的存储库中定义和存储 xJCL 模板。作业提交程序(本例中为代理服务)不再需要生成或直接操作 xJCL;提交的作业只需要知道要调用的作业名称和与该作业关联的参数即可。这大大简化了代理服务的实现。

  • 分区模板

    此模板是作为 Compute Grid 变量替换功能一部分描述的 xJCL 模板。图 3 演示了代理服务模式的端到端体系结构。代理服务将单个的逻辑事务划分为多个不连续的分区。对于每个分区,分区属性和分区模板的名称都提交给 LRS。使用变量替换功能的 LRS 将创建完全限定的 xJCL 作业(称为工作分区),并替换 LREE 网格的每个作业。根据网格中的每个 xJCL 分区模板独立执行每个工作分区。



    图 3. 代理服务模式的端到端体系结构
    图 3. 代理服务模式的端到端体系结构

    代理服务监视已提交的每个作业的状态。所有作业完成后,服务可以通知请求程序总体逻辑作业是成功完成还是失败。图 4 进一步描绘了此模式中的作业监视过程。



    图 4 代理服务模式中的作业监视过程
    图 4 代理服务模式中的作业监视过程

Compute Grid 版本 6.1 引入了多个系统编程接口 (SPI)。这些 SPI 会促进插件模块的开发,这将影响独立于应用程序本身的框架行为。一个特别重要的 SPI 是分派确认程序。此 SPI 插件点驻留在 LRS 中,使插件能够覆盖所作的端点选择决策(通常基于某一循环或负载平衡算法)。代理服务模式上下文中的分派确认程序可以提供端点关联。具体来说,插件将检查与要执行的工作分区关联的某个分区元数据,并基于定义良好的规则将分区路由到特定的端点。图 5 描述了此扩展的基础体系结构。


图 5. 分派确认程序 SPI 体系结构
图 5. 分派确认程序 SPI 体系结构

端点关联对应用程序的性能可以产生巨大影响。例如,使用此关联会产生较高的缓存命中率。此外,如果运行时对要处理的数据具有独占访问权限,则数据可以预加载和主动缓存,其中在内存中对缓存执行所有数据读取,而只对数据源本身执行数据写入。如果数据独占不可能,则可以使用 WebSphere Extended Deployment 数据网格技术管理数据缓存和失效。图 6 描绘了此体系结构。


图 6. WebSphere Extended Deployment Data Grid 管理的数据缓存
图 6. WebSphere Extended Deployment Data Grid 管理的数据缓存




回页首


结束语

使用小的批处理窗口,批处理作业的性能与以前相比将变得更加关键。本文描述的高级并行机制、数据和分区关联以及其他技术都提供了一组重要工具,使用这些工具可以帮助简化脱机处理。可以使用代理服务模式并行执行批处理工作负载。单个 WebSphere Extended Deployment Compute Grid 作业可以在端点中的单个线程上执行。单个端点可以具有许多线程,并且网格中存在许多端点。代理服务模式将从提交的单个作业创建多个作业分区;将每个作业提交给 LRS,然后将每个作业进一步分派给可用端点上的可用线程。在完成每个作业后,将通知代理服务。在完在所有的作业后,将通知请求程序总体成功或失败。如果数据和工作负载显示了对主动数据缓存和端点关联有益的某些特征,则可以进行进一步优化以提高性能和吞吐量。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章