一种同步活动事务表的方法及装置制造方法及图纸

技术编号:18894595 阅读:47 留言:0更新日期:2018-09-08 11:00
本申请提供一种同步活动事务表的方法及装置,用以解决现有技术中存在节点间同步活动事务表的数据传输量较大,传输耗时较长的问题。该同步活动事务表的方法包括:第一节点在事务表增量日志缓冲区中记录上一次同步活动事务表之后的事务表增量日志,该事务表增量日志用于表示该第一节点的活动事务表中所记录事务的变化,包括表示在该活动事务表中新增事务的新增事务日志以及表示从该活动事务表中删除事务的提交事务日志;在对该提交事务日志所记录的事务进行组提交时,该第一节点向至少一个第二节点发送该事务表增量日志,以使该至少一个第二节点根据接收的该事务表增量日志对该至少一个第二节点保存的活动事务表进行更新。

Method and device for synchronizing active transaction table

The application provides a method and a device for synchronizing active transaction tables, which can solve the problems of large data transmission volume and long transmission time of synchronized active transaction tables among nodes in the prior art. The method of synchronizing the active transaction table includes: the first node logs the incremental transaction table log after the last synchronized active transaction table in the transaction table incremental log buffer, which represents the changes recorded in the active transaction table of the first node, including the new transaction table in the active transaction table Additional transaction logs for additional transactions and commit transaction logs indicating deletion of transactions from the active transaction table; when a Group commits a transaction recorded in the commit transaction log, the first node sends the transaction table incremental logs to at least one second node so that the at least one second node receives the transaction The transaction increment log updates the active transaction table saved by at least one second node.

【技术实现步骤摘要】
一种同步活动事务表的方法及装置
本申请涉及数据库
,尤其涉及一种同步活动事务表的方法及装置。
技术介绍
事务(Transaction)是数据库系统中由用户定义的一个数据库操作序列,这些操作要么全部执行要么全不执行,是一个不可分割的工作单位。活动事务表(ActiveTransactionList)用于记录尚未提交事务的事务号,分布式数据库集群中的节点之间需要同步活动事务表,以保证数据库的一致性。现有技术中,执行事务的节点在进行组提交时,将自身的活动事务表发送给数据库集群中的其它节点,使得这些节点将自身的活动事务表与执行事务的节点的活动事务表同步。但是,节点通常存在大量的并发事务,使得节点的活动事务表变得非常大,通过网络同步活动事务表不仅消耗大量的传输资源,而且活动事务表的传输耗时较长,导致节点间活动事务表的同步存在较大的时延,降低数据库系统的效率。
技术实现思路
本申请提供一种同步活动事务表的方法及装置,用以解决现有技术中存在节点间同步活动事务表的数据传输量较大,传输耗时较长的问题。第一方面,本申请提供了一种同步活动事务表的方法,该方法可以应用包括一个主节点以及多个备节点的一主多备架构的集群数据库系统,也可以应用于包括一个协作节点以及多个数据节点的多写架构的集群数据库系统。该方法可以由一主多备架构的集群数据库系统中的主节点执行,也可以由多写架构的集群数据库系统中的协作节点执行。在该方法中,第一节点(上述主节点或协作节点)在事务表增量日志缓冲区中记录上一次同步活动事务表之后的事务表增量日志,所述事务表增量日志用于表示所述第一节点的活动事务表中所记录事务的变化,包括表示在所述活动事务表中新增事务的新增事务日志以及表示从所述活动事务表中删除事务的提交事务日志,所述活动事务表用于记录尚未提交的事务。然后,在对提交事务日志所记录的事务进行组提交时,第一节点向数据库集群中除自己之外的第二节点发送事务表增量日志缓冲区中记录的事务表增量日志,该第二节点的个数可以为1个或多于1个,在第一节点为前述主节点时,第二节点为前述备节点;在第一节点为前述协作节点时,第二节点为前述数据节点。第二节点接收第一节点发送的事务表增量日志以后,根据事务表增量日志对本地保存的活动事务表进行更新。上述技术方案中,第一节点向第二节点发送组提交时的事务表增量日志,第二节点可以根据该事务表增量日志将自身的活动事务表更新为与第一节点的活动事务表一致。由于组提交时事务表增量日志的数量通常远小于第一节点的活动事务表中活动事务的数量,所以,事务表增量日志的大小远小于整个活动事务表的大小,通过传输事务表增量日志实现活动事务表的同步,能够减小占用的传输资源,且能够减少传输耗时,减小活动事务表同步的延时。在第一方面的一种可选的实现方式中,第一节点将事务表增量日志缓冲区配置为由redo日志锁保护,第一节点在针对新增事务获得redo日志锁并写入redo日志的过程中,还可以使用该redo日志锁锁定事务表增量日志缓冲区,一并在事务表增量日志缓冲区中写入新增事务日志,第一节点在事务表增量日志缓冲区中写入新增事务日志的过程没有产生额外的锁开销。第一节点在针对提交事务获得redo日志锁并写入redo日志的过程中,还可以使用该redo日志锁锁定事务表增量日志缓冲区,一并在事务表增量日志缓冲区中写入提交事务日志,第一节点在事务表增量日志缓冲区中写入提交事务日志的过程也没有产生额外的锁开销。上述技术方案中,第一节点记录事务表增量日志时利用已有的redo日志锁,不会产生额外的锁开销,能够有效缓减记录事务表增量日志时的锁权限抢夺,提高事务的吞吐量。在第一方面的一种可选的实现方式中,事务表增量日志缓冲区由重做redo日志锁保护时,第一节点先获得所述redo日志锁,锁定所述事务表增量日志缓冲区,将事务表增量日志缓冲区中的事务表增量日志拷贝至内存中无锁保护的缓冲区,然后,将该无锁保护的缓冲区中的事务表增量日志发送至第二节点,其中,从该无锁保护的缓冲区向第二节点发送事务表增量日志的过程不占用redo日志锁。通过上述方案可以有效减少发送事务表增量日志时的redo日志锁的占用,提高事务的吞吐量。在第一方面的一种可选的实现方式中,第一节点在根据redo日志锁将事务表增量日志缓冲区中的事务表增量日志拷贝至无锁保护的缓冲区之后,重置事务表增量日志缓冲区,使得第一节点能够及时在事务表增量日志缓冲区中记录组提交之后新增事务的事务表增量日志以及提交事务的事务表增量日志,提高事务的吞吐量以及事务处理的效率。在第一方面的一种可选的实现方式中,在所述第一节点向至少一个第二节点发送所述事务表增量日志之前,从事务表增量日志中删除针对同一事务所记录的新增事务日志以及提交事务日志。第一节点删除针对同一事务所记录的新增事务日志以及提交事务日志不会对节点间活动事务表的同步造成影响,而且能够显著减少日志传输量,减少传输资源的消耗,缩短事务表同步的耗时。在第一方面的一种可选的实现方式中,如果事务表增量日志的总大小本身不大于预设阈值,为一较小值,第一节点可以不点检索针对同一事务所记录的新增事务日志以及提交事务日志,减少计算资源的消耗。反之,只有在该事务表增量日志的总大小大于预设阈值,为一较大值时,第一节点才点检索针对同一事务所记录的新增事务日志以及提交事务日志,删除针对同一事务所记录的新增事务日志以及提交事务日志,减少日志传输量。在第一方面的一种可选的实现方式中,在第二节点加入第一节点所在的数据库集群后,第一节点将自身当前的活动事务表发送给第一节点,进而使第二节点保存该活动事务表,实现第二节点的活动事务表初始化。第二方面,本申请提供了一种同步活动事务表的方法,该方法可以应用包括一个主节点以及多个备节点的一主多备架构的集群数据库系统,也可以应用于包括一个协作节点以及多个数据节点的多写架构的集群数据库系统。该方法可以由一主多备架构的集群数据库系统中的备节点执行,也可以由多写架构的集群数据库系统中的数据节点执行。在该方法中,第二节点(上述备节点或数据节点)接收第一节点(在第二节点为上述备节点时,第一节单为主节点,在第二节点为前述数据节点时,第一节点为协作节点)发送的事务表增量日志,的上一次同步活动事务表之后的事务表增量日志,所述事务表增量日志用于表示所述第一节点的活动事务表中所记录事务的变化,包括表示在所述活动事务表中新增事务的新增事务日志以及表示从所述活动事务表中删除事务的提交事务日志,所述活动事务表用于记录尚未提交的事务;所述第二节点根据所述事务表增量日志对本地的活动事务表进行更新。上述技术方案中,第一节点向第二节点发送组提交时的事务表增量日志,第二节点可以根据该事务表增量日志将自身的活动事务表更新为与第一节点的活动事务表一致。由于组提交时事务表增量日志的数量通常远小于第一节点的活动事务表中活动事务的数量,所以,事务表增量日志的大小远小于整个活动事务表的大小,通过传输事务表增量日志实现活动事务表的同步,能够减小占用的传输资源,且能够减少传输耗时,减小活动事务表同步的延时。在第二方面的一种可选的实现方式中,所述第二节点根据所述事务表增量日志对本地的活动事务表进行更新的过程中,若所述事务表增量日志中包括新增第一事务的日志且未本文档来自技高网...

【技术保护点】
1.一种同步活动事务表的方法,其特征在于,包括:第一节点在事务表增量日志缓冲区中记录上一次同步活动事务表之后的事务表增量日志,所述事务表增量日志用于表示所述第一节点的活动事务表中所记录事务的变化,包括表示在所述活动事务表中新增事务的新增事务日志以及表示从所述活动事务表中删除事务的提交事务日志,所述活动事务表用于记录尚未提交的事务;在对所述提交事务日志所记录的事务进行组提交时,所述第一节点向至少一个第二节点发送所述事务表增量日志,以使所述至少一个第二节点根据接收的所述事务表增量日志对所述至少一个第二节点保存的活动事务表进行更新。

【技术特征摘要】
1.一种同步活动事务表的方法,其特征在于,包括:第一节点在事务表增量日志缓冲区中记录上一次同步活动事务表之后的事务表增量日志,所述事务表增量日志用于表示所述第一节点的活动事务表中所记录事务的变化,包括表示在所述活动事务表中新增事务的新增事务日志以及表示从所述活动事务表中删除事务的提交事务日志,所述活动事务表用于记录尚未提交的事务;在对所述提交事务日志所记录的事务进行组提交时,所述第一节点向至少一个第二节点发送所述事务表增量日志,以使所述至少一个第二节点根据接收的所述事务表增量日志对所述至少一个第二节点保存的活动事务表进行更新。2.根据权利要求1所述的方法,其特征在于,所述事务表增量日志缓冲区由重做redo日志锁保护,第一节点在事务表增量日志缓冲区中记录事务表增量日志,包括:所述第一节点获得所述redo日志锁,锁定所述事务表增量日志缓冲区,在所述事务表增量日志缓冲区中记录所述新增事务日志以及所述提交事务日志。3.根据权利要求2所述的方法,其特征在于,所述第一节点向至少一个第二节点发送所述事务表增量日志,包括:所述第一节点获得所述redo日志锁,锁定所述事务表增量日志缓冲区,将所述事务表增量日志缓冲区中的所述事务表增量日志拷贝至无锁保护的缓冲区,向所述至少一个第二节点发送所述无锁保护的缓冲区中事务表增量日志。4.根据权利要求3所述的方法,其特征在于,在所述第一节点将所述事务表增量日志缓冲区中的所述事务表增量日志拷贝至无锁保护的缓冲区之后,还包括:所述第一节点重置所述事务表增量日志缓冲区。5.根据权利要求1至4任一项所述的方法,其特征在于,在所述第一节点向至少一个第二节点发送所述事务表增量日志之前,还包括:所述第一节点从所述事务表增量日志中删除针对同一事务所记录的新增事务日志以及提交事务日志。6.根据权利要求1至4任一项所述的方法,其特征在于,在所述第一节点向至少一个第二节点发送所述事务表增量日志之前,还包括:所述第一节点判断所述事务表增量日志的总大小是否大于预设阈值;若所述事务表增量日志的总大小大于所述预设阈值,则所述第一节点从所述事务表增量日志中删除针对同一事务所记录的新增事务日志以及提交事务日志。7.根据权利要求1至6任一项所述的方法,其特征在于,在所述第一节点向至少一个第二节点发送所述事务表增量日志之前,还包括:在所述第二节点加入所述第一节点所在的数据库集群时,所述第一节点向所述第二节点发送所述第一节点的活动事务表。8.一种同步活动事务表的方法,其特征在于,包括:第二节点接收第一节点发送的上一次同步活动事务表之后的事务表增量日志,所述事务表增量日志用于表示所述第一节点的活动事务表中所记录事务的变化,包括表示在所述活动事务表中新增事务的新增事务日志以及表示从所述活动事务表中删除事务的提交事务日志,所述活动事务表用于记录尚未提交的事务;所述第二节点根据所述事务表增量日志对本地的活动事务表进行更新。9.根据权利要求8所述的方法,其特征在于,所述第二节点根据所述事务表增量日志对本地的活动事务表进行更新,包括:若所述事务表增量日志中包括新增第一事务的日志且未包括提交所述第一事务的日志,则所述第二节点在所述活动事务表中新增所述第一事务;和/或若所述活动事务表中包括第二事务且所...

【专利技术属性】
技术研发人员:文继军尚博王伟
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1