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.一种同步活动事务表的方法,其特征在于,包括:第一节点在事务表增量日志缓冲区中记录上一次同步活动事务表之后的事务表增量日志,所述事务表增量日志用于表示所述第一节点的活动事务表中所记录事务的变化,包括表示在所述活动事务表中新增事务的新增事务日志以及表示从所述活动事务表中删除事务的提交事务日志,所述活动事务表用于记录尚未提交的事务;在对所述提交事务日志所记录的事务进行组提交时,所述第一节点向至少一个第二节点发送所述事务表增量日志,以使所述至少一个第二节点根据接收的所述事务表增量日志对所述至少一个第二节点保存的活动事务表进行更新。2.根据权利要求1所述的方法,其特征在于,所述事务表增量日志缓冲区由重做redo日志锁保护,第一节点在事务表增量日志缓冲区中记录事务表增量日志,包括:所述第一节点获得所述redo日志锁,锁定所述事务表增量日志缓冲区,在所述事务表增量日志缓冲区中记录所述新增事务日志以及所述提交事务日志。3.根据权利要求2所述的方法,其特征在于,所述第一节点向至少一个第二节点发送所述事务表增量日志,包括:所述第一节点获得所述redo日志锁,锁定所述事务表增量日志缓冲区,将所述事务表增量日志缓冲区中的所述事务表增量日志拷贝至无锁保护的缓冲区,向所述至少一个第二节点发送所述无锁保护的缓冲区中事务表增量日志。4.根据权利要求3所述的方法,其特征在于,在所述第一节点将所述事务表增量日志缓冲区中的所述事务表增量日志拷贝至无锁保护的缓冲区之后,还包括:所述第一节点重置所述事务表增量日志缓冲区。5.根据权利要求1至4任一项所述的方法,其特征在于,在所述第一节点向至少一个第二节点发送所述事务表增量日志之前,还包括:所述第一节点从所述事务表增量日志中删除针对同一事务所记录的新增事务日志以及提交事务日志。6.根据权利要求1至4任一项所述的方法,其特征在于,在所述第一节点向至少一个第二节点发送所述事务表增量日志之前,还包括:所述第一节点判断所述事务表增量日志的总大小是否大于预设阈值;若所述事务表增量日志的总大小大于所述预设阈值,则所述第一节点从所述事务表增量日志中删除针对同一事务所记录的新增事务日志以及提交事务日志。7.根据权利要求1至6任一项所述的方法,其特征在于,在所述第一节点向至少一个第二节点发送所述事务表增量日志之前,还包括:在所述第二节点加入所述第一节点所在的数据库集群时,所述第一节点向所述第二节点发送所述第一节点的活动事务表。8.一种同步活动事务表的方法,其特征在于,包括:第二节点接收第一节点发送的上一次同步活动事务表之后的事务表增量日志,所述事务表增量日志用于表示所述第一节点的活动事务表中所记录事务的变化,包括表示在所述活动事务表中新增事务的新增事务日志以及表示从所述活动事务表中删除事务的提交事务日志,所述活动事务表用于记录尚未提交的事务;所述第二节点根据所述事务表增量日志对本地的活动事务表进行更新。9.根据权利要求8所述的方法,其特征在于,所述第二节点根据所述事务表增量日志对本地的活动事务表进行更新,包括:若所述事务表增量日志中包括新增第一事务的日志且未包括提交所述第一事务的日志,则所述第二节点在所述活动事务表中新增所述第一事务;和/或若所述活动事务表中包括第二事务且所...
【专利技术属性】
技术研发人员:文继军,尚博,王伟,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。