CN101184106A - 一种移动数据库的关联事务处理方法 - Google Patents
一种移动数据库的关联事务处理方法 Download PDFInfo
- Publication number
- CN101184106A CN101184106A CNA2007101785682A CN200710178568A CN101184106A CN 101184106 A CN101184106 A CN 101184106A CN A2007101785682 A CNA2007101785682 A CN A2007101785682A CN 200710178568 A CN200710178568 A CN 200710178568A CN 101184106 A CN101184106 A CN 101184106A
- Authority
- CN
- China
- Prior art keywords
- affairs
- association
- data
- transaction
- portable terminal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种移动数据库的关联事务处理方法,采用了关联事务划分算法、关联事务冲突处理算法等技术手段。以关联事务作为数据同步的基本粒度,移动终端按照事务之间的关联性进行结果集合并,采用关联事务划分算法、冲突处理算法来处理结果集,终端只需要上载关联事务操作结果和相应的时间戳就可以完成同步过程;事务处理过程确保了事务执行的正确性、串行性和原子性,降低了系统的时间和空间开销和出错事务的回滚次数,加快了系统响应时间,使系统运行速度更加稳定、迅速,具有良好的实用性和可扩充性。
Description
技术领域
本发明属于移动计算领域,涉及一种事务处理方法,具体涉及一种移动数据库中关联事务冲突处理方法。
背景技术
无线网络技术和便携式设备的发展,以及这两种技术的结合,产生了一个新的计算领域,称为移动计算(Mobile Computing)。在移动计算环境中,无论处于什么物理位置或者处于什么运动状态,携带便携式信息设备的用户都可以通过共享的基础网络设施来访问所需的信息服务。
由移动客户机发出的事务叫做移动事务。移动事务实际上是一种分布事务,其中一部分计算工作放在客户机上完成,而其它部分则交给固定结点(服务器)完成。移动事务是在移动主机位置经常变化、自身所带能源和数据资源有限、并通过不可靠的无线网络与静态支持站点连接的环境中执行的。
目前提出的各种移动事务处理模型中,大多数都将移动事务看作由一组子事务组成,每个子事务都支持灵活的数据一致性和提交操作。移动事务的管理可集中于移动客户机或者数据库服务器,也可以在移动客户机移动的同时从一个基站转移到下一个基站上。移动客户机的断接操作引入了移动事务处理中的一些特殊要求。一方面,客户机断开网络连接不能简单的视为事务失败。如果移动客户机操作的数据或方法必须执行完才能保证正确性,那么断接后操作必须能够继续执行。另一方面,鉴于移动事务的长事务特性,同时移动客户机也可能需要进行一些数据操作。因此,为了保证在断接状态下的系统工作效率,移动终端也必须有一定的事务管理功能。所以,移动数据库系统中要求更强的自治性。
把移动节点上的移动事务的结果集传递到同步服务器,并由同步服务器将结果集直接合并到主数据库中是一种较为直观的同步方法,也是目前大多数移动数据库系统所采用的方法,例如Sybase Ultralite和Mobilink、IBM DB2Everyplace等。移动节点在和网络断开连接时,对数据的存取直接在本地数据副本上进行,当移动节点再次和网络连接时,由移动用户启动同步过程把移动事务在本地数据副本上执行的结果集发送给同步服务器,同步服务器负责把这个结果集合并到主数据库中。在合并过程中,由于多个移动用户可能对同一个数据对象进行了修改,因此一个移动节点的同步过程可能会和其他移动节点产生冲突,系统需要通过某种方式来检测和处理这种冲突。
整个同步过程可以分为两个步骤,分别为数据上载过程和数据下载过程。结果集数据流从移动设备到同步服务器、再从同步服务器到主数据库的过程为数据上载过程,这个过程中要进行冲突的检测和处理。通过数据上载,将移动设备上数据副本的更新反映到主数据库中。相对应的,主数据库中的最新数据通过同步服务器再到移动设备,以刷新移动设备上数据副本的过程为数据下载过程。
结果集传递直接合并的方法避免了移动事务在主数据库上重复执行的过程,在一定程度上减轻了主数据库服务器的负荷;而且这类方法的同步粒度可以细到以元组为同步单位,能提交全局提交率,因此具有较好的系统性能。
同步粒度是移动数据库数据同步的基本单位。根据目前的研究情况可以将同步粒度分为三类:元组,操作,事务。不同的同步粒度有各自的优点和缺点。选择元组作为同步粒度是大多数商用移动数据库的做法。这种方法快速简单,移动终端甚至不需要自己维护事务执行,但是这种方法依赖于语义,并且以数据为同步粒度破坏了事务的原子性。以单个数据库操作作为同步粒度,移动终端需要保存执行的SQL语句,不需要在固定主机重新生成,减轻了同步服务器的负载。但是在冲突处理过程中,由于一个SQL语句可能涉及到多个元组,增加冲突检测的难度。最后一种同步粒度是事务,选择事务为同步粒度要求移动终端的冲突处理能力增强。这种同步粒度满足原子性,但是回滚次数较多,影响系统执行效率。
以移动事务的结果集为同步粒度是一种较为合适的同步机制。在进行同步处理时,每个移动事务的结果集作为一个同步单元进行同步,这样既保证了移动事务的原子性,不会破坏数据一致性,而且不会因为同步某个移动事务的结果集产生的冲突而导致其他所有移动事务的结果也被撤销。下面对关联事务和相关定义进行简单介绍。
定义1(事务读集)事务T的读集ReadSet(T)为其读过的数据对象的集合。
定义2(事务写集)事务T的写集WriteSet(T)为其修改过的数据对象的集合。
定义3(事务结果集)事务T的结果集ResultSet(T)为T写集中各数据元素对应的值的集合。
定义4(关联事务)事务的关联是指存在两个或者两个以上事务重复操作某一个或者多个相同的数据对象。如果出现这种情况,则把这些相关事务称为关联事务。两个事务T1和T2是关联事务,需要满足下面两个条件:
WriteSet(T1)∩WriteSet(T2)≠ (1)
ReadSet(T2)∩WriteSet(T1)≠ (2)
记为关联事务UT1={T1,T2},由此可以类推到多个事务之间关联。
假设有n个串行执行的事务Tm(m=1,...,n,n≥2),其中任意两个事务Ti和Tj(i,j=1,....,n,i<j),满足(1)(2)这两个条件,则n个事务Tm(m=1,...,n,n≥2)关联。多个事务关联就是要求其中任意两个事务都要有关联关系,记为{T1,T2,...Tn}。两个事务的关联是多个事务关联的特殊情况。
发明内容
本发明提出了一种移动数据库的关联事务处理方法,本方法以关联事务作为数据同步的基本粒度,移动终端按照事务之间的关联性进行结果集合并,采用关联事务划分算法、冲突处理算法来处理结果集,终端只需要上载关联事务操作结果和相应的时间戳就可以完成同步过程;事务处理过程确保了事务执行的正确性、串行性和原子性,降低了系统的时间和空间开销和出错事务的回滚次数,加快了系统响应时间,使系统运行速度更加稳定、迅速。
一种移动数据库的关联事务处理方法,其特征在于,本方法包括如下步骤:
步骤1:用户向移动用户发出数据操作请求,移动终端接收到该请求;
步骤2:移动终端查找本地缓存,如果本地缓存了请求涉及的数据,则在本地执行移动事务,实现本地提交,否则在网络连通时将数据操作请求上载到同步服务器;
步骤3:本地保存的移动事务根据关联性进行划分,首先根据事务之间的关联性找到二元关联事务,去掉不满足串行性要求的事务集合,在剩下的集合中根据关联性继续合并,直到最终不能合并出关联事务;最后在剩余的集合中找到数目最少的,且可以覆盖所有事务的关联事务结果集;
步骤4:在无线网络连通时,移动终端将关联事务结果集上载到同步服务器,否则在上载队列中等待;
步骤5:移动终端发送的关联事务结果集全局提交到同步服务器后,同步服务器进行冲突处理;冲突处理结束后,该事物集中正确的集合被提交并写入到数据库,处理结果被发送到移动终端;出错集合被发送到移动终端,移动终端根据出错集合寻找相关的本地操作,取消已经执行的本地操作,等待从同步服务器下载最新的数据,根据这些最新数据重新执行出错的操作。
所述步骤3中,如果当前合并过程中修改的事物集合和前述合并过程中修改的事物集合相同,且当前合并过程中读到的事物集合正确,则直接用当前合并的结果覆盖前述合并的结果;如果当前合并过程中读到的事物集合不正确或和前述合并过程中修改的事物集合不同,则不进行覆盖操作。
所述步骤3中首先查看事务集合的第一个事务,如果下一个事务和该事务有关联特性,则将这两个事务组成关联事务,并将两个事务对应标识项置为1;反之,则顺次查找,直到找到有关联关系的事务,或者达到事务集合末尾结束;然后判断集合中第二个事务,寻找其关联事务,如果该事务的标识为1,则不再判断,转而寻找下一个事务的关联事务,直至判断到事务集合末尾。
所述步骤3中事务的存储采用线性表结构;设置一个标识数组,数组长度与事务个数相同,数组中各项初始值为0。
所述步骤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所示,关联事务划分算法的输入是事务的集合,事务的存储采用线性表结构。设置一个标识数组,数组长度与事务个数相同,也就是说每个事务对应数组中的一个数据项,数组中各个项初始值为0,首先查看事务集合的第一个事务,如果下一个事务和该事务有关联特性,则将这两个事务组成关联事务,将两个事务对应的数组标识项置为1;反之,则顺次查找,直到找到有关联关系的事务,或者达到事务集合末尾结束。然后判断集合中第二个事务,寻找和它有关联关系的事务,如果该事务的标识为1,则表示该事务已经和其他事务组成关联事务了,则不再判断,转而寻找下一个事务的关联事务,直至判断到事务集合末尾。
如果采用链表的形式存储事务,则将满足关联关系的事务从链表中删除,另外保存在一个新的链表中。算法的输出就是一个关联事务集合,该集合中包含了输入的所有事务,不同的是一些事务之间根据关联性合并为一个事务。
确定关联事务划分算法如下:
a、初始化数据结构:如图5所示,根据算法描述,移动事务的保存采用线性表结构。假设移动终端的移动事务集合为tranArray[],用来标记每个事务是否是关联事务的布尔型数组indexArray[]初始值为0,结果输出的关联事务集合为Corre Tran[]。
b、算法实现如下:
1)首先根据定义得到每个事务的读集,写集和结果集。具体方法是根据不同的操作类型来处理。例如,插入操作的数据标识需要添加到写集中,更新操作的数据标识添加到读集和写集中,删除操作的数据标识添加到读集中。
2)用tranPtr指向移动终端的移动事务集合tranArray[]中的第一个事务;
3)如果指针tranPtr指向事务不为tranArray[]中最后一个事务,则nextPtr指向tranPtr的下一个事务;如果tranPtr指向最后一个事务,表示事务已经完全合并,算法结束;
4)根据定义4判断tranPtr和nextPtr指向的事务之间是关联的,则将这两个事务保存在关联事务集合CorreTran[]中,同时将indexArray[]中对应的tranPtr和nextPtr的标识设置为1,tranPtr指向事务集合tranArray[]中的下一个事务,重复执行3);
5)否则如果两个指针指向的事务之间没有关联性,则将tranPtr指向自身指向的移动事务集合tranArray[]中的下一个事务,重复执行3);
6)遍历indexArray[],将indexArray[]中标识为0的事务添加到关联事务集合CorreTran[],由于具有关联关系的事务合并后已经添加到关联事务集合CorreTran[]了,并且这些事务在事务indexArray[]中的标识为1,我们要做的是将找不到关联关系的事务,也就是indexArray[]中标识为0的事务添加CorreTran[]末尾。这样做的目的是关联事务集合可以覆盖到所有事务。然后设置indexArray[]中对应标识为1;
6)遍历关联事务集合CorreTran[],得到关联事务的关联读集union ReadSet,关联写集unionWriteSet和相应的关联结果集unionRe sultSet,其中关联读集是组成关联事务的各个事务的读集的并集,同理可以得到关联写集和关联结果集。
所以每个关联事务中最多包含两个事务。关联事务和普通事务相比,减少了空间开销。因为关联事务可以合并相关联的操作,所以不需要保存事务提交的中间结果,但是提交效果相同,节省时间开销。
步骤四:操作关联事务得到操作结果,将操作结果写入本地缓存,执行本地提交。在无线网络连通时,移动终端将形成的关联事务结果集采用蓝牙方式上载到同步服务器。
本实施例中,提交事务的个数影响移动终端上载同步服务器的数据包个数,如果一个事务可以封装为一个数据包,那么提交的事务个数越多,网络传输的数据包个数就越多。实验测试数据随机生成,为了方便测试,暂不考虑出错事务,且操作类型全部为更新操作。
步骤五:同步服务器接收到移动终端发送的关联事务集合后,先把这些事务按照接收的顺序保存在一个线性表中。由于终端可以在网络断接中操作本地数据而不需要通知其他节点,所以多个移动终端可能操作同一个数据,这样各个终端的数据是不一致的。冲突处理就是解决这种乐观复制造成的多副本不一致。采取的方法是查看接收到的来自各个移动终端的关联事务集合中每个关联事务的读集,关联事务的读集中包括每个操作的时间戳,还包括每个事务的终端标识,表明该事务来自哪个终端。在检查关联事务读集的时候,如果存在几个关联事务的读集有相同的部分,也就是读集中的某些读项相同,并且这几个关联事务来自不同的终端,表明这几个关联事务操作了相同的数据副本,但是在操作时没有通知其他终端,也就是出现了冲突。由于关联读集中每个读项都保存了每次操作的时间戳,则按照时间戳大的读项为准,将时间戳较小的读项添加到一个集合中,这个集合叫做出错读集。然后检查下一个关联事务,直到找到所有的冲突。
本方法中,需要注意的是:不是将整个读集添加到出错读集,是将关联事务读集中的出现冲突的一项添加到出错读集中,关联事务读集对应一个事务,读集中的读项对应一个操作,所以回滚的单位不是事务,而是事务中的操作。同步服务器检查完所有关联事务后,按照终端标识将出错读集发送给各个终端,移动终端根据出错集合寻找相关的本地操作,取消已经执行的本地操作,等待从同步服务器下载最新的数据,并将出错读集中涉及到的操作执行回滚操作。
实验包括三组,第一组测试本地提交时间,测试结果如图6所示。从图中可以看出,关联事务划分算法的本地提交时间明显小于传统事务处理算法。当测试事务个数为500时,关联事务划分算法提交时间大约是传统事务处理算法提交时间的并且随着事务增多,响应速度差异更加明显。
如图7所示,显示的是两种算法在承载数据量相同的情况下,提交事务个数的比较结果。从图中可以看出,关联事务划分算法提交的事务个数大概是传统事务处理算法个数的一半,约为55%。因为关联事务划分算法根据事务的关联性将事务合并,合并后事务个数明显减少;传统事务处理算法采用传统的事务执行方法,提交的事务个数为初始化输入的事务个数。
如图8所示,为关联事务划分算法和传统事务处理算法执行时空间开销比较的结果。关联事务划分算法与传统事务处理算法相比节省了27%左右的存储空间。传统事务处理算法需要保存每个事务执行的结果,占用大量的存储空间,而关联事务划分算法只需要保存关联事务执行的最后结果,中间数据对最终结果没有影响。
从上面的实验数据可知,关联事务划分算法在空间和时间开销上都优于传统事务处理算法。冲突处理算法以关联事务划分算法为基础,采用回滚部分操作的方式,降低回滚率。实验结果表明关联事务算法和冲突处理算法具有良好性能和应用价值。
Claims (7)
1.一种移动数据库的关联事务处理方法,其特征在于,本方法包括如下步骤:
步骤一:用户向移动用户发出数据操作请求,移动终端接收到该请求;
步骤二:移动终端查找本地缓存,如果本地缓存了请求涉及的数据,则在本地执行移动事务,实现本地提交,否则在网络连通时将数据操作请求上载到同步服务器;
步骤三:本地保存的移动事务根据关联性进行划分,首先根据事务之间的关联性找到二元关联事务,去掉不满足串行性要求的事务集合,在剩下的集合中根据关联性继续合并,直到最终不能合并出关联事务;最后在剩余的集合中找到数目最少的,且可以覆盖所有事务的关联事务结果集;
步骤四:在无线网络连通时,移动终端将关联事务结果集上载到同步服务器,否则在上载队列中等待;
步骤五:移动终端发送的关联事务结果集全局提交到同步服务器后,同步服务器进行冲突处理;冲突处理结束后,该事物集中正确的集合被提交并写入到数据库,处理结果被发送到移动终端;出错集合被发送到移动终端,移动终端根据出错集合寻找相关的本地操作,取消已经执行的本地操作,等待从同步服务器下载最新的数据,根据这些最新数据重新执行出错的操作。
2.根据权利要求1所述一种移动数据库的关联事务处理方法,其特征在于:所述步骤三中,如果当前合并过程中修改的事物集合和前述合并过程中修改的事物集合相同,且当前合并过程中读到的事物集合正确,则直接用当前合并的结果覆盖前述合并的结果;如果当前合并过程中读到的事物集合不正确或和前述合并过程中修改的事物集合不同,则不进行覆盖操作。
3.根据权利要求1所述一种移动数据库的关联事务处理方法,其特征在于:所述步骤三中首先查看事务集合的第一个事务,如果下一个事务和该事务有关联特性,则将这两个事务组成关联事务,并将两个事务对应标识项置为1;反之,则顺次查找,直到找到有关联关系的事务,或者达到事务集合末尾结束;然后判断集合中第二个事务,寻找其关联事务,如果该事务的标识为1,则不再判断,转而寻找下一个事务的关联事务,直至判断到事务集合末尾。
4.根据权利要求1或3所述一种移动数据库的关联事务处理方法,其特征在于:所述步骤三中事务的存储采用线性表结构;设置一个标识数组,数组长度与事务个数相同,数组中各项初始值为0。
5.根据权利要求1或3所述一种移动数据库的关联事务处理方法,其特征在于:所述步骤三中,如果采用链表的形式存储事务,则将满足关联关系的事务从链表中删除,另存在一个新的链表中。
6.根据权利要求1所述一种移动数据库的关联事务处理方法,其特征在于:所述步骤五中所述冲突处理过程中,同步服务器把这些事务按照接收的顺序保存在一个线性表中,如果存在几个关联事务的读集之间的交集不为空,并且这几个关联事务来自不同的终端,则按照关联读集中每个读项保存的每次操作的时间戳最大的读项为准;并将时间戳较小的该读集中的读项添加到出错读集中;反之则不作处理,直接将该事物集中正确的集合被提交并写入到数据库。
7.根据权利要求6所述一种移动数据库的关联事务处理方法,其特征在于:所述步骤五中关联事务读集中的每一个读项对应着该事务中一个操作在操作过程中读到的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101785682A CN101184106A (zh) | 2007-11-30 | 2007-11-30 | 一种移动数据库的关联事务处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101785682A CN101184106A (zh) | 2007-11-30 | 2007-11-30 | 一种移动数据库的关联事务处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101184106A true CN101184106A (zh) | 2008-05-21 |
Family
ID=39449187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101785682A Pending CN101184106A (zh) | 2007-11-30 | 2007-11-30 | 一种移动数据库的关联事务处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101184106A (zh) |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101807210A (zh) * | 2010-04-26 | 2010-08-18 | 中兴通讯股份有限公司 | 一种数据库间数据同步的方法、系统及设备 |
CN101930378A (zh) * | 2010-07-08 | 2010-12-29 | 度科信息科技(上海)有限公司 | 并行大型分布系统中事务的切分方法 |
WO2010148966A1 (zh) * | 2009-11-26 | 2010-12-29 | 中兴通讯股份有限公司 | 一种网管数据同步的实现方法及装置 |
CN101945163A (zh) * | 2010-07-19 | 2011-01-12 | 中兴通讯股份有限公司 | 内容处理的方法、移动终端及系统 |
CN101519078B (zh) * | 2009-03-13 | 2011-06-29 | 国电南瑞科技股份有限公司 | 综合监控系统多区域数据同步方法 |
CN102457893A (zh) * | 2010-10-26 | 2012-05-16 | 中国移动通信集团公司 | 一种数据处理方法和设备 |
CN102802131A (zh) * | 2012-08-10 | 2012-11-28 | 深圳中兴网信科技有限公司 | 服务器和消息推送方法 |
CN103577561A (zh) * | 2013-10-24 | 2014-02-12 | 华为技术有限公司 | 执行计划的存储方法、装置及系统 |
CN104111957A (zh) * | 2013-04-22 | 2014-10-22 | 阿里巴巴集团控股有限公司 | 一种分布式事务同步的方法及系统 |
CN104954411A (zh) * | 2014-03-31 | 2015-09-30 | 腾讯科技(深圳)有限公司 | 分布式系统共享网络资源的方法、终端及系统 |
CN106462449A (zh) * | 2014-06-26 | 2017-02-22 | 亚马逊科技公司 | 具有多项目事务支持的多数据库日志 |
CN107038231A (zh) * | 2017-04-11 | 2017-08-11 | 南京南瑞集团公司 | 一种数据库高并发事务合并方法 |
US10346434B1 (en) | 2015-08-21 | 2019-07-09 | Amazon Technologies, Inc. | Partitioned data materialization in journal-based storage systems |
US10373247B2 (en) | 2014-09-19 | 2019-08-06 | Amazon Technologies, Inc. | Lifecycle transitions in log-coordinated data stores |
US10698767B1 (en) | 2014-12-22 | 2020-06-30 | Amazon Technologies, Inc. | Decentralized management of multi-service workflows |
CN111737683A (zh) * | 2020-06-24 | 2020-10-02 | 中国银行股份有限公司 | 一种访问控制的方法和相关装置 |
US10866865B1 (en) | 2015-06-29 | 2020-12-15 | Amazon Technologies, Inc. | Storage system journal entry redaction |
US10866968B1 (en) | 2015-06-29 | 2020-12-15 | Amazon Technologies, Inc. | Compact snapshots of journal-based storage systems |
US11048669B2 (en) | 2015-12-29 | 2021-06-29 | Amazon Technologies, Inc. | Replicated state management using journal-based registers |
US11308127B2 (en) | 2015-03-13 | 2022-04-19 | Amazon Technologies, Inc. | Log-based distributed transaction management |
US11341115B2 (en) | 2014-06-26 | 2022-05-24 | Amazon Technologies, Inc. | Multi-database log with multi-item transaction support |
US11397709B2 (en) | 2014-09-19 | 2022-07-26 | Amazon Technologies, Inc. | Automated configuration of log-coordinated storage groups |
US11599520B1 (en) | 2015-06-29 | 2023-03-07 | Amazon Technologies, Inc. | Consistency management using query restrictions in journal-based storage systems |
US11609890B1 (en) | 2015-06-29 | 2023-03-21 | Amazon Technologies, Inc. | Schema management for journal-based storage systems |
US11625700B2 (en) | 2014-09-19 | 2023-04-11 | Amazon Technologies, Inc. | Cross-data-store operations in log-coordinated storage systems |
US11960464B2 (en) | 2015-08-21 | 2024-04-16 | Amazon Technologies, Inc. | Customer-related partitioning of journal-based storage systems |
-
2007
- 2007-11-30 CN CNA2007101785682A patent/CN101184106A/zh active Pending
Cited By (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101519078B (zh) * | 2009-03-13 | 2011-06-29 | 国电南瑞科技股份有限公司 | 综合监控系统多区域数据同步方法 |
CN102081611B (zh) * | 2009-11-26 | 2012-12-19 | 中兴通讯股份有限公司 | 一种主、备网管系统数据库同步的实现方法及装置 |
WO2010148966A1 (zh) * | 2009-11-26 | 2010-12-29 | 中兴通讯股份有限公司 | 一种网管数据同步的实现方法及装置 |
CN101807210B (zh) * | 2010-04-26 | 2015-04-01 | 中兴通讯股份有限公司 | 一种数据库间数据同步的方法、系统及设备 |
WO2011134231A1 (zh) * | 2010-04-26 | 2011-11-03 | 中兴通讯股份有限公司 | 一种数据库间数据同步的方法、系统及设备 |
CN101807210A (zh) * | 2010-04-26 | 2010-08-18 | 中兴通讯股份有限公司 | 一种数据库间数据同步的方法、系统及设备 |
CN101930378A (zh) * | 2010-07-08 | 2010-12-29 | 度科信息科技(上海)有限公司 | 并行大型分布系统中事务的切分方法 |
CN101945163A (zh) * | 2010-07-19 | 2011-01-12 | 中兴通讯股份有限公司 | 内容处理的方法、移动终端及系统 |
WO2012009890A1 (zh) * | 2010-07-19 | 2012-01-26 | 中兴通讯股份有限公司 | 内容处理的方法、移动终端及系统 |
CN102457893A (zh) * | 2010-10-26 | 2012-05-16 | 中国移动通信集团公司 | 一种数据处理方法和设备 |
CN102802131A (zh) * | 2012-08-10 | 2012-11-28 | 深圳中兴网信科技有限公司 | 服务器和消息推送方法 |
CN104111957A (zh) * | 2013-04-22 | 2014-10-22 | 阿里巴巴集团控股有限公司 | 一种分布式事务同步的方法及系统 |
CN104111957B (zh) * | 2013-04-22 | 2017-08-11 | 阿里巴巴集团控股有限公司 | 一种分布式事务同步的方法及系统 |
CN103577561B (zh) * | 2013-10-24 | 2017-12-01 | 华为技术有限公司 | 执行计划的存储方法、装置及系统 |
WO2015058499A1 (zh) * | 2013-10-24 | 2015-04-30 | 华为技术有限公司 | 执行计划的存储方法、装置及系统 |
CN103577561A (zh) * | 2013-10-24 | 2014-02-12 | 华为技术有限公司 | 执行计划的存储方法、装置及系统 |
CN104954411A (zh) * | 2014-03-31 | 2015-09-30 | 腾讯科技(深圳)有限公司 | 分布式系统共享网络资源的方法、终端及系统 |
CN106462449B (zh) * | 2014-06-26 | 2019-10-29 | 亚马逊科技公司 | 具有多项目事务支持的多数据库日志 |
CN106462449A (zh) * | 2014-06-26 | 2017-02-22 | 亚马逊科技公司 | 具有多项目事务支持的多数据库日志 |
US11995066B2 (en) | 2014-06-26 | 2024-05-28 | Amazon Technologies, Inc. | Multi-database log with multi-item transaction support |
US11341115B2 (en) | 2014-06-26 | 2022-05-24 | Amazon Technologies, Inc. | Multi-database log with multi-item transaction support |
US10373247B2 (en) | 2014-09-19 | 2019-08-06 | Amazon Technologies, Inc. | Lifecycle transitions in log-coordinated data stores |
US11625700B2 (en) | 2014-09-19 | 2023-04-11 | Amazon Technologies, Inc. | Cross-data-store operations in log-coordinated storage systems |
US11397709B2 (en) | 2014-09-19 | 2022-07-26 | Amazon Technologies, Inc. | Automated configuration of log-coordinated storage groups |
US10698767B1 (en) | 2014-12-22 | 2020-06-30 | Amazon Technologies, Inc. | Decentralized management of multi-service workflows |
US11308127B2 (en) | 2015-03-13 | 2022-04-19 | Amazon Technologies, Inc. | Log-based distributed transaction management |
US11860900B2 (en) | 2015-03-13 | 2024-01-02 | Amazon Technologies, Inc. | Log-based distributed transaction management |
US10866865B1 (en) | 2015-06-29 | 2020-12-15 | Amazon Technologies, Inc. | Storage system journal entry redaction |
US10866968B1 (en) | 2015-06-29 | 2020-12-15 | Amazon Technologies, Inc. | Compact snapshots of journal-based storage systems |
US11599520B1 (en) | 2015-06-29 | 2023-03-07 | Amazon Technologies, Inc. | Consistency management using query restrictions in journal-based storage systems |
US11609890B1 (en) | 2015-06-29 | 2023-03-21 | Amazon Technologies, Inc. | Schema management for journal-based storage systems |
US10346434B1 (en) | 2015-08-21 | 2019-07-09 | Amazon Technologies, Inc. | Partitioned data materialization in journal-based storage systems |
US11960464B2 (en) | 2015-08-21 | 2024-04-16 | Amazon Technologies, Inc. | Customer-related partitioning of journal-based storage systems |
US11048669B2 (en) | 2015-12-29 | 2021-06-29 | Amazon Technologies, Inc. | Replicated state management using journal-based registers |
CN107038231A (zh) * | 2017-04-11 | 2017-08-11 | 南京南瑞集团公司 | 一种数据库高并发事务合并方法 |
CN111737683A (zh) * | 2020-06-24 | 2020-10-02 | 中国银行股份有限公司 | 一种访问控制的方法和相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101184106A (zh) | 一种移动数据库的关联事务处理方法 | |
US11853283B2 (en) | Dynamic aggregate generation and updating for high performance querying of large datasets | |
US11119997B2 (en) | Lock-free hash indexing | |
Armbrust et al. | Delta lake: high-performance ACID table storage over cloud object stores | |
US9146934B2 (en) | Reduced disk space standby | |
US8868510B2 (en) | Managing data storage as an in-memory database in a database management system | |
US11461347B1 (en) | Adaptive querying of time-series data over tiered storage | |
US8392388B2 (en) | Adaptive locking of retained resources in a distributed database processing environment | |
Chavan et al. | Survey paper on big data | |
EP3719665B1 (en) | Supporting scalable distributed secondary index using replication engine for high-performance distributed database systems | |
EP2380090B1 (en) | Data integrity in a database environment through background synchronization | |
CA2626849C (en) | Method and mechanism for loading xml documents into memory | |
US10990571B1 (en) | Online reordering of database table columns | |
WO2015043391A1 (en) | Data synchronization for remote and local databases | |
US20020016935A1 (en) | Method and apparatus for scanning records | |
CN115114374A (zh) | 事务执行方法、装置、计算设备及存储介质 | |
US10387384B1 (en) | Method and system for semantic metadata compression in a two-tier storage system using copy-on-write | |
EP1967968B1 (en) | Sharing of database objects | |
US11256695B1 (en) | Hybrid query execution engine using transaction and analytical engines | |
Phan | Cloud Databases for Internet-of-Things Data | |
US11341163B1 (en) | Multi-level replication filtering for a distributed database | |
US7836084B1 (en) | Central database routing for distributed applications | |
US20240095248A1 (en) | Data transfer in a computer-implemented database from a database extension layer | |
US11941014B1 (en) | Versioned metadata management for a time-series database | |
US20240143594A1 (en) | Offloading graph components to persistent storage for reducing resident memory in distributed graph processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20080521 |