CN101699439B - 一种数据库的事务提交方法和装置 - Google Patents
一种数据库的事务提交方法和装置 Download PDFInfo
- Publication number
- CN101699439B CN101699439B CN2009102223770A CN200910222377A CN101699439B CN 101699439 B CN101699439 B CN 101699439B CN 2009102223770 A CN2009102223770 A CN 2009102223770A CN 200910222377 A CN200910222377 A CN 200910222377A CN 101699439 B CN101699439 B CN 101699439B
- Authority
- CN
- China
- Prior art keywords
- affairs
- transaction
- submit
- local
- bag
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库的事务提交方法和装置,该方法包括:前端服务进程加载事务,建立事务映像空间;若事务执行结束后,事务映像空间内存在更新数据,则构造事务提交包,并向对应后端服务进程发起事务提交请求,若事务提交成功,判断该事务是否为首次提交,若是,利用事务映像空间中的更新数据覆盖前端服务进程内存中的主版本,否则,清除存储的与该事务对应的相关信息;若事务提交失败,存储该事务并将事务的事务标识信息插入延迟事务管理器;定时遍历延迟事务管理器,根据延迟事务管理器中记录的事务标识信息,获取事务提交包后开始事务提交。本发明兼顾事务的执行性能和提交稳定性,有效的提高了业务的吞吐量。
Description
技术领域
本发明涉及多媒体技术领域,尤其涉及一种数据库的事务提交方法和装置。
背景技术
视频监控是安全防范系统的重要组成部分,它是一种防范能力较强的综合系统。视频监控以其直观、准确、及时和信息内容丰富而广泛应用于许多场合。近年来,随着计算机、网络以及图像处理、传输技术的飞速发展,视频监控技术也有了长足的发展,其是以计算机为核心的多媒体监控,把管理权交给计算机,不以人的主观意识为转移。
借助现代网络技术,视频监控系统从传统的本地化走向网络化,从集中式发展到分布式。分布式视频监控系统由业务节点群rgmgroup(通常包含N个业务处理节点rgmnode)和中心服务节点组cmsgroup(通常包含M个中心服务节点cmsnode)构成,rgmgroup负责系统的实际业务,cmsgroup负责系统的数据维护,具体的,分布式视频监控系统的具体架构如图1所示。
以上分布式视频监控系统的数据管理者是64位主存分布式数据库。64位主存分布式数据库分为前端服务进程(图1中为dbproxy)和后端服务进程(图1中为dbcorethrd),前端服务进程部署在业务处理节点上,后端服务进程部署在中心服务节点上,具体的,该数据库部署图如图2所示。
作为数据库管理系统,64位主存分布式数据库需要在数据库层面上提供事务处理能力,即满足事务的ACID特性。其中,A表示Atomic,原子性:指整个数据库事务是不可分割的工作单元,“要么全部,要么全不”;C表示Consistency,一致性:即数据库事务不能破坏关系的完整性以及业务逻辑上的一致性;I表示Isolation隔离性:当不同的事务同时操纵相同的数据时,每个事务都有互不相交的完整数据空间;而D指Durability,持久性:只要事务成功结束,它对数据库所作的更新就必须永久保存下来。
电信级的现网业务需要系统以极高的吞吐量运转,传统的数据库事务提交策略往往依赖本地记录日志文件以备UNDO(回滚)和REDO(恢复),而在追求高速的电信级视频监控系统中,这样的频繁磁盘IO操作是不合适的。针对高吞吐量要求的监控业务环境,与之配套的主存数据库如何在事务的执行性能和稳定提交之间取得平衡,是亟待解决的问题。
发明内容
本发明提供一种数据库的事务提交方法和装置,用以解决传统的数据库事务提交策略往往依赖本地记录日志文件,不能满足当前监控业务高吞吐量要求的问题。
本发明一种数据库的事务提交方法,应用在分布式视频监控系统中,包括:
步骤1、前端服务进程加载事务,建立对应的事务映像空间,并执行所述事务,若所述事务执行结束后,事务映像空间内存在更新数据,则构造事务提交包,并向对应的后端服务进程发起事务提交请求,若提交成功,执行步骤2,否则,执行步骤3;
步骤2、判断所述事务是否为首次提交,若是,利用所述事务映像空间中的更新数据覆盖本地内存中的主版本,否则,向本地flash写入本地事务日志,删除本地磁盘和延迟事务管理器中的与所述事务对应的信息,并利用所述事务映像空间中的更新数据覆盖本地内存中的主版本,转步骤4;
步骤3、将所述事务提交包存入本地磁盘内、向本地flash写入本地事务日志,并将所述事务的事务标识信息插入延迟事务管理器后,利用所述事务映像空间中的更新数据覆盖本地内存中的主版本,转步骤4;
步骤4、定时遍历所述延迟事务管理器,根据所述延迟事务管理器中记录的事务标识信息,获取事务提交包后再次发起事务提交请求。
进一步的,所述步骤1中还包括:
在执行所述事务时,判断所述事务是否被用户回滚,若是,则释放所述事务映像空间,结束操作,否则,继续执行所述事务。
所述步骤1中,构造事务提交包的过程具体为:所述前端服务进程压缩所述事务映像空间内的更新数据得到提交数据,并根据该提交数据构造事务提交包,所述事务提交包包括事务标识信息和提交数据。
所述步骤1中,当所述前端服务进程在预设时间内接收到后端服务进程发送的提交成功消息时,判定所述事务提交成功;当所述前端服务进程在预设时间内接收到后端服务进程发送的提交失败消息或在预设时间内未接收到后端服务进程发送的消息时,判定所述事务提交失败。
其中,所述后端服务进程接收到所述前端服务进程发起的事务提交请求时,将事务提交包写入自身维护的flash物理日志文件、将事务标识信息和全局提交开始信息写入自身维护的flash逻辑日志文件,当两次写入日志均成功时,向所述前端服务进程反馈提交成功消息,并将所述事务标识信息插入自身维护的事务提交管理器,否则,向所述前端服务进程反馈提交失败消息。
进一步的,所述后端服务进程定时遍历所述事务提交管理器,将所述flash物理日志文件内写入的事务提交包写入自身维护的磁盘内,将事务标识信息和全局提交结束信息写入flash逻辑日志文件,并删除所述事务提交管理器内插入的事务标识信息。
所述步骤2中,向所述本地flash写入所述事务对应的事务标识信息、事务提交包的文件名信息和本地提交结束信息,并删除本地磁盘中存储的与所述事务对应的事务提交包和延迟事务管理器中的与所述事务对应的事务标识信息;
所述步骤3中,向所述本地flash写入本地事务日志具体为:向本地flash写入与所述事务对应的事务标识信息、事务提交包的文件名信息和本地提交开始信息。
所述步骤4中,根据延迟事务管理器中记录的事务标识信息,获取事务提交包具体为:根据所述事务标识信息,查找所述本地flash,获取记录的事务提交包的文件名,并根据该提交包的文件名查找所述本地磁盘,获取对应的事务提交包。
进一步的,所述步骤4中还包括:将所述延迟事务管理器中的事务标识信息和定时时间到达时刻的时间戳写入所述本地flash。
本发明还提供一种数据库的事务提交装置,包括:
事务加载模块,用于加载事务,建立对应的事务映像空间,执行所述事务;
事务提交包构造模块,用于在事务执行结束后,判断所述事务映像空间内是否有更新数据,当存在更新数据时,构造事务提交包;
事务提交请求下发模块,用于向对应的后端服务进程发起事务提交请求,并判断所述事务是否提交成功,若是,触发事务提交成功处理模块,否则,触发事务提交失败处理模块;
事务提交成功处理模块,用于判断所述事务是否为首次提交,若是,利用所述事务映像空间中的更新数据覆盖本地内存中的主版本,否则,向本地flash写入本地事务日志,删除本地磁盘和延迟事务管理器中的与所述事务对应的信息,并利用所述事务映像空间中的更新数据覆盖本地内存中的主版本,触发定时遍历模块;
事务提交失败处理模块,用于将所述事务提交包存入本地磁盘内、向本地flash写入本地事务日志,并将所述事务的事务标识信息插入延迟事务管理器后,利用所述事务映像空间中的更新数据覆盖本地内存中的主版本,触发定时遍历模块;
定时遍历模块,用于定时遍历所述延迟事务管理器,根据所述延迟事务管理器中记录的事务标识信息,获取事务提交包后触发所述事务提交请求下发模块。
进一步的,本发明提供的装置还包括:
事务回滚判断模块,用于在执行所述事务时,判断所述事务是否被用户回滚,若是,则释放所述事务映像空间,结束操作,否则,触发所述事务提交包构造模块。
进一步的,所述事务提交包构造模块,还用于当所述事务映像空间内没更新数据时,释放所述事务映像空间,结束操作;
所述定时遍历模块,还用于将所述延迟事务管理器中的事务标识信息和定时时间到达时刻的时间戳写入所述本地flash。
与现有技术相比,本发明具有以下优点:
本发明提供的方法紧密结合3G视频监控业务的需求,设计的框架满足事务提交的高速需求,通过给出内存、flash、磁盘的三层存储方案,合理分配系统的事务持久化开销;进一步的,本发明还提出前端服务进程的事务映像空间提交空间的概念,避免记录undo日志。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图进行简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中分布式视频监控系统的具体架构图;
图2为现有技术中分布式数据库部署图;
图3为本发明提供的一种数据库的事务提交方法的流程图;
图4为本发明实施例提供的前端服务进程事务提交流程图;
图5为本发明实施例提供的后端服务进程接收事务处理流称图;
图6为本发明提供的一种数据库的事务提交装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种数据库的事务提交方法和装置,用以解决传统的数据库事务提交策略往往依赖本地记录日志文件,不能满足当前监控业务高吞吐量要求的问题。
具体的,本发明提供的数据库的事务提交方法,如图3所示,包括以下步骤:
步骤S301、前端服务进程加载事务,建立该事务的事务映像空间,并执行该事务。
优选的,在该步骤之后还进行以下操作:事务执行过程中,判断该事务是否被用户回滚,若是,则释放事务映像空间,结束操作,否则,执行步骤S302。
步骤S302、在事务执行结束后,判断事务映像空间内是否有更新数据,当存在更新数据时,根据该更新数据构造事务提交包。
进一步的,该步骤中,当事务映像空间内没更新数据时,释放事务映像空间,结束操作。
步骤S303、前端服务进程向对应的一个或多个后端服务进程发起事务提交请求,并判断该事务是否提交成功,若是,执行步骤S304,否则,执行步骤S305。
步骤S304、判断该事务是否为首次提交,若是,利用事务映像空间中的更新数据覆盖本地内存中的主版本,否则,向本地flash写入本地事务日志,删除本地磁盘和延迟事务管理器中的与该事务对应的信息,并利用事务映像空间中的更新数据覆盖本地内存中的主版本,转步骤S306。
该步骤中,向本地flash写入本地事务日志,并删除本地磁盘和延迟事务管理器中的与该事务对应的信息具体为:向本地flash写入该事务对应的事务标识信息、事务提交包的文件名信息和本地提交结束信息,并删除本地磁盘中存储的与该事务对应的事务提交包和延迟事务管理器中的与该事务对应的事务标识信息。
步骤S305、将事务提交包存入本地磁盘内、向本地flash写入本地事务日志,并将事务的事务标识信息插入延迟事务管理器后,利用事务映像空间中的更新数据覆盖本地内存中的主版本,转步骤S306。
该步骤中,向本地flash写入本地事务日志具体为:向本地flash写入与该事务对应的事务标识信息、事务提交包的文件名信息和本地提交开始信息。
步骤S306、定时遍历延迟事务管理器,根据延迟事务管理器中记录的事务标识信息,获取事务提交包后转步骤S303。
本发明提供的方法紧密结合3G视频监控业务的需求,设计的框架满足事务提交的高速需求,通过给出内存、flash、磁盘的三层存储方案,合理分配系统的事务持久化开销;进一步的,本发明还提出前端服务进程的事务映像空间提交空间的概念,避免记录undo日志。
下面通过一具体实施例来详细阐述本发明提供的方法的具体实现过程。
本发明实施例提供如下的事务提交组织框架:前端服务进程作为数据引擎为业务处理节点提供服务,系统运行中产生的数据更新按规则提交到中心服务节点上的后端服务进程进行持久化。
其中,前端服务进程串行执行事务,避免额外的数据库锁定和解锁操作,这样每个时间点,在前端服务进程执行的事务不超过1个,符合事务的Isolation原则,执行完毕后向后端服务进程提交;
后端服务进程则执行事务固化操作,将事务的日志和数据登记到不宜丢失的介质中;以上两者的操作可以保持Atomic和Durability,当A、I、D特性均满足时,如果业务操作本身不违背数据库Consistency,则ACID特性全部满足。
本发明实施例中,实现高吞吐量需求的关键点在于合理利用存储设备,构造三级存储空间,分别为:系统运算的内存、事务日志的登记载体flash、实际数据的驻留载体磁盘。
具体的,本发明实施例分为两个执行阶段,分别为前端服务进程执行的前段和后端服务进程执行的后段。
如图4所示,事务提交的前段具体实施步骤如下:
步骤S401、前端服务进程加载事务,并以全局唯一序列号Session ID标示各事务,即事务标识信息,建立本事务专有的事务映像空间,该映像空间称为Session_dataspace,事务对系统的数据请求都将转化到本空间。
步骤S402、前端服务进程执行事务,此过程中对原有数据的修改都记录在事务映像空间内。
具体的,该事务映像空间以记录列表的形式组织,其包含一组记录信息RecordInfo,形如:Primary Row ID:Session ID:Row Data。
步骤S403、判断事务执行过程中是否被用户回滚,例如用户选择进行rollback,若是,由于前端服务进程内存中的主版本数据未被修改,所以不需要做UNDO操作,直接执行步骤S415;否则,执行步骤S404。
步骤S404、在事务执行结束后,判断事务映像空间是否产生更新数据,若是,执行步骤S405;否则,说明本次事务并未对系统数据产生影响,例如,此次事务执行的是Select,直接执行步骤S415。
步骤S405、事务执行结束后且事务映像空间中有更新数据,例如,此次事务执行的是update、delete或insert,说明本次事务需要提交,此时压缩事务映像空间中的更新数据得到提交数据Commit Data,并构造事务提交包Commit_Packet。
其中,Commit_Packet包括:Session ID:Commit Data。
步骤S406、前端服务进程向后端服务进程发起事务请求,并启动定时器,等待后端服务进程的回应,其中,事务请求中携带有事务提交包。
优选的,该步骤中前端服务进程可以向多个后端服务进程发起事务请求,在这种情况下,即使某个后端服务进程由于网络等问题未回应该请求,只要有一个后端服务进程回应该请求,即证明提交成功,前端服务进程可以继续后续操作,而不需等待,该方法也在一定程度上增加了事务提交的成功率。
同时,前端服务进程还可以记录各个后端服务进程的平均返回时间,根据该时间,前端服务进程还可以选择后端服务进程,在后续提交的过程中可以优选返回时间短的后端服务进程,也在一定程度上提高了事务提交效率。
另外,上述的后端服务进程还可以组成一组进程组,该进程组内部通过负载平衡来调整由哪个后端服务进程接收前端服务进程的事务请求。当然,在这种情况下就不涉及平均返回时间的问题。
步骤S407、判断在设定的时间段内是否接收到后端服务进程回应的提交成功消息,若是,执行步骤S411,否则,执行步骤S408。
步骤S408、将事务提交包Commit_Packet按文件名Local File ID存入磁盘。
步骤S409、向本地flash写入本地事务日志Local Session Log,记录SessionID和Local File ID,标示为“本地提交开始,具体的”格式为<Session ID:COMMIT_Local_Begin:Local File ID>。
步骤S410、将该事务的Session ID插入延迟事务管理器,执行步骤S414。
步骤S411、检查该事务的Session ID是否在延迟事务管理器中,若是,执行步骤S412,否则,执行步骤S414。
步骤S412、检查出该事务的Session ID在延迟事务管理器中,说明此事务前次提交失败,其物理数据和逻辑日志已经保存在本地,此次提交利用了本地保存的日志和数据,并具体执行以下操作:向本地flash写入本地事务日志,记录该事务的Session ID和Local File ID,标示为“本地提交结束”,具体的格式为:Local Session Log<Session ID:COMMIT_Local_End:Local File ID>。
步骤S413、根据该事务的Session ID查出Local File ID,并将磁盘内的LocalFile ID文件删除,从延迟事务管理器中删除Session ID,执行步骤S414。
步骤S414、利用事务映像空间中数据覆盖前端服务进程内存中的主版本。
步骤S415、释放事务映像空间,流程结束。
步骤S416、当前端服务进程运行到特定时刻后,即到达检查点Check Point时,遍历延迟事务管理器,获取当前时间时刻缓存事务管理器中Session ID信息(该Session ID信息可能为多个),将延迟事务管理器中的Session ID信息和当前时刻对应的时间戳写入Flash上的日志文件,具体格式为:Local Session Log<Check Point:Session ID List>,其中,Session ID List是此时在延迟事务管理器中的Session ID合集,写入此日志是为了崩溃恢复,此后根据事务的Session ID信息查找flash日志文件中的Local File ID信息,并根据该Local File ID信息获取磁盘中的提交事务包,转到步骤S406处理。
如图5所示,事务提交的后段具体实施步骤如下:
步骤S501、后端服务进程接收前端服务进程发送的事务请求,并获取事务提交包Commit_Packet。
步骤S502、后端服务进程将事务提交包写入flash物理日志文件Physic Session Log,具体格式为:<Session ID:Commit Data>;将Session ID信息和“全局提交开始”标识写入flash逻辑日志文件Logic Session Log,具体格式为:<Session ID:COMMIT_All_begin>。
另外,在执行该步骤的同时,后端服务进程还可以将收到的事务提交包解压缓存在内存中,在后续写入磁盘时,可以不用从flash中读物理数据,而是直接从内存中读取,因为flash的读取需要擦写的过程,而读取内存相对于读取flash在读取效率方面具有一定的优势。
步骤S503、判断上述写入日志是否成功,若是,执行步骤S505;否则,执行步骤S504。
步骤S504、回应前端服务进程提交失败,并执行步骤S507。
步骤S505、回应前端服务进程提交成功。
步骤S506、将该事务的Session ID信息插入本地保存到的事务提交管理器,并执行步骤S507。
步骤S507、流程结束。
步骤S508、当后端服务进程运行到特定时刻后,即到达检查点Check Point时,遍历事务提交管理器,将事务提交管理器中的Session ID信息和当前时刻对应的时间戳写入逻辑日志文件,具体的格式为:Logic Session Log<CheckPoint:Session ID List>;并将Session ID对应的提交数据Commit Data写入磁盘,以实现真正的持久化。
步骤S509、判断磁盘写入是否成功,若是执行步骤S510,否则,等待下一次遍历。
步骤S510、磁盘写入成功后,从事务提交管理器中删除Session ID信息,并写逻辑日志文件为:LogicSessionLog<SessionID:COMMIT_All_end>。
以上在检查点对flash日志的操作主要是提供一种崩溃恢复的手段,分别在前端服务进程侧和后端服务进程侧都有所部署。分别实现对本地提交过程的异常保护和全局提交过程的异常保护。
需要说明的是,上述前端服务进程和后端服务进程进行事务提交操作中的flash可以采用多个,从而避免了一个flash的情况下,由于该flash已写满或出现故障时影响提交成功率的问题。
本发明实施例紧密结合3G视频监控业务的需求,设计的框架满足事务提交的高速需求;给出了主存、flash、磁盘的3层存储方案,合理分配系统的事务持久化开销;提出前端服务进程的串行事务执行方案,有效规避了提交过程中的锁检测和锁恢复;提出前端服务进程的事务映像空间提交空间的概念,避免记录undo日志。
本发明还提供一种数据库的事务提交装置,如图6所示,包括:
事务加载模块610,用于加载事务,建立对应的事务映像空间,执行该事务;
事务提交包构造模块620,用于在事务执行结束后,判断事务映像空间内是否有更新数据,当存在更新数据时,构造事务提交包;
事务提交请求下发模块630,用于向对应的后端服务进程发起事务提交请求,并判断该事务是否提交成功,若是,触发事务提交成功处理模块640,否则,触发事务提交失败处理模块650;
事务提交成功处理模块640,用于判断该事务是否为首次提交,若是,利用事务映像空间中的更新数据覆盖本地内存中的主版本,否则,向本地flash写入本地事务日志,删除本地磁盘和延迟事务管理器中的与该事务对应的信息,并利用事务映像空间中的更新数据覆盖本地内存中的主版本,触发定时遍历模块660;
事务提交失败处理模块650,用于将事务提交包存入本地磁盘内、向本地flash写入本地事务日志,并将事务的事务标识信息插入延迟事务管理器后,利用事务映像空间中的更新数据覆盖本地内存中的主版本,触发定时遍历模块660;
定时遍历模块660,用于定时遍历延迟事务管理器,根据延迟事务管理器中记录的事务标识信息,获取事务提交包后触发事务提交请求下发模块630。
进一步的,本发明提供的装置还包括:
事务回滚判断模块670,用于在执行所述事务时,判断事务是否被用户回滚,若是,则释放事务映像空间,结束操作,否则,触发事务提交包构造模块620。
进一步的,事务提交包构造模块620,还用于当事务映像空间内没更新数据时,释放事务映像空间,结束操作;
定时遍历模块660,还用于将延迟事务管理器中的事务标识信息和定时时间到达时刻的时间戳写入本地flash。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种数据库的事务提交方法,应用在分布式视频监控系统中,其特征在于,包括:
步骤1、前端服务进程加载事务,建立对应的事务映像空间,并执行所述事务,若所述事务执行结束后,事务映像空间内存在更新数据,则构造事务提交包,并向对应的后端服务进程发起事务提交请求,若提交成功,执行步骤2,否则,执行步骤3;
步骤2、前端服务进程判断所述事务是否为首次提交,若是,利用所述事务映像空间中的更新数据覆盖本地内存中的主版本,否则,向本地flash写入本地事务日志,删除本地磁盘和延迟事务管理器中的与所述事务对应的信息,并利用所述事务映像空间中的更新数据覆盖本地内存中的主版本,转步骤4;
步骤3、前端服务进程将所述事务提交包存入本地磁盘内、向本地flash写入本地事务日志,并将所述事务的事务标识信息插入延迟事务管理器后,利用所述事务映像空间中的更新数据覆盖本地内存中的主版本,转步骤4;
步骤4、前端服务进程定时遍历所述延迟事务管理器,根据所述延迟事务管理器中记录的事务标识信息,获取事务提交包后再次发起事务提交请求。
2.如权利要求1所述的方法,其特征在于,所述步骤1中还包括:
在执行所述事务时,判断所述事务是否被用户回滚,若是,则释放所述事务映像空间,结束操作,否则,继续执行所述事务。
3.如权利要求1或2所述的方法,其特征在于,所述构造事务提交包的过程具体为:所述前端服务进程压缩所述事务映像空间内的更新数据得到提交数据,并根据该提交数据构造事务提交包,所述事务提交包包括事务标识信息和提交数据。
4.如权利要求1或2所述的方法,其特征在于,所述步骤1中,
当所述前端服务进程在预设时间内接收到后端服务进程发送的提交成功消息时,判定所述事务提交成功;
当所述前端服务进程在预设时间内接收到后端服务进程发送的提交失败消息或在预设时间内未接收到后端服务进程发送的消息时,判定所述事务提交失败。
5.如权利要求4所述的方法,其特征在于,
所述后端服务进程接收到所述前端服务进程发起的事务提交请求时,将事务提交包写入自身维护的flash物理日志文件、将事务标识信息和全局提交开始信息写入自身维护的flash逻辑日志文件,当两次写入日志均成功时,向所述前端服务进程反馈提交成功消息,并将所述事务标识信息插入自身维护的事务提交管理器,否则,向所述前端服务进程反馈提交失败消息。
6.如权利要求5所述的方法,其特征在于,还包括:
所述后端服务进程定时遍历所述事务提交管理器,将所述flash物理日志文件内写入的事务提交包写入自身维护的磁盘内,将事务标识信息和全局提交结束信息写入flash逻辑日志文件,并删除所述事务提交管理器内插入的事务标识信息。
7.如权利要求1或2所述的方法,其特征在于,所述步骤2中,向所述本地flash写入所述事务对应的事务标识信息、事务提交包的文件名信息和本地提交结束信息,并删除本地磁盘中存储的与所述事务对应的事务提交包和延迟事务管理器中的与所述事务对应的事务标识信息;
所述步骤3中,向所述本地flash写入本地事务日志具体为:向本地flash写入与所述事务对应的事务标识信息、事务提交包的文件名信息和本地提交开始信息。
8.如权利要求7所述的方法,其特征在于,所述步骤4中,根据延迟事务管理器中记录的事务标识信息,获取事务提交包具体为:根据所述事务标识信息,查找所述本地flash,获取记录的事务提交包的文件名,并根据该提交包的文件名查找所述本地磁盘,获取对应的事务提交包。
9.如权利要求1或2或8所述的方法,其特征在于,所述步骤4中,前端 服务进程定时遍历所述延迟事务管理器后,根据所述延迟事务管理器中记录的事务标识信息获取事务提交包后再次发起事务提交请求前还包括:将所述延迟事务管理器中的事务标识信息和定时时间到达时刻的时间戳写入所述本地flash。
10.一种数据库的事务提交装置,其特征在于,包括:
事务加载模块,用于加载事务,建立对应的事务映像空间,执行所述事务;
事务提交包构造模块,用于在事务执行结束后,判断所述事务映像空间内是否有更新数据,当存在更新数据时,构造事务提交包;
事务提交请求下发模块,用于向对应的后端服务进程发起事务提交请求,并判断所述事务是否提交成功,若是,触发事务提交成功处理模块,否则,触发事务提交失败处理模块;
事务提交成功处理模块,用于判断所述事务是否为首次提交,若是,利用所述事务映像空间中的更新数据覆盖本地内存中的主版本,否则,向本地flash写入本地事务日志,删除本地磁盘和延迟事务管理器中的与所述事务对应的信息,并利用所述事务映像空间中的更新数据覆盖本地内存中的主版本,触发定时遍历模块;
事务提交失败处理模块,用于将所述事务提交包存入本地磁盘内、向本地flash写入本地事务日志,并将所述事务的事务标识信息插入延迟事务管理器后,利用所述事务映像空间中的更新数据覆盖本地内存中的主版本,触发定时遍历模块;
定时遍历模块,用于定时遍历所述延迟事务管理器,根据所述延迟事务管理器中记录的事务标识信息,获取事务提交包后触发所述事务提交请求下发模块。
11.如权利要求10所述的装置,其特征在于,还包括:
事务回滚判断模块,用于在执行所述事务时,判断所述事务是否被用户回滚,若是,则释放所述事务映像空间,结束操作,否则,触发所述事务提交包 构造模块。
12.如权利要求10或11所述的装置,其特征在于,
所述事务提交包构造模块,还用于当所述事务映像空间内没更新数据时,释放所述事务映像空间,结束操作;
所述定时遍历模块,还用于将所述延迟事务管理器中的事务标识信息和定时时间到达时刻的时间戳写入所述本地flash。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102223770A CN101699439B (zh) | 2009-11-16 | 2009-11-16 | 一种数据库的事务提交方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102223770A CN101699439B (zh) | 2009-11-16 | 2009-11-16 | 一种数据库的事务提交方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101699439A CN101699439A (zh) | 2010-04-28 |
CN101699439B true CN101699439B (zh) | 2011-12-28 |
Family
ID=42147898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102223770A Expired - Fee Related CN101699439B (zh) | 2009-11-16 | 2009-11-16 | 一种数据库的事务提交方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101699439B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107016029A (zh) * | 2016-12-13 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 一种业务数据的处理方法、装置及系统 |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10430298B2 (en) * | 2010-10-28 | 2019-10-01 | Microsoft Technology Licensing, Llc | Versatile in-memory database recovery using logical log records |
CN102073494B (zh) * | 2010-12-30 | 2014-05-07 | 用友软件股份有限公司 | 缓存数据管理方法和装置 |
CN102193987B (zh) * | 2011-03-25 | 2013-03-20 | 北京世纪互联宽带数据中心有限公司 | 基于oltp的增加节点数据关系的方法及系统 |
CN102141946B (zh) * | 2011-03-25 | 2014-08-20 | 北京世纪互联宽带数据中心有限公司 | 一种图形数据库联机事务数据恢复的方法及系统 |
CN102193978B (zh) * | 2011-03-25 | 2012-12-05 | 北京世纪互联宽带数据中心有限公司 | 图形数据库非联机事务中删除数据的控制方法 |
CN102193980B (zh) * | 2011-03-25 | 2013-01-02 | 北京世纪互联宽带数据中心有限公司 | 图形数据库非联机事务中插入数据的控制方法 |
CN102193989B (zh) * | 2011-03-25 | 2015-07-08 | 北京世纪互联宽带数据中心有限公司 | 基于图形数据库的联机事务处理系统及数据插入方法 |
CN102193979B (zh) * | 2011-03-25 | 2012-09-05 | 北京世纪互联工程技术服务有限公司 | 图形数据库非联机事务中查询数据的控制方法 |
CN102103642B (zh) * | 2011-03-25 | 2016-08-03 | 北京世纪互联宽带数据中心有限公司 | 基于oltp的数据删除方法、系统及图形数据库服务器 |
CN102193977B (zh) * | 2011-03-25 | 2013-01-02 | 北京世纪互联宽带数据中心有限公司 | 图形数据库非联机事务中增加节点数据关系的方法 |
CN102193991B (zh) * | 2011-03-25 | 2014-08-20 | 北京世纪互联宽带数据中心有限公司 | 基于oltp的数据修改方法、系统及图形数据库服务器 |
CN102955801B (zh) * | 2011-08-25 | 2017-06-16 | 中兴通讯股份有限公司 | 基于分布式数据库系统的数据控制方法及系统 |
US9870384B2 (en) | 2012-03-30 | 2018-01-16 | International Business Machines Corporation | Database system transaction management |
CN103677968B (zh) * | 2012-09-07 | 2017-11-10 | 腾讯科技(深圳)有限公司 | 事务处理方法、事务协调器装置、事务参与者装置及系统 |
CN102880473A (zh) * | 2012-09-28 | 2013-01-16 | 五八有限公司 | 基于quartz框架的任务执行方法及装置 |
CN105760252A (zh) * | 2014-12-19 | 2016-07-13 | 中兴通讯股份有限公司 | 实现事务日志镜像备份的方法及装置 |
CN106293491B (zh) | 2015-05-13 | 2019-07-09 | 华为技术有限公司 | 写请求的处理方法和内存控制器 |
CN106815094B (zh) * | 2015-12-02 | 2020-12-11 | 阿里巴巴集团控股有限公司 | 一种用于实现主备同步模式下事务提交的方法与设备 |
CN106855858B (zh) * | 2015-12-08 | 2020-09-29 | 阿里巴巴集团控股有限公司 | 数据库操作方法及装置 |
US10339127B2 (en) * | 2016-01-28 | 2019-07-02 | Oracle International Corporation | Guaranteed commit outcome in a distributed transaction processing system |
CN107665219B (zh) * | 2016-07-28 | 2021-01-29 | 华为技术有限公司 | 一种日志管理方法及装置 |
CN107918620B (zh) * | 2016-10-10 | 2022-04-19 | 阿里巴巴集团控股有限公司 | 一种数据库的写入方法及装置、电子设备 |
CN108132831A (zh) * | 2016-12-01 | 2018-06-08 | 阿里巴巴集团控股有限公司 | 任务的处理方法和处理装置 |
CN106681760A (zh) * | 2016-12-12 | 2017-05-17 | 国网北京市电力公司 | 基于客户工程项目管理系统的事务处理方法和装置 |
CN106776076B (zh) * | 2016-12-27 | 2019-04-26 | 国网信息通信产业集团有限公司 | 一种实现MongoDB事务管理的方法及系统 |
CN108279762A (zh) * | 2018-01-22 | 2018-07-13 | 北京计算机技术及应用研究所 | 基于硬件保护的事务处理方法 |
CN109947742B (zh) * | 2019-02-28 | 2021-08-03 | 上海交通大学 | 面向二阶段锁的多版本数据库并发控制方法和系统 |
CN110502523A (zh) * | 2019-08-01 | 2019-11-26 | 广东浪潮大数据研究有限公司 | 业务数据存储方法、装置、服务器及计算机可读存储介质 |
CN110704466B (zh) * | 2019-09-27 | 2021-12-17 | 武汉极意网络科技有限公司 | 黑产数据存储方法及装置 |
CN111831757B (zh) * | 2020-06-09 | 2023-05-12 | 时时同云科技(成都)有限责任公司 | 分布式全局唯一标识信息的生成和管理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5077658A (en) * | 1987-10-19 | 1991-12-31 | International Business Machines Corporation | Data access system for a file access processor |
CN1858710A (zh) * | 2006-01-19 | 2006-11-08 | 华为技术有限公司 | 数据同步的方法和系统 |
CN101026488A (zh) * | 2007-01-12 | 2007-08-29 | 华为技术有限公司 | 一种分布式数据加载的实现方法及系统 |
-
2009
- 2009-11-16 CN CN2009102223770A patent/CN101699439B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5077658A (en) * | 1987-10-19 | 1991-12-31 | International Business Machines Corporation | Data access system for a file access processor |
CN1858710A (zh) * | 2006-01-19 | 2006-11-08 | 华为技术有限公司 | 数据同步的方法和系统 |
CN101026488A (zh) * | 2007-01-12 | 2007-08-29 | 华为技术有限公司 | 一种分布式数据加载的实现方法及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107016029A (zh) * | 2016-12-13 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 一种业务数据的处理方法、装置及系统 |
CN107016029B (zh) * | 2016-12-13 | 2020-11-06 | 创新先进技术有限公司 | 一种业务数据的处理方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101699439A (zh) | 2010-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101699439B (zh) | 一种数据库的事务提交方法和装置 | |
CN101334797B (zh) | 一种分布式文件系统及其数据块一致性管理的方法 | |
CN110493148B (zh) | 一种区块处理、区块共识和区块同步方法及装置 | |
CN103875229B (zh) | 异步复制方法、装置与系统 | |
CN103180852B (zh) | 分布式数据处理方法及装置 | |
CN103365929B (zh) | 一种数据库连接的管理方法及系统 | |
CN104657158B (zh) | 一种业务系统中业务处理的方法和装置 | |
EP2825958B1 (en) | Systems and methods for supporting transaction recovery based on a strict ordering of two-phase commit calls | |
CN104346373B (zh) | 分区日志队列同步管理方法及设备 | |
CN102033930A (zh) | 分布式内存数据库系统 | |
CN111143389A (zh) | 事务执行方法、装置、计算机设备及存储介质 | |
CN102521269A (zh) | 一种基于索引的计算机连续数据保护方法 | |
CN105956123A (zh) | 基于局部更新软件的数据处理方法及装置 | |
US20070282878A1 (en) | System and method for online reorganization of a database using flash image copies | |
CN113220795B (zh) | 基于分布式存储的数据处理方法、装置、设备以及介质 | |
CN102314506B (zh) | 基于动态索引的分布式缓冲区管理方法 | |
CN104050276A (zh) | 一种分布式数据库的缓存处理方法及系统 | |
CN104317957B (zh) | 一种报表处理的开放平台、系统及报表处理方法 | |
CN110597835B (zh) | 一种基于区块链的交易数据删除方法及装置 | |
CN112800065A (zh) | 基于改进区块存储结构的高效数据检索方法 | |
CN110232095A (zh) | 一种数据同步方法、装置、存储介质和服务器 | |
CN102006297A (zh) | 一种基于两级策略决策的访问控制方法及其系统 | |
CN106250501A (zh) | 报表处理方法及报表系统 | |
CN106656522A (zh) | 跨数据中心的数据计算方法及系统 | |
CN105868398B (zh) | 一种基于Fat-B树的分布式文件系统低开销数据传输方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111228 Termination date: 20191116 |
|
CF01 | Termination of patent right due to non-payment of annual fee |