我们可以把移动数据库系统视为分布式数据库系统的扩展。一个移动计算环境可以视为动态分布式计算环境,在这个动态环境中,网络节点之间的连接是动态变化的,而这些动态变化的连接是指移动计算部件与基站之间的连接。
数据复制与缓冲
数据复制与缓冲技术可以提高移动数据库系统的性能和可用性。移动计算环境中的计算机节点可以分为两类:一类是联接在固定网络上的固定主机,称为基节点;另一类是通过无线网络与基节点相联的移动节点。数据复制技术把部分数据复制到基节点和移动节点,复制到多个基节点的目的是移动节点在任何地理位置都能查询到所需要的信息;复制到移动节点的目的是当移动节点与基节点失去连接时,仍能查询到所需要的信息。数据缓冲技术是把部分数据库数据缓存到移动节点,减少对基节点的访问,提高系统性能。
数据复制与缓冲技术已经在分布式数据库系统中得到了广泛的应用。传统的数据复制技术主要是在服务器之间复制数据,传统的数据缓冲技术主要在客户机上存储部分数据库的数据。它们都假定服务器之间的连接是固定且不间断的,而这与移动计算环境的移动和网络断接频繁的特点相矛盾。显然,传统的数据复制与缓冲技术不适用于移动数据库系统。为此,针对移动计算环境的特点,人们对数据复制和缓冲技术进行了深入的研究,提出了许多适用于移动数据库系统的数据复制和缓存技术。
1.两级数据复制机制
两级数据复制技术把数据库视为数据对象的集合,每个数据对象有一个主版本和多个副本,主版本存储在被称为主节点的基节点上,副本同时存放在基节点和移动节点,移动节点上的数据对象副本有两个版本:移动主版本来自数据对象主版本所在的主节点;暂态版本是移动节点上被暂时更新的对象值,只有在对主版本更新后才能永久化。两级数据复制机制具有如下特点:
● 移动节点可以在断接情况下对数据库做临时修改;
● 在基节点上的并发事务是可串行化的;
● 只有在基节点上的事务提交后,相关全局事务的结果才成为永久;
● 在所有相连节点上的副本收敛于基节点系统的状态。
两级复制机制在很大程度上满足了理想的复制模式应达到的目标:可用性、可扩展性、移动性、串行性和收敛性。
2.数据缓冲技术
移动计算环境的通信带宽和电池容量十分有限,这对移动数据库的存取产生很大的影响,是移动数据存取的瓶颈。减少移动节点对其他节点(基节点或移动节点)的访问是解决这个瓶颈问题的关键。数据缓冲是减少移动节点对其他节点访问的有效方法,该技术把经常访问的数据缓存到移动节点本地。近年来,人们对数据缓冲技术进行了大量的研究,重点集中在数据缓冲的组织形式和数据一致性问题上。
数据缓冲的管理分为文件系统层和数据库系统层。目前,人们已经提出了一些移动环境下文件系统的数据缓冲管理方法,如Coda和Bayou系统。在数据库系统层面上,数据缓冲技术的主要问题是如何有效地维护移动客户机和服务器端的一致性问题。基于语义内容的数据缓冲管理方法是一种很有效的方法,主要有以下特点:
● 客户端具有缓存数据的语义描述。在查询处理时,客户端使用语义信息决定本地数据是否可以满足查询条件。通过修改查询条件,向服务器发出本地缓存不能满足的部分数据的查询请求,从而减小通信开销。
● 缓存替换策略信息存储在一个可动态调整的语义区中。其优点是不用维护每一个元组的替换信息,而是通过语义信息维护一组元组的替换信息,极大地减少了物理存储开销。
● 可以使用复杂函数来决定缓存替换的条件。
目前,人们也提出了很多解决缓存数据与服务器数据一致性问题的方法。Barbara等人提出了被称为缓存失效报告广播技术,该方法的优点是可扩展任意数目的可收听广播的客户端,但它也有缺点。此后,G. Cao、K.Wu等人先后提出了相关的改进算法。
数据广播
在一个无线单元内部,从服务器到移动客户机的下行通信带宽一般要远大于从移动客户端到服务器的上行带宽,而且移动客户端从服务器接收数据的开销也远小于发送开销。因此,可以利用这种网络的非对称性,由数据库服务器把大多数用户频繁访问的数据组织起来,以周期性的广播形式提供给移动客户访问,这种数据发布方式称为数据广播技术。这方面的研究工作主要集中在优化访问时间和调谐时间。
查询处理
移动数据库查询处理的挑战性问题是与地理位置相关的查询处理。这方面的研究主要集中在位置更新策略和位置相关查询的优化方法上。Dunham等人给位置相关查询进行了严格的定义,他将此类查询分成两类,即位置敏感查询(location aware query)和位置相关查询(location dependent query)。位置敏感查询是查询条件中不含有与查询者所在位置相关信息的查询,如“火车站在哪里”;位置相关查询是查询条件中隐含有查询者所在位置信息的查询,如“离我最近的饭店在哪里”。位置相关查询的查询处理不同于普通数据库查询处理,它要将移动用户的位置信息加入到查询条件中,并附加必要的语义信息,如“最近的”等。类似的位置相关查询是一类很重要的查询问题,如司机查询最近的加油站、救护车查询最近的医院、旅客查询最近的饭店等。基于以上目的,Baihua Zhang等人提出了提供此类服务的查询处理技术。
如何对移动对象的位置进行管理也是一个重要的研究问题。Simonas等人提出了使用R*树索引技术来支持对移动目标位置进行的查询。使用基于语义的缓冲技术对连续移动客户机发出的查询进行优化处理也是越来越受到人们重视的研究问题。如果一个不断移动的用户连续发出位置相关查询,则按照位置条件将以前查询结果进行缓存,可以使用缓存内的部分数据满足部分查询要求,从而加快查询响应速度,减少通信开销,提高查询处理效率。
事务处理与故障恢复
移动事务是由移动客户机发出的事务。移动事务的部分计算工作放在移动客户机上进行,其余部分计算提交给固定服务器完成。移动事务可以通过具有弱连接性的无线方式存取远程数据,也可以在断接的情况下存取本地的数据副本。移动和分布式事务管理之间的区别是显著的,因为它们的目标不一样。分布式事务管理的主要目标是在满足原子性、一致性、隔离性和永久性的条件下获得最大的可用性;移动事务处理的主要目标是在达到一定程度的一致性的同时获得最大的可靠性。移动事务在执行期间,不仅发出事务的移动客户机是移动的,事务本身也在相应地移动。由于无线网络的低带宽、高延迟和移动客户机的断接性,移动事务一般都是长事务。显然,移动事务与传统事务之间的差别很大,传统的ACID模型已不适用,需要新的事务模型来描述。
1.移动嵌套事务模型
移动嵌套事务模型把移动事务定义为相对独立的事务集合,这些事务交替执行,并具有嵌套层次结构。一个事务可以进一步分解为多个嵌套的事务,称为复合事务,它可以具有多层嵌套结构。构成一个复合事务的事务可以称为这个复合事务的子事务。复合事务允许独立地进行提交或者终止操作。如果复合事务的一个子事务终止,则这个复合事务(还没有提交)也将终止。移动事务分为原子事务、不可补偿的事务、报告事务和协同事务四种类型。
2.Kangaroo事务模型
Kangaroo模型是基于全局事务和拆分事务模型建立的。在跨区切换的位置上,通过拆分事务来实现事务的重定位。一个移动事务在一个多数据库环境中被看成是一个全局事务,Kangaroo事务是包含一组Joey事务的全局事务。一个Joey事务与一个基站或执行它的cell相关。一个Joey事务应该以终止、提交或者拆分状态之一来结束。如果一个Kangaroo事务要成功的话,最后一个执行的Joey事务应当以提交或者终止来结束。
3.簇模型
簇模型是建立在完全分布式系统之上的。数据库被分成多个簇。一个簇定义了一组互相一致的数据。在不同的簇之间允许存在一定范围内的不一致。这些不一致最终将通过簇的合并来解决。簇模型是基于嵌套事务模型建立的,并被扩展应用于移动计算中。一个从移动主机上提交的事务由一组弱的和强的事务组成。
4.故障恢复
目前已经出现了很多移动数据库系统故障恢复的方法。限于篇幅,我们只介绍基于检查点的故障恢复策略,包括以下三种:
(1) 每当收到一条消息时,就设立一个检查点,并记录全局的一致性信息;
(2) 在移动客户机目前正连接的基站上记录事务的状态信息;
(3) 在移动客户机和固定存储设备上同时存储事务的检查点状态。