一种数据库处理事务的装置及方法

文档序号:6604230阅读:89来源:国知局
专利名称:一种数据库处理事务的装置及方法
技术领域
本发明涉及计算机信息领域的数据库技术,特别涉及一种数据库处理事务的装置及方法。
背景技术
随着计算机信息技术的发展,其中的数据库技术已经成为先进信息技术的重要组成部分和核心之一。在数据库技术中,需要将事务提交给数据库处理。所谓事务就是指一组逻辑操作单元,使事务涉及的数据在数据库中从一种状态变化到另一种状态。为了确保数据库中数据的一致性,数据的处理应当为离散的成组的逻辑操作单元,当事务被数据库处理完成时, 数据库中的数据一致性可以保持,而当数据库处理事务过程中逻辑操作单元中的一部分操作失败时,则整个事务应全部视为错误,所有逻辑操作单元从起始点以后的操作全部退到数据库中数据的开始状态。数据库正确地处理事务可以保证数据库中数据的完整性和一致性,当事务没有被数据库处理完成前,保证数据库中的数据没有增加、删除或/和更改。举一个具体例子说明一下。假设数据库为银行应用数据库,数据为一百元钱,事务为要将该一百元钱从银行应用数据库中储户甲的帐户中划归给储户乙的帐户中。在银行应用数据库中,储户甲和储户乙分别对应有存储空间,如存储表,用于存储帐户信息。当银行应用数据库对上述事务处理时,需要分别对储户甲的存储表和储户乙的存储表修改,即在储户甲的存储表中减去一百元钱,在储户乙的存储表中增加一百元钱,完成对事务的处理过程。具体地,就是将银行应用数据库中储户甲的存储表和储户乙的存储表依次提取到内存中,进行相应的修改后,再依次存储到数据库中。但是,在处理事务过程中,会出现以下情况如果在储户甲的存储表中减去一百元钱后,对储户乙的存储表增加一百元钱失败时,则需要在储户甲的存储表中增加一百元钱,使得数据库中储户甲的存储表回到修改前的状态,以保证银行应用数据库中数据的一致性和完整性,防止其中的数据出错。目前,数据库对事务的处理如图1所示,预先设定事务,其具体步骤为步骤101、数据库接收到提交的事务后,根据所设定的事务对数据库中事务相关的数据进行删除、增加或/和修改;在该步骤中,由于数据库都是在永久存储器上设置的,比如硬盘,在处理事务过程中,需要从数据库中提取事务相关数据到内存中,然后对内存中的事务相关数据进行删除、 增加或/和修改后,再存储到数据库中永久保存;步骤102、判断是否完全完成数据库对事务的处理,如果是,则结束本流程;如果否,则执行步骤103;步骤103、数据库进行回退操作,放弃所有对该事务的处理,回到开始处理事务的状态,保证数据库中数据的一致性和完整性。
此外,在数据库处理事务过程中,还可以设置存储点(save point),在设置的存储点上对应存储数据库的事务相关数据状态。当处理事务过程中,如果事务处理失败,则数据库回退到存储点对应的事务相关数据状态上,而不需要回退到事务处理前的初始事务状态。如果事务可以划分为几段处理,也就是可以划分为几段对数据库进行事务相关数据的修改、删除或/和增加,则可以设置多个存储点,在事务处理过程中失败时,根据需要数据库回退到设定的其中一个存储点对应的事务相关数据状态,而不回退到事务处理前的数据初始状态。但是,目前这种数据库对事务处理的方法也存在着缺点对每个事务的处理,都需要经过提交事务、内存从数据库提取事务相关数据、在内存中修改、删除或/和增加事务相关数据及将内存中修改、删除或/和增加的相关数据存储到在永久存储器中的数据库中, 这个过程比较长,尤其对事务相关数据的数据量比较大的情况下。因此,数据库完成事务处理后,响应用户的时间也会比较长,降低用户的体验度。

发明内容
有鉴于此,本发明提供一种数据库处理事务的装置,该装置能够在减少响应时间的基础上处理数据库事务,提高用户的体验度。本发明还提供一种数据库处理事务的方法,该方法能够在减小响应时间的基础上处理数据库事务,提高用户的体验度。根据上述目的,本发明的技术方案是这样实现的一种处理数据库事务的装置,包括同步事务接口、异步事务接口、处理器、设置有数据库的永久存储器及内存,其中,同步事务接口,用于接收同步事务,将接收到的同步事务提供给处理器处理;异步事务接口,用于接收异步事务,将接收到的异步事务提供给处理器处理;处理器,用于从同步事务接口中接收到同步事务后,从数据库中提取同步事务相关数据到内存,在内存中进行同步事务相关数据的删除、增加或/和修改,发送给数据库存储后,发送响应同步事务消息;从异步事务接口中接收异步事务,从数据库中提取异步事务相关数据到内存,在内存中进行异步事务相关数据的删除、增加或/和修改后暂存,发送响应异步事务消息;设置有数据库的永久存储器,用于存储同步事务和异步事务相关数据;内存,用于在处理器的指示下将同步事务或异步事务相关数据从数据库中提取出来,进行同步事务或异步事务相关数据的删除、增加或/和修改。当同步事务或异步事务处理失败时,所述处理器,还用于将内存中同步事务或异步事务相关数据的状态进行回退,将回退后的同步事务或异步事务相关数据发送给数据库存储,发送响应失败事务消息。所述处理器,还用于设置存储点,在将内存中同步事务或异步事务相关数据的状态进行回退时,回退到存储点对应的同步事务或异步事务相关数据的状态或进行同步事务或异步事务处理前相关数据的状态。所述处理器在处理完同步事务时,向数据库提交事务同步提交日志;所述处理器在处理完异步事务时,向数据库提交事务异步提交日志;所述处理器在处理完事务失败过程后,向数据库提交事务回退日志。所述处理器还在数据库后续处理同步事务过程时将内存中已经修改、删除或/和增加的异步事务相关数据存储到在永久存储器中的数据库中。—种数据库处理事务的方法,该方法包括a、接收到事务后,确定是否为异步事务,如果是,执行步骤b,如果否,执行步骤c ;b、从数据库中提取异步事务相关数据到内存,在内存中进行异步事务相关数据的删除、增加或/和修改后暂存,发送响应异步事务消息;C、从数据库中提取同步事务相关数据到内存,在内存中进行同步事务相关数据的删除、增加或/和修改,发送给数据库存储后,发送响应同步事务消息。在发送响应异步事务消息或响应同步事务消息之前,还包括确定异步事务或同步事务是否处理成功,如果是,则发送;否则,将内存中同步事务或异步事务相关数据的状态进行回退,将回退后的同步事务或异步事务相关数据发送给数据库存储,发送响应失败事务消息。所述在将内存中同步事务或异步事务相关数据的状态进行回退时,回退到设置的存储点对应的同步事务或异步事务相关数据的状态或进行同步事务或异步事务处理前相关数据的状态。该方法还包括在处理完同步事务时,向数据库提交事务同步提交日志;在处理完异步事务时,向数据库提交事务异步提交日志;在处理完事务失败过程后,向数据库提交事务回退日志。该方法还包括当处理器将内存中修改、删除或/和增加的该异步事务相关数据存储到在永久存储器中的数据库中,在数据库后续处理同步事务过程时进行。从上述方案可以看出,本发明在数据库处理事务的装置中设置提交异步事务接口,用于接收所提交的异步事务,当接收到异步事务后,从数据库提取该异步事务相关数据到内存中进行删除、修改或/和增加后,直接确认事务处理完毕,向用户发送响应消息。后续再将内存中修改、删除或/和增加的该异步事务相关数据存储到在永久存储器的数据库中,比如在数据库处理其他同步事务过程时一并存储。由于本发明不需要将内存中修改、删除或/和增加的该异步事务相关数据存储到在永久存储器中的数据库就响应用户,而在后续再处理,从而减少响应时间的基础上处理数据库事务,提高用户的体验度。


图1为现有技术提供的数据库对事务的处理流程图;图2为本发明提供的数据库处理事务装置的结构示意图;图3为本发明提供的数据库处理事务的方法流程图;图4为采用本发明提供的方法与现有技术提供的方法的响应时间对比图。
具体实施例方式为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
本发明为了减少数据库处理事务的响应时间,提高用户体验度。提出了两种不同类型的事务异步事务和同步事务。其中,同步事务的处理与现有技术中处理事务的过程相同,而异步事务的处理过程为当接收到异步事务后,从数据库提取该异步事务相关数据到内存中进行删除、修改或/和增加后,直接确认事务处理完毕,向用户发送响应消息。后续再将内存中修改、删除或/和增加的该异步事务相关数据存储到在永久存储器中的数据库中,比如在数据库处理同步事务过程时一并存储。这样,就可以减少数据库处理事务的响应时间。因此,本发明为了能够处理异步事务,在数据库处理事务的装置中设置提交异步事务接口,用于接收所提交的异步事务。图2为本发明提供的数据库处理事务装置的结构示意图,包括同步事务接口、异步事务接口、处理器、设置有数据库的永久存储器及内存,其中,同步事务接口,用于接收同步事务,将接收到的同步事务提供给处理器处理;异步事务接口,用于接收异步事务,将接收到的异步事务提供给处理器处理;处理器,用于从同步事务接口中接收到同步事务后,从数据库中提取同步事务相关数据到内存,在内存中进行同步事务相关数据的删除、增加或/和修改,发送给数据库存储后,发送响应同步事务消息;从异步事务接口中接收异步事务,从数据库中提取异步事务相关数据到内存,在内存中进行异步事务相关数据的删除、增加或/和修改后暂存,发送响应异步事务消息;设置有数据库的永久存储器,用于存储同步事务和异步事务相关的数据;内存,用于在处理器的指示下将同步事务或异步事务相关数据从数据库中提取出来,进行同步事务或异步事务相关数据的删除、增加或/和修改。在该实施例中,当同步事务或异步事务处理失败时,所述处理器,还用于将内存中同步事务或异步事务相关数据的状态进行回退,取消本过程对同步事务或异步事务相关数据的删除、增加或/和修改后,将回退后的同步事务或异步事务相关数据发送给数据库存储,发送响应失败事务消息。在该实施例中,同步事务接口和异步事务接口可以为数据库处理事务装置的硬件接口,也可以为逻辑接口,可以根据事务携带的同步标识或异步标识识别出是同步事务还是异步事务。图3为本发明提供的数据库处理事务的方法流程图,设置同步事务和异步事务, 其具体步骤为步骤301、接收到事务后,确定是否为异步事务,如果是,执行步骤302,如果否,执行步骤305 ;在该步骤中,根据事务携带的同步标识或异步标识来确定是否为同步事务或异步事务;步骤302、从数据库中提取异步事务相关数据到内存,在内存中进行异步事务相关数据的删除、增加或/和修改后暂存;步骤303、确定异步事务是否处理成功,如果是,则执行步骤304 ;否则,则执行步骤 308 ;步骤304、向用户发送响应异步事务消息;
步骤305、从数据库中提取同步事务相关数据到内存,在内存中进行同步事务相关数据的删除、增加或/和修改;步骤306、确定同步事务是否处理成功,如果是,则执行步骤307;否则,则执行步骤 308 ;步骤307、首先将内存中进行删除、增加或/和修改的异步事务相关数据发送给数据库存储后,再将内存中进行删除、增加或/和修改的同步事务相关数据发送给数据库存储后,向用户发送响应同步事务消息;在本步骤中,首先处理内存中异步事务相关数据,然后再处理内存中的同步事务相关数据,也就是说,在内存中进行删除、增加或/和修改的异步事务相关数据在后续的同步事务处理过程中会首先被处理,存入到数据库中;步骤308、将内存中同步事务或异步事务相关数据的状态进行回退,取消本过程对同步事务或异步事务相关数据的删除、增加或/和修改后,将回退后的同步事务或异步事务相关数据发送给数据库存储,发送响应失败事务消息。在该方法中,整个过程都是由数据库处理事务装置的处理器控制进行的。在上述的装置或方法中,处理器,还用于设置存储点,在将内存中同步事务或异步事务相关数据的状态进行回退时,回退到存储点对应的同步事务或异步事务相关数据的状态。在上述的装置或方法中,处理器在处理完同步事务时,还可以向数据库提交事务同步提交日志;在处理完异步事务时,还可以向数据库提交事务异步提交日志;在处理完事务失败过程后,还可以向数据库提交事务回退日志;以便后续数据库在验证事务相关数据一致时使用。在上述的装置或方法中,当处理器将内存中修改、删除或/和增加的该异步事务相关数据存储到在永久存储器中的数据库中,可以在数据库后续处理同步事务过程时进行,即将该异步事务相关数据排进同步事务处理队列中,当数据库存储同步事务相关数据时,首先将该异步事务相关数据存储后,再存储队列中其他同步事务相关数据。当用户需要提高响应处理事务速度时,就可以采用异步事务,通过异步事务的处理过程来完成,由于省去了将在内存中删除、修改或/和增加的异步事务相关数据存储到数据库的时间,所以提高了响应用户速度。当用户希望将在内存中删除、修改或/和增加的异步事务相关数据存储到数据库的时候,可以再调用同步事务处理过程,即先将在内存中删除、修改或/和增加的异步事务相关数据存储到数据库中后,再将同步事务队列中其他同步事务相关数据存储到数据库中,最后提交事务同步日志给数据库。这样,就可以避免只进行单一异步事务过程而导致的异步事务相关数据在数据库和内存中的一致性,及内存受限的缺点,弥补了只处理异步事务过程的不足。图4为采用本发明提供的方法与现有技术提供的方法的响应时间对比图,纵坐标为时间轴,可以看出,采用本发明提供的方法,比现有技术提供的方法,响应时间要快速的多。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种处理数据库事务的装置,其特征在于,包括同步事务接口、异步事务接口、处理器、设置有数据库的永久存储器及内存,其中,同步事务接口,用于接收同步事务,将接收到的同步事务提供给处理器处理;异步事务接口,用于接收异步事务,将接收到的异步事务提供给处理器处理;处理器,用于从同步事务接口中接收到同步事务后,从数据库中提取同步事务相关数据到内存,在内存中进行同步事务相关数据的删除、增加或/和修改,发送给数据库存储后,发送响应同步事务消息;从异步事务接口中接收异步事务,从数据库中提取异步事务相关数据到内存,在内存中进行异步事务相关数据的删除、增加或/和修改后暂存,发送响应异步事务消息;设置有数据库的永久存储器,用于存储同步事务和异步事务相关数据;内存,用于在处理器的指示下将同步事务或异步事务相关数据从数据库中提取出来, 进行同步事务或异步事务相关数据的删除、增加或/和修改。
2.如权利要求1所述的装置,其特征在于,当同步事务或异步事务处理失败时,所述处理器,还用于将内存中同步事务或异步事务相关数据的状态进行回退,将回退后的同步事务或异步事务相关数据发送给数据库存储,发送响应失败事务消息。
3.如权利要求2所述的装置,其特征在于,所述处理器,还用于设置存储点,在将内存中同步事务或异步事务相关数据的状态进行回退时,回退到存储点对应的同步事务或异步事务相关数据的状态或进行同步事务或异步事务处理前相关数据的状态。
4.如权利要求2所述的装置,其特征在于,所述处理器在处理完同步事务时,向数据库提交事务同步提交日志;所述处理器在处理完异步事务时,向数据库提交事务异步提交日志;所述处理器在处理完事务失败过程后,向数据库提交事务回退日志。
5.如权利要求1 4任一所述的装置,其特征在于,所述处理器还在数据库后续处理同步事务过程时将内存中已经修改、删除或/和增加的异步事务相关数据存储到在永久存储器中的数据库中。
6.一种数据库处理事务的方法,其特征在于,该方法包括a、接收到事务后,确定是否为异步事务,如果是,执行步骤b,如果否,执行步骤c;b、从数据库中提取异步事务相关数据到内存,在内存中进行异步事务相关数据的删除、增加或/和修改后暂存,发送响应异步事务消息;C、从数据库中提取同步事务相关数据到内存,在内存中进行同步事务相关数据的删除、增加或/和修改,发送给数据库存储后,发送响应同步事务消息。
7.如权利要求6所述的方法,其特征在于,在发送响应异步事务消息或响应同步事务消息之前,还包括确定异步事务或同步事务是否处理成功,如果是,则发送;否则,将内存中同步事务或异步事务相关数据的状态进行回退,将回退后的同步事务或异步事务相关数据发送给数据库存储,发送响应失败事务消息。
8.如权利要求7所述的方法,其特征在于,所述在将内存中同步事务或异步事务相关数据的状态进行回退时,回退到设置的存储点对应的同步事务或异步事务相关数据的状态或进行同步事务或异步事务处理前相关数据的状态。
9.如权利要求7所述的方法,其特征在于,该方法还包括在处理完同步事务时,向数据库提交事务同步提交日志;在处理完异步事务时,向数据库提交事务异步提交日志;在处理完事务失败过程后,向数据库提交事务回退日志。
10.如权利要求6 9任一所述的方法,其特征在于,该方法还包括 当处理器将内存中修改、删除或/和增加的该异步事务相关数据存储到在永久存储器中的数据库中,在数据库后续处理同步事务过程时进行。
全文摘要
本发明提供了一种数据库处理事务的装置及方法,在数据库处理事务的装置中设置提交异步事务接口,用于接收所提交的异步事务,当接收到异步事务后,从数据库提取该异步事务相关数据到内存中进行删除、修改或/和增加后,直接确认事务处理完毕,向用户发送响应消息。后续再将内存中修改、删除或/和增加的该异步事务相关数据存储到在永久存储器的数据库中,比如在数据库处理其他同步事务过程时一并存储。由于本发明不需要将内存中修改、删除或/和增加的该异步事务相关数据存储到在永久存储器中的数据库就响应用户,而在后续再处理,从而减少响应时间的基础上处理数据库事务,提高用户的体验度。
文档编号G06F17/30GK102279855SQ20101020091
公开日2011年12月14日 申请日期2010年6月10日 优先权日2010年6月10日
发明者洪锡璡, 纪晨, 薛竹飙, 谭姝, 金映锡, 陈喜圭, 顾逶迤 申请人:三星电子(中国)研发中心, 三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1