基于ORBIX的分布式数据库系统的设计与实现(1)(2)
2014-01-31 01:07
导读:分布式数据库系统实现 4.1 分布式事务处理 事务指一个程序或程序段,在一个或多个资源如数据库或文件上为完成某些功能的执行过程的集合。为了支持面
分布式数据库系统实现4.1 分布式事务处理事务指一个程序或程序段,在一个或多个资源如数据库或文件上为完成某些功能的执行过程的集合。为了支持面向对象、分布式、事务处理应用,实现了(1)对象事务管理器。(2)X/Open XA接口。(3)两阶段提交(2PC)[4]协议。4.1.1 分布事务管理器数据库,支持本地事务。当一个应用需要两个或多个资源管理器参与同一事务时,某第三方必须提供必要的协调以保证分布式事务的ACID属性。 应用程序使用事务管理器创建事务。处理期间访问的每个资源管理器都是一个事务的参与者。因而,当应用程序完成事务时,要么一个提交请求,要么一个回滚请求,事务管理器与每个资源管理器联络。4.1.2 OTS 和 X/Open XA 接口接口功能:提供管理事务划分(创建和完成)的接口,将事务信息传播给事务参与者和接口,允许应用参与事务。X/Open XA接口用于数据库的集成,以形成数据库的逻辑连接。 如图2所示为客户、应用、OTS及资源管理之间互操作获得ACID属性的过程。
包括以下步骤:(1)客户与OTS链接并创建一个事务。(2)客户在事务环境中对应用作出调用并更新一些数据。(3)应用程序检测到数据正在被更新并创建一个资源对象,向事务注册资源对象。(4)客户通过与OTS实现联系,试图提交事务。(5)事务开始提交协议。选择哪种协议(1PC或2PC),依据向事务注册资源对象数量及OTS是否支持1PC优化而定。(6)假定使用了2PC协议,OTS发送一个准备信息到资源。资源存贮足够的信息以防万一失败(例如,通过将改变写入一个日志文件)。资源对象表决提交事务。(7)OTS收集所有资源对象的表决并决定事务的结果。将决定发送到所有的注册资源对象。(8)资源对象根据收到的提交或回滚消息作出必要的改变并将决定保存到日志中。(9)OTS返回结果给客户。4.2 交易服务交易服务提供对象的位置和发现的设施。与CORBA命名服务按名字定位对象不同,对象在交易服务中是没有名字的。服务器根据对象所提供的服务类型在交易服务中广告该对象。客户通过查问交易服务定位感兴趣的对象,以查找所有提供特殊服务的对象。客户能够进一步限制只搜索那些具有特殊特性的对象。CORBA交易服务是允许注册具有功能性描述对象的一个交易服务。该服务通过使服务更易定位极大地增加了分布式系统的可伸缩性。一个交易包含许多描述服务的服务类型。服务器输出一个提议给交易服务,包括其中一个对象对象引用和由服务类型定义的属性值。客户就能按照这些属性使用称为约束(constraint)的过滤器查询交易服务。交易者为客户返回一个服务提议。客户就能使用提议中的对象引用在服务器上调用。