网格是一种新兴的技术,正处在不断发展和变化当中。目前学术界和商业界围绕网格开展的研究有很多,其研究的内容和名称也不尽相同因而网格尚未有的定义和内容定位。比如国外媒体常用“下一代互联网”、“Internet2”、“下一代Web”等来称呼网格相关技术。但“下一代互联网(NGI)”和“Internet2”又是美国的两个具体科研项目的名字,它们与网格研究目标相交叉,研究内容和重点有很大不同。企业界用的名称也很多,有内容分发(Contents Delivery)、服务分发(Service Delivery)、电子服务(e-service)、实时企业计算(Real-Time Enterprise Computing,简称RTEC)、分布式计算Peer-to-Peer Computing(简称P2P)、Web服务(Web Services)等。中国科学院计算所所长李国杰院士认为,网格实际上是继传统互联网、Web之后的第三次浪潮,可以称之为第三代互联网应用。
网格中的资源是分布式的,所以基于网格的查询是分布式查询。分布式查询已被广泛地用于数据密集型的应用程序,用户关心的数据存放于多个位置,而且是异构的、分散的和自治的,因此需要提供一种集成数据资源的方法。网格资源的异构特性及其网格环境动态变化的特点给分布式查询处理技术带来了新的挑战,传统的技术已经不能满足网格环境的需要。
1 分布式查询处理原理分析
一个典型的分布式查询处理(Distributed Query Processing,DQP)机制的示意图,在很多与分布式查询处理相关的文献中都可以看到。二个阶段的优化,个阶段是单节点优化,第二个阶段是多节点优化。当一个查询被提交以后,首先经过一个分析过程,分析器根据数据源的元数据信息进行类型和一致性检查,将分析结果表示为一棵树。然后将这棵树提交到逻辑优化器产生一个逻辑计划,逻辑计划表示成另外一棵树,它的叶子节点与执行查询所需要的操作符相对应。通过物理优化,逻辑计划转化成一个物理计划(也是一棵树)。因为一个逻辑操作符可能与很多个物理操作符相对应,需要使用代价模型选择一个执行时开销可能的计划。逻辑和物理优化器组成了单节点优化器并产生了一个连续计划。
以上介绍了普通的DQP结构,下面结合网格的特点,给出在以服务为中心的网格环境中实现分布式查询引擎(DQPE)必须满足的一些条件。
(1)自适应性。网格环境中数据源的统计信息是不准确的,而且环境不可预测及易变,只根据编译时得到的信息很难产生有效的查询计划。
(2)进度监控。查询进度的监控是实现自适应性的基础条件,并且必须解决基于OGSA(开放网格服务体系结构)统一的实现框架,否则无法在实际中应用。
(3)对数据库中数据和元数据的标准访问。在以服务为中心的体系结构中,数据源都被包装为服务,查询引擎需要访问数据和元数据以获得查询优化时所需要的信息。
2 与DQP设计相关的网格服务属性
OGSA为网格中的资源共享提出了一个以服务为中心的框架。OGSA首先为网格服务提出了一套约定和行为,一个有状态的服务实例支持可靠和安全调用、生命周期管理、通知、策略管理和信任状管理。网格服务规范也定义了动态创建服务实例和发现这些实例的接口。网格服务能维护元数据,而且支持对这些元数据的查询。下面着重讨论一些与分布式查询处理引擎实现有关的网格服务属性。
2.1 注册和服务元数据
OGSA中的注册机构拥有一个服务句柄(GSH)列表,每一个句柄拥有与这个句柄表示的服务有关的静态元数据信息的一部分。一旦选择了一个句柄,就可以进一步查询与这个服务相关的更多的元数据。OGSA(Open Grid Services Architecture)被称为是下一代的网格体系结构,它是在原来“五层沙漏结构”的基础上,结合的Web Service 技术提出来的。OGSA包括两大关键技术即网格技术和Web Service 技术。 随着网格计算研究的深入,人们越来越发现网格体系结构的重要。网格体系结构是关于如何建造网格的技术,包括对网格基本组成部分和各部分功能的定义和描述,网格各部分相互关系与集成方法的规定,网格有效运行机制的刻画。显然,网格体系结构是网格的骨架和灵魂,是网格的技术,只有建立合理的网格体系结构,才能够设计和建造好网格,才能够使网格有效地发挥作用。
注册的另外一个用途就是DQP引擎需要发现监控服务,它监控网格上的计算资源,并提供有如处理器的数目、内存容量等的统计信息,还有像某一时刻某一节点处理器的负载、当前可用的内存、当前的网络通信量等动态信息。
2.2 动态服务创建和生命周期管理
一个分布式查询处理引擎应该能动态地利用网格上可用的机器分发和执行一个个查询子计划,这就需要动态创建和部署能执行这些子计划的服务,并且必须使服务实例提交完任务之后能撤销,从而释放它所利用的资源。
2.3 通知机制
网格服务的状态信息会随着系统的运行而发生变化。网格服务之间的许多交互要求动态地监控状态的变化。通知把一种传统的发布(NotificationSource)和订阅(NotificationSink)范式应用于这种监控。网格服务支持一个接口,以允许其他网格服务订阅进行变更。
3 OGSA环境中的DQP实现机制
这一节主要介绍在基于OGSA的环境中执行分布式查询所涉及到的服务交互。
3.1 查询分析和解释
设计了四个主体元素:客户(Client)、注册机构(Registry)、分析器(Parser)和网格数据服务GDS(Grid Data Service)。Registry是由许多组织共享的一个虚拟组织注册机构。
可以看出,客户提交请求后,分析器为了获得在类型检查阶段所需要的元数据信息,开始搜索与查询相关的GDS。实际上,GDS句柄在DQP实例被创建时就已经可以得到。分析器访问GDS,以获得执行任务所需要的更多的元数据。
3.2 单节点优化
网格资源监控服务(GRMS)所示的注册机构注册,它部署在网格上并提供关于计算资源状态的实时统计信息。分析器产生一个输出并将其表示为一棵树后,分布式查询优化器将查阅注册机构以获得在查询中涉及到的GDS的元数据、可用计算资源的信息以及当前计算负载。
3.3 查询计划的调度和执行
执行者(Evaluator)是一个服务,它负责子计划的执行。执行者工厂(Evaluator Factory)是一个服务,它实现了网格服务工厂端口类型(Grid Service Factory Port Type)。当优化器使用从GDSs和GRMSs获得的元数据产生了优化的子计划后,它要把这些子计划分布到各个节点上执行,其关键是子计划与具体的机器资源的映射。
3.4 查询进度监控
优化器服务的内部部件也值得注意。解决的主要问题是基于进度监控的自适应行为的处理。可以使用OGSA通知机制创建一个进度监控框架。为了实现这个目标,优化器应当实现OGSA 信息接收端口类型(Notification Sink Port type),并且应当有一个内部元件监听Evaluators发来的消息。Evaluators充当了一个信息源的角色。很显然,进度消息的内容在这里很重要。
4 结束语
本文主要分析讨论了在OGSA环境中实现和部署分布式查询的工作原理与实现机制。在此研究工作中需要注意:DQP访问数据时遵循一种标准、统一的方式;服务实例的创建、动态部署和生命周期管理对DQP的运行有重要的影响;查询进度监控的设计影响整个系统的性能。下一步的工作是研究查询引擎的自适应性,深入优化查询服务。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。