一种移动数据库的关联事务处理方法

文档序号:7665505阅读:107来源:国知局
专利名称:一种移动数据库的关联事务处理方法
一种移动数据库的关联事务处理方法
技术领 域
本发明属于移动计算领域,涉及一种事务处理方法,具体涉及一种移动数据 库中关联事务冲突处理方法。
背景技术
无线网络技术和便携式设备的发展,以及这两种技术的结合,产生了一个新 的计算领域,称为移动计算(Mobile Computing)。在移动计算环境中,无论 处于什么物理位置或者处于什么运动状态,携带便携式信息设备的用户都可以通 过共享的基础网络设施来访问所需的信息服务。
由移动客户机发出的事务叫做移动事务。移动事务实际上是一种分布事务, 其中一部分计算工作放在客户机上完成,而其它部分则交给固定结点(服务器)完 成。移动事务是在移动主机位置经常变化、自身所带能源和数据资源有限、并通 过不可靠的无线网络与静态支持站点连接的环境中执行的。
目前提出的各种移动事务处理模型中,大多数都将移动事务看作由一组子事 务组成,每个子事务都支持灵活的数据一致性和提交操作。移动事务的管理可集 中于移动客户机或者数据库服务器,也可以在移动客户机移动的同时从一个基站 转移到下一个基站上。移动客户机的断接操作引入了移动事务处理中的一些特殊 要求。 一方面,客户机断开网络连接不能简单的视为事务失败。如果移动客户机 操作的数据或方法必须执行完才能保证正确性,那么断接后操作必须能够继续执 行。另一方面,鉴于移动事务的长事务特性,同时移动客户机也可能需要进行一 些数据操作。因此,为了保证在断接状态下的系统工作效率,移动终端也必须有 一定的事务管理功能。所以,移动数据库系统中要求更强的自治性。
把移动节点上的移动事务的结果集传递到同步服务器,并由同步服务器将结 果集直接合并到主数据库中是一种较为直观的同步方法,也是目前大多数移动数 据库系统所采用的方法,例如Sybase Ultralite和Mobilink、旧M DB2 Everyplace等。移动节点在和网络断开连接时,对数据的存取直接在本地数据 副本上进行,当移动节点再次和网络连接时,由移动用户启动同步过程把移动事 务在本地数据副本上执行的结果集发送给同步服务器,同步服务器负责把这个结 果集合并到主数据库中。在合并过程中,由于多个移动用户可能对同一个数据对
象进行了修改,因此一个移动节点的同步过程可能会和其他移动节点产生冲突, 系统需要通过某种方式来检测和处理这种冲突。
整个同步过程可以分为两个步骤,分别为数据上载过程和数据下载过程。结 果集数据流从移动设备到同步服务器、再从同步服务器到主数据库的过程为数据 上载过程,这个过程中要进行冲突的检测和处理。通过数据上载,将移动设备上 数据副本的更新反映到主数据库中。相对应的,主数据库中的最新数据通过同步 服务器再到移动设备,以刷新移动设备上数据副本的过程为数据下载过程。
结果集传递直接合并的方法避免了移动事务在主数据库上重复执行的过程,
在一定程度上减轻了主数据库服务器的负荷;而且这类方法的同步粒度可以细到 以元组为同步单位,能提交全局提交率,因此具有较好的系统性能。
同步粒度是移动数据库数据同步的基本单位。根据目前的研究情况可以将同 步粒度分为三类元组,操作,事务。不同的同步粒度有各自的优点和缺点。选
择元组作为同步粒度是大多数商用移动数据库的做法。这种方法快速简单,移动 终端甚至不需要自己维护事务执行,但是这种方法依赖于语义,并且以数据为同 步粒度破坏了事务的原子性。以单个数据库操作作为同步粒度,移动终端需要保
存执行的SQL语句,不需要在固定主机重新生成,减轻了同步服务器的负载。 但是在冲突处理过程中,由于一个SQL语句可能涉及到多个元组,增加冲突检 测的难度。最后一种同步粒度是事务,选择事务为同步粒度要求移动终端的冲突 处理能力增强。这种同步粒度满足原子性,但是回滚次数较多,影响系统执行效率。
以移动事务的结果集为同歩粒度是一种较为合适的同步机制。在进行同步处 理时,每个移动事务的结果集作为一个同步单元进行同步,这样既保证了移动事 务的原子性,不会破坏数据一致性,而且不会因为同步某个移动事务的结果集产 生的冲突而导致其他所有移动事务的结果也被撤销。下面对关联事务和相关定义 进行简单介绍。
定义i (事务读集)事务r的读集Re^&"r)为其读过的数据对象的集合。 定义2 (事务写集)事务r的写集『hte&"r)为其修改过的数据对象的集合。 定义3 (事务结果集)事务r的结果集Re^^^(r)为r写集中各数据元素对 应的值的集合。
定义4 (关联事务)事务的关联是指存在两个或者两个以上事务重复操作某
一个或者多个相同的数据对象。如果出现这种情况,则把这些相关事务称为关联事务。两个事务^和r2是关联事务,需要满足下面两个条件
,tesw(ri)门歸e&"r2) - 0 (i)
Rea必ef(j2)门,te&,'(ri) # 0 (2)
记为关联事务《77^ = {7\^},由此可以类推到多个事务之间关联。 假设有"个串行执行的事务^ (/" =》2),其中任意两个事务r,和r, (,',./ = 1,...,",/<乂),满足(l) (2)这两个条件,贝ij"个事务z:,,— = 1,...,","")关 联。多个事务关联就是要求其中任意两个事务都要有关联关系,记为f,r2, ,r }。 两个事务的关联是多个事务关联的特殊情况。 发明内 容
本发明提出了一种移动数据库的关联事务处理方法,本方法以关联事务作为 数据同步的基本粒度,移动终端按照事务之间的关联性进行结果集合并,采用关 联事务划分算法、冲突处理算法来处理结果集,终端只需要上载关联事务操作结 果和相应的时间戳就可以完成同步过程;事务处理过程确保了事务执行的正确 性、串行性和原子性,降低了系统的时间和空间开销和出错事务的回滚次数,加 快了系统响应时间,使系统运行速度更加稳定、迅速。
一种移动数据库的关联事务处理方法,其特fiE在于,本方法包括如下步骤 步骤l:用户向移动用户发出数据操作请求,移动终端接收到该请求; 步骤2:移动终端查找本地缓存,如果本地缓存了请求涉及的数据,则在本 地执行移动事务,实现本地提交,否则在网络连通时将数据操作请求上载到同步
服务器;
步骤3:本地保存的移动事务根据关联性进行划分,首先根据事务之间的关 联性找到二元关联事务,去掉不满足串行性要求的事务集合,在剩下的集合中根 据关联性继续合并,直到最终不能合并出关联事务;最后在剩余的集合中找到数 目最少的,且可以覆盖所有事务的关联事务结果集;
步骤4:在无线网络连通时,移动终端将关联事务结果集上载到同步服务器, 否则在上载队列中等待;
步骤5:移动终端发送的关联事务结果集全局提交到同步服务器后,同步服
务器进行冲突处理;冲突处理结束后,该事物集中正确的集合被提交并写入到数 据库,处理结果被发送到移动终端;出错集合被发送到移动终端,移动终端根据 出错集合寻找相关的本地操作,取消已经执行的本地操作,等待从同步服务器下 载最新的数据,根据这些最新数据重新执行出错的操作。 所述歩骤3中,如果当前合并过程中修改的事物集合和前述合并过程中修改 的事物集合相同,且当前合并过程中读到的事物集合正确,则直接用当前合并的
结果覆盖前述合并的结果;如果当前合并过程中读到的事物集合不正确或和前述 合并过程中修改的事物集合不同,则不进行覆盖操作。
所述步骤3中首先查看事务集合的第一个事务,如果下一个事务和该事务有 关联特性,则将这两个事务组成关联事务,并将两个事务对应标识项置为1;反 之,则顺次查找,直到找到有关联关系的事务,或者达到事务集合末尾结束;然 后判断集合中第二个事务,寻找其关联事务,如果该事务的标识为1,则不再判 断,转而寻找下一个事务的关联事务,直至判断到事务集合末尾。
所述步骤3中事务的存储采用线性表结构;设置一个标识数组,数组长度与 ^务个数相同,数组中各项初始值为O。
所述步骤3中,如果采用链表的形式存储事务,则将满足关联关系的事务从 链表中删除,另存在一个新的链表中。
所述步骤5中所述冲突处理过程中,同步服务器把这些事务按照接收的顺序 保存在一个线性表中,如果存在几个关联事务的读集之间的交集不为空,并且这 儿个关联事务来自不同的终端,则按照关联读集中每个读项保存的每次操作的时 间戳最大的读项为准;并将时间戳较小的该读集中的读项添加到出错读集中;反 之则不作处理。
所述步骤5中关联事务读集中的每一个读项对应着该事务中一个操作在操 作过程中读到的数据。
本发明一种基于关联事务的移动数据库冲突处理方法的优点在于
(1) 本方法中,采用乐观复制机制。乐观复制不需要锁资源,也不需要持 续的连接状态。由于复制机制允许数据存储在多个节点(固定节点和移动节点), 移动节点可以在本地访问并且修改数据,节省与固定主机的通信次数,加快系统 响应时间。
(2) 本方法中,选择关联事务作为数据同步的基本粒度。通过对关联事务 的操作结果进行合并,不需要保存中间结果,节省存储空间。以关联事务为同步 粒度的冲突处理策略确保事务执行的正确性、串行性和原子性。
(3) 本方法中的同步服务器冲突处理机制采用回滚部分操作的方法。当某 个关联事务提交失败,则需要回滚部分事务,从出错事务开始回滚。这样做的结 果可以减少事务回滚次数,使系统运行速度更加迅速。
附 图 说 明


图1为移动计算环境的示意图; 图2为移动数据库系统的系统架构图; 图3为本发明一种移动数据库的关联事务处理方法的流程图; 图4为本发明一种移动数据库的关联事务处理方法的关联事务划分算法流 程图5为本发明一种移动数据库的关联事务处理方法的关联事务划分算法线 性表结构示意图6为本发明一种移动数据库的关联事务处理方法中传统方法和关联事物 处理方法的本地提交时间比较图7为本发明一种移动数据库的关联事务处理方法中传统方法和关联事物 处理方法的提交事务个数比较图8为本发明一种移动数据库的关联事务处理方法中传统方法和关联事物 处理方法的本地空间开销比较图。
具体实施例方式
下面将结合附图和实施例对本发明作进一步的详细说明。
本发明是一种移动数据库的关联事务处理方法'。为了解决乐观复制带来的副 本不一致性,以及现有的事务处理方法影响系统的实用性和可扩充性。采用了关 联事务划分算法、关联事务冲突处理算法等技术手段。
移动计算环境不同于传统的分布式计算环境。传统的分布式计算环境具有如
下假设主机位置固定不变、主机的地址信息是已知的、各结点通过固定网络保 存持续性的连接、网络通讯满足对称性等等。在移动计算系统中,上述假设条件 不再成立。整个移动计算环境是一个由固定结点和移动结点构成的分布计算系 统,是一种动态的分布式环境。在该系统中,用户的位置不再是固定不变的,用 户可以携带着移动计算机自由移动,并在移动的过程中仍可通过移动通信网络保 持与固定节点或其他移动结点的连接。
如图1所示,在移动计算环境中,固定网络连接着两类结点。其中一类结点 配备有无线通讯接口,可以支持一个无线网络单元,被称之为移动支持结点 (MSS),另一类结点为不带无线通讯接口的固定结点(SVR)。两类结点通过 固定网络进行连接。每个无线单元中有若干个移动终端(MC),它们通过无线 网络与MSS之间进行连接,从而最终连入固定网络。相对于可靠性不高的无 线网络单元,可将固定网络部分视为可信部分。无线网络的覆盖访问取决于它们 采用的无线通信技术,例如普通无线LAN单元只能覆盖直径几百米的访问,而 采用的卫星通信的无线网络单元只需几个即可覆盖整个地球。在移动计算环境 中,移动计算机可以从任何一个无线网络单元经由MSS连接到固定网络中, 并且在无线通讯单元内或单元间移动时仍然可以保持通讯连接,从而实现了自由 的移动性。
如图2所示,本发明涉及的移动数据库系统由移动终端,同步服务器和后台 数据库三部份组成。移动终端可以运行在各种移动设备上,包括PDA,笔记本 电脑和智能手机。同步服务器运行在固定的PC上。后台数据库为比较大型的数 据库,如Oracle、 SQL Server或者Sybase。移动终端包括通信模块,同步管 理模块和事务模块。同步服务器包括通信模块,同步管理模块,冲突处理模块。 移动终端和同步服务器的无线通信选择数据同步行业的标准协议SyncML (开 源工具包)。
本实施例中,整个移动数据库系统采用C/S结构,包括一个同步服务器 (Celeron CPU 2.6GHz, 512M内存,硬盘80G,数据库配置为Oracle 9i企 业版),5个移动终端(Celeron CPU 2.6GHz, 512M内存,硬盘80G,数据 库配置为ACCESS 2003)。用户数据请求的时间分布满足泊松分布,其中参数 入=100;用户对数据库的数据访问请求随机,测试指标包括本地提交时间、提交 事务个数和本地保存所有SQL操作结果的空间个数,为了保证操作本地缓存的 数据,不考虑缓存不命中情况。
如图3所示,本实施例的详细工作步骤如下
步骤一用户向移动用户发出数据操作请求,移动终端接收到该请求。 步骤二移动终端将一些频繁访问的数据保存在本地缓存,移动终端查找本 地缓存,如果本地缓存含有请求涉及的数据,则在本地执行移动事务,实现本地 提交,否则将数据请求保存到上载请求队列(Upload Request Queue),在网 络连通时将数据操作请求釆用蓝牙方式上载到同步服务器。
步骤三对于依赖缓存可以处理的数据请求,形成移动事务,本地保存的移 动事务根据关联性进行划分;移动事务集合中的元素以带头节点的单链表的形式 保存,保存时只需要保存该头节点,事务的执行顺序按照的单链表中保存的顺序, 从头部开始查找。本实施例中,测试的移动事务集合中元素随机生成,关键字唯 一,且元素个数分别为100, 200, 300, 400, 500,且每个请求生成的本地
事物包括两个数据库操作。
首先根据事务之间的关联性找到二元关联事务,去掉不满足串行性要求的事 务集合,再寻找覆盖所有数据的最小闭包。保证每个关联事务集合中的事务都不 相交,但是所有事务都可以在关联事务集合中找到。寻找覆盖所有事务的最小闭 包问题为集合覆盖问题,其相应的判定问题推广到NP完全的顶点覆盖问题,同 时考虑到得到最优解的时间复杂度和空间开销问题,因此选择一种比较简单的集 合覆盖算法。关联事务仅合并到二元关联事务,并且判断两个事务之间是否具有 关联性是通过关联事务定义实现的。
对于某个事务,首先根据定义得到该事务的关联读集、关联写集和关联结果 集。关联读集是操作该事务时读到的所有数据,读集中包括一个个读项。我们用 记录的键值和域来唯一的标识一个数据。对于插入操作,不需要读集,对于更新 操作,要把更新的数据的标识添加到读集中,作为一个读项,对于删除操作,并 不是直接的删除数据,仅是做个标记,需要将删除的数据添加到读集中。关联写 渠是操作事务时需要写的数据,插入操作中,所有的插入数据的标识都需要添加 到写集中,更新操作涉及的数据的标识也需要添加到写集中,至于删除操作,不 需要将删除的数据标识添加到写集中。关联事务结果集的求法按照下面的方法 如果当前合并过程中修改的事物集合和前述合并过程中修改的事物集合相同,且 当前合并过程中读到的事物集合正确,则直接用当前合并的结果覆盖前述合并的 结果;如果当前合并过程中读到的事物集合不正确或和前述合并过程中修改的事 物集合不同,则不进行覆盖操作。
如附图4所示,关联事务划分算法的输入是事务的集合,事务的存储采用线 性表结构。设置一个标识数组,数组长度与事务个数相同,也就是说每个事务对 应数组中的一个数据项,数组中各个项初始值为O,首先查看事务集合的第一个 事务,如果下一个事务和该事务有关联特性,则将这两个事务组成关联事务,将 两个事务对应的数组标识项置为1;反之,则顺次查找,直到找到有关联关系的 事务,或者达到事务集合末尾结束。然后判断集合中第二个事务,寻找和它有关 联关系的事务,如果该事务的标识为1,则表示该事务已经和其他事务组成关联 ,务了,则不再判断,转而寻找下一个事务的关联事务,直至判断到事务集合末 尾。
如果采用链表的形式存储事务,则将满足关联关系的事务从链表中删除,另 外保存在一个新的链表中。算法的输出就是一个关联事务集合,该集合中包含了
输入的所有事务,不同的是一些事务之间根据关联性合并为一个事务。 确定关联事务划分算法如下
a、 初始化数据结构如图5所示,根据算法描述,移动事务的保存采用线 性表结构。假设移动终端的移动事务集合为^7"/l,','砂[],用来标记每个事务是否 是关联事务的布尔型数组,"&x4my;[]初始值为0,结果输出的关联事务集合为 On 7)w;[]。
b、 算法实现如下
1) 首先根据定义得到每个事务的读集,写集和结果集。具体方法是根据不 同的操作类型来处理。例如,插入操作的数据标识需要添加到写集中,更新操作 的数据标识添加到读集和写集中,删除操作的数据标识添加到读集中。
2) 用指向移动终端的移动事务集合/m"血my[]中的第一个事务;
3) 如果指针fra"/V指向事务不为^"Araj;[]中最后一个事务,则股W/V指 向/ra"Z^的下一个事务;如果/ra"i^指向最后一个事务,表示事务已经完全合
并,算法结束;
4) 根据定义4判断/;W7/V和m^/V指向的事务之间是关联的,则将这两个 事务保存在关联事务集合Com;rra"[]中,同时将/"6fedra乂]中对应的/rawftr和 "er/尸"'的标识设置为1, /ra"尸/r指向事务集合/ra"血ra乂]中的下一个事务,重复 执行3);
5) 否则如果两个指针指向的事务之间没有关联性,则将"'""/V指向自身指 向的移动事务集合fm,";'ray[]中的下一个事务,重复执行3);
6) 遍历Z"afedra乂],将/^fcx^ra乂]中标识为0的事务添加到关联事务集合 CV"Te7V""[],由于具有关联关系的事务合并后已经添加到关联事务集合 Co,-re7V"w[]了,并且这些事务在事务/^feo4m94]中的标识为1,我们要做的是将 找不到关联关系的事务,也就是/^ex力'/',[]中标识为0的事务添加('om 7V""[]末 尾。这样做的目的是关联事务集合可以覆盖到所有事务。然后设置/"^x4m/y[]中
对应标识为1;
6)遍历关联事务集合C^7rrra"[],得到关联事务的关联读集""/o"Re必〖&Z , 关联写集,/wj附',te5W和相应的关联结果集,朋1^仰//&/ ,其中关联读集是组成 关联事务的各个事务的读集的并集,同理可以得到关联写集和关联结果集。
所以每个关联事务中最多包含两个事务。关联事务和普通事务相比,减少了 空间开销。因为关联事务可以合并相关联的操作,所以不需要保存事务提交的中
间结果,但是提交效果相同,节省时间开销。
步骤四操作关联事务得到操作结果,将操作结果写入本地缓存,执行本地 提交。在无线网络连通时,移动终端将形成的关联事务结果集采用蓝牙方式上载 到同步服务器。
本实施例中,提交事务的个数影响移动终端上载同步服务器的数据包个数, 如果一个事务可以封装为一个数据包,那么提交的事务个数越多,网络传输的数 据包个数就越多。实验测试数据随机生成,为了方便测试,暂不考虑出错事务, 且操作类型全部为更新操作。
步骤五同步服务器接收到移动终端发送的关联事务集合后,先把这些事务
按照接收的顺序保存在一个线性表中。由于终端可以在网络断接中操作本地数据
而不需要通知其他节点,所以多个移动终端可能操作同一个数据,这样各个终端
的数据是不一致的。冲突处理就是解决这种乐观复制造成的多副本不一致。采取
的方法是查看接收到的来自各个移动终端的关联事务集合中每个关联事务的读
集,关联事务的读集中包括每个操作的时间戳,还包括每个事务的终端标识,表
明该事务来自哪个终端。在检查关联事务读集的时候,如果存在几个关联事务的
读集有相同的部分,也就是读集中的某些读项相同,并且这几个关联事务来自不
同的终端,表明这几个关联事务操作了相同的数据副本,但是在操作时没有通知
其他终端,也就是出现了冲突。由于关联读集中每个读项都保存了每次操作的时
间戳,则按照时间戳大的读项为准,将时间戳较小的读项添加到一个集合中,这
个集合叫做出错读集。然后检查下一个关联事务,直到找到所有的冲突。
本方法中,需要注意的是不是将整个读集添加到出错读集,是将关联事务 读集中的出现冲突的一项添加到出错读集中,关联事务读集对应一个事务,读集
中的读项对应一个操作,所以回滚的单位不是事务,而是事务中的操作。同步服 务器检查完所有关联事务后,按照终端标识将出错读集发送给各个终端,移动终 端根据出错集合寻找相关的本地操作,取消已经执行的本地操作,等待从同步服 务器下载最新的数据,并将出错读集中涉及到的操作执行回滚操作。
实验包括三组,第一组测试本地提交时间,测试结果如图6所示。从图中可 以看出,关联事务划分算法的本地提交时间明显小于传统事务处理算法。当测试 事务个数为500时,关联事务划分算法提交时间大约是传统事务处理算法提交
时间的4,并且随着事务增多,响应速度差异更加明显。
如图7所示,显示的是两种算法在承载数据量相同的情况下,提交事务个数
的比较结果。从图中可以看出,关联事务划分算法提交的事务个数大概是传统事 务处理算法个数的一半,约为55%。因为关联事务划分算法根据事务的关联性 将事务合并,合并后事务个数明显减少;传统事务处理算法采用传统的事务执行 方法,提交的事务个数为初始化输入的事务个数。
如图8所示,为关联事务划分算法和传统事务处理算法执行时空间开销比较
的结果。关联事务划分算法与传统事务处理算法相比节省了27。/。左右的存储空 间。传统事务处理算法需要保存每个事务执行的结果,占用大量的存储空间,而 关联事务划分算法只需要保存关联事务执行的最后结果,中间数据对最终结果没
有影响。
从上面的实验数据可知,关联事务划分算法在空间和时间开销上都优于传统 率务处理算法。冲突处理算法以关联事务划分算法为基础,采用回滚部分操作的 方式,降低回滚率。实验结果表明关联事务算法和冲突处理算法具有良好性能和 应用价值。
权利要求
1、一种移动数据库的关联事务处理方法,其特征在于,本方法包括如下步骤步骤一用户向移动用户发出数据操作请求,移动终端接收到该请求;步骤二移动终端查找本地缓存,如果本地缓存了请求涉及的数据,则在本地执行移动事务,实现本地提交,否则在网络连通时将数据操作请求上载到同步服务器;步骤三本地保存的移动事务根据关联性进行划分,首先根据事务之间的关联性找到二元关联事务,去掉不满足串行性要求的事务集合,在剩下的集合中根据关联性继续合并,直到最终不能合并出关联事务;最后在剩余的集合中找到数目最少的,且可以覆盖所有事务的关联事务结果集;步骤四在无线网络连通时,移动终端将关联事务结果集上载到同步服务器,否则在上载队列中等待;步骤五移动终端发送的关联事务结果集全局提交到同步服务器后,同步服务器进行冲突处理;冲突处理结束后,该事物集中正确的集合被提交并写入到数据库,处理结果被发送到移动终端;出错集合被发送到移动终端,移动终端根据出错集合寻找相关的本地操作,取消已经执行的本地操作,等待从同步服务器下载最新的数据,根据这些最新数据重新执行出错的操作。
2、 根据权利要求1所述一种移动数据库的关联事务处理方法,其特征在于所述步 骤三中,如果当前合并过程中修改的事物集合和前述合并过程中修改的事物集合相 同,且当前合并过程中读到的事物集合正确,则直接用当前合并的结果覆盖前述合并的结果;如果当前合并过程中读到的事物集合不正确或和前述合并过程中修改的事物 集合不同,则不进行覆盖操作。
3、 根据权利要求1所述一种移动数据库的关联事务处理方法,其特征在于所述步 骤三中首先查看事务集合的第一个事务,如果下一个事务和该事务有关联特性,则将这两个事务组成关联事务,并将两个事务对应标识项置为1;反之,则顺次查找,直 到找到有关联关系的事务,或者达到事务集合末尾结束;然后判断集合中第二个事务, 寻找其关联事务,如果该事务的标识为1,则不再判断,转而寻找下一个事务的关联 事务,直至判断到事务集合末尾。
4、 根据权利要求1或3所述一种移动数据库的关联事务处理方法,其特征在于所述歩骤三中事务的存储采用线性表结构;设置一个标识数组,数组长度与事务个数相 同,数组中各项初始值为o。
5、 根据权利要求1或3所述一种移动数据库的关联事务处理方法,其特征在于所 述步骤三中,如果采用链表的形式存储事务,则将满足关联关系的事务从链表中删除, 另存在一个新的链表中。
6、 根据权利要求1所述一种移动数据库的关联事务处理方法,其特征在于所述步 骤五中所述冲突处理过程中,同步服务器把这些事务按照接收的顺序保存在一个线性 表中,如果存在几个关联事务的读集之间的交集不为空,并且这几个关联事务来自不 同的终端,则按照关联读集中每个读项保存的每次操作的时间戳最大的读项为准;并 将时间戳较小的该读集中的读项添加到出错读集中;反之则不作处理,直接将该事物 集中正确的集合被提交并写入到数据库。
7、 根据权利要求6所述一种移动数据库的关联事务处理方法,其特征在于所述步 骤五中关联事务读集中的每一个读项对应着该事务中一个操作在操作过程中读到的数据。
全文摘要
本发明提出了一种移动数据库的关联事务处理方法,采用了关联事务划分算法、关联事务冲突处理算法等技术手段。以关联事务作为数据同步的基本粒度,移动终端按照事务之间的关联性进行结果集合并,采用关联事务划分算法、冲突处理算法来处理结果集,终端只需要上载关联事务操作结果和相应的时间戳就可以完成同步过程;事务处理过程确保了事务执行的正确性、串行性和原子性,降低了系统的时间和空间开销和出错事务的回滚次数,加快了系统响应时间,使系统运行速度更加稳定、迅速,具有良好的实用性和可扩充性。
文档编号H04L29/08GK101184106SQ200710178568
公开日2008年5月21日 申请日期2007年11月30日 优先权日2007年11月30日
发明者张晓丹, 牛建伟 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1