CN112035497B - 用于清理已提交的事务信息的方法和装置 - Google Patents

用于清理已提交的事务信息的方法和装置 Download PDF

Info

Publication number
CN112035497B
CN112035497B CN202010893911.7A CN202010893911A CN112035497B CN 112035497 B CN112035497 B CN 112035497B CN 202010893911 A CN202010893911 A CN 202010893911A CN 112035497 B CN112035497 B CN 112035497B
Authority
CN
China
Prior art keywords
transaction information
submitted
state
transaction
commit
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.)
Active
Application number
CN202010893911.7A
Other languages
English (en)
Other versions
CN112035497A (zh
Inventor
韩硕
周力
蔡歌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202010893911.7A priority Critical patent/CN112035497B/zh
Publication of CN112035497A publication Critical patent/CN112035497A/zh
Application granted granted Critical
Publication of CN112035497B publication Critical patent/CN112035497B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了用于清理已提交的事务信息的方法和装置,涉及云计算技术领域。具体实现方案为:获取目标分片的已提交的事务信息集合,其中,事务信息包括事务标志;获取分布式数据库中除目标分片之外的其它分片中处于非提交状态的事务信息集合;对于目标分片的每个已提交的事务信息,若该已提交的事务信息中的事务标志不存在于其它分片中处于非提交状态的事务信息中,则将该已提交的事务信息标记为删除;删除目标分片中标记为删除的已提交的事务信息。该实施方式能够及时清理已提交的事务信息,避免压测时内存快速增长,减少处理不一致事务状态的时间,提高性能测试结果。

Description

用于清理已提交的事务信息的方法和装置
技术领域
本申请涉及计算机技术领域,具体涉及云计算技术领域。
背景技术
数据库为保证分布式数据的一致性,在各分片实例引入提交信息。若不及时清理提交信息会导致数据实例内存随着运行时间的增长不断增加。如果遇到分片损坏、断电、操作系统故障等因素还会导致分片上数据库实例崩溃,进一步导致数据的不一致性,需要根据提交信息处理不一致性。如果提交信息积累过多,则分析提交信息的过程效率非常低。
发明内容
本公开提供了一种用于清理已提交的事务信息的方法、装置、设备以及存储介质。
根据本公开的第一方面,提供了一种用于清理已提交的事务信息的方法,包括:获取目标分片的已提交的事务信息集合,其中,事务信息包括事务标志;获取分布式数据库中除目标分片之外的其它分片中处于非提交状态的事务信息集合;对于目标分片的每个已提交的事务信息,若该已提交的事务信息中的事务标志不存在于其它分片中处于非提交状态的事务信息中,则将该已提交的事务信息标记为删除;删除目标分片中标记为删除的已提交的事务信息。
根据本公开的第二方面,提供了一种用于清理已提交的事务信息的装置,包括:遍历单元,被配置成遍历分布式数据库中每个分片依次作为目标分片;第一获取单元,被配置成获取目标分片的已提交的事务信息集合,其中,事务信息包括事务标志;第二获取单元,被配置成获取分布式数据库中除目标分片之外的其它分片中处于非提交状态的事务信息集合;查找单元,被配置成对于目标分片的每个已提交的事务信息,若该已提交的事务信息中的事务标志不存在于其它分片中处于非提交状态的事务信息中,则将该已提交的事务信息标记为删除;删除单元,被配置成删除目标分片中标记为删除的已提交的事务信息。
根据本公开的第三方面,提供了一种电子设备,其特征在于,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行第一方面中任一项的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,计算机指令用于使计算机执行第一方面中任一项的方法。
根据本申请的技术能够有效删除提交信息,避免内存随运行时间增长而过快增大。提高删除效率,避免数据库后端花费大量时间清理信息,造成性能折损而产生较大波动。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本公开的一个实施例可以应用于其中的示例性系统架构图;
图2是根据本公开的用于清理已提交的事务信息的方法的一个实施例的流程图;
图3是根据本公开的用于清理已提交的事务信息的方法的一个应用场景的示意图;
图4是根据本公开的用于清理已提交的事务信息的方法的又一个实施例的流程图;
图5是根据本公开的用于清理已提交的事务信息的方法的又一个应用场景的示意图;
图6是根据本公开的用于清理已提交的事务信息的装置的一个实施例的结构示意图;
图7是用来实现本申请实施例的用于清理已提交的事务信息的方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1示出了可以应用本公开的用于清理已提交的事务信息的方法或用于清理已提交的事务信息的装置的实施例的示例性系统架构100。
如图1所示,分布式数据库的系统架构包含两类机器(或节点):一类为协调者(coordinator),即服务器,通常一个系统中只有一个。另一类为事务参与者(participants,cohorts或workers),即分片,一般包含多个,在数据存储系统中可以理解为数据副本的个数。假设每个节点都会记录写前日志(write-ahead log)并持久性存储,即使节点发生故障日志也不会丢失。同时假设节点不会发生永久性故障而且任意两个节点都可以互相通信。服务器与分片之间通过网络连接。网络可以包括各种连接类型,例如有线、无线通信链路等等。
需要说明的是,本公开的实施例所提供的用于清理已提交的事务信息的方法一般由服务器执行,相应地,用于清理已提交的事务信息的装置一般设置于服务器中。
应该理解,图1中的服务器和分片的数目仅仅是示意性的。根据实现需要,可以具有任意数目的服务器和分片。
继续参考图2,示出了根据本公开的用于清理已提交的事务信息的方法的一个实施例的流程200。该用于清理已提交的事务信息的方法,包括以下步骤:
步骤201,获取目标分片的已提交的事务信息集合。
在本实施例中,用于清理已提交的事务信息的方法的执行主体(例如图1所示的服务器)可以通过有线连接方式或者无线连接方式从目标分片获取已提交的事务信息集合。目标分片为分布式数据库中任一分片。可遍历分布式数据库中每个分片依次作为目标分片执行步骤201-204。事务信息中可包括事务标志,还可包括其它信息,例如,时间、提交顺序等。
本申请可用于采用二阶段提交协议的分布式数据库,还可用于采用三阶段提交协议的分布式数据库,适应范围广。
当分布式数据库采用二阶段提交协议时,事务包括两种状态:准备状态(prepare)和已提交状态(commit)。已提交状态的事务信息即为提交信息。事务信息可包括事务标志,用xid表示。
当分布式数据库采用三阶段提交协议时,事务包括三种状态:询问状态(can-commit)、预提交状态(pre-commit)、已提交状态(do-commit)。已提交状态的事务信息即为提交信息。事务信息可包括事务标志,用xid表示。
目标分片中可存储了多种状态的事务信息。本步骤只获取已提交的事务信息。目标分片中已提交的事务信息的数量可能大于1,因此构成了已提交的事务信息集合,例如,目标分片已提交的事务信息为{xid1,xid2,xid5}。特殊情况下,已提交的事务信息集合可能为空,则不需要执行步骤202-204。重新选择其它分片作为目标分片执行步骤201-204。
步骤202,获取分布式数据库中除目标分片之外的其它分片中处于非提交状态的事务信息集合。
在本实施例中,除目标分片之外的其它分片也存储了多种状态的事务信息。本步骤只获取处于非提交状态的事务信息集合。当分布式数据库采用二阶段提交协议时,获取的是处于准备状态的事务信息集合。当分布式数据库采用三阶段提交协议时,获取的是处于询问状态和预提交状态的事务信息集合。可将其它不同分片的处于非提交状态的事务信息集合合并成一个合集,例如,其它分片处于非提交状态的事务信息的合集为{xid5,xid6,xid7}。
步骤203,对于目标分片的每个已提交的事务信息,若该已提交的事务信息中的事务标志不存在于其它分片中处于非提交状态的事务信息中,则将该已提交的事务信息标记为删除。
在本实施例中,本申请的目的是删除所有分片中都已提交的事务信息,如果不同分片的事务信息的状态不一致,则不能删除。因此需要取目标分片的已提交的事务信息集合和其它分片中处于非提交状态的事务信息集合的交集,交集中的事务信息不能删除。而只删除存在于目标分片的已提交的事务信息集合中但不存在于其它分片中处于非提交状态的事务信息集合中的事务标志。例如,目标分片已提交的事务信息为{xid1,xid2,xid5},其它分片处于非提交状态的事务信息的合集为{xid5,xid6,xid7}。则将xid1,xid2标记为删除,而xid5由于没有达成所有分片的状态一致性,因此不能删除xid5
步骤204,删除目标分片中标记为删除的已提交的事务信息。
在本实施例中,服务器可向目标分片发送删除指令(指令中包括事务标志),让目标分片删除标记为删除的已提交的事务信息。
本公开的上述实施例提供的方法通过及时清理提交信息,能够避免压测时内存快速增长,减少处理不一致事务状态的时间,提高性能测试结果。
当一个目标分片完成上述步骤后,可再继续遍历分布式数据库中的其它分片作为目标分片继续执行步骤201-204。
继续参见图3,图3是根据本实施例的用于清理已提交的事务信息的方法的应用场景的一个示意图。在图3的应用场景中,服务器依次选择分片1到分片N作为目标分片执行步骤201-204。首先,服务器选择分片1作为目标分片,然后获取分片1中已提交的事务信息集合{xid1,xid2,xid5},再获取分片2中非提交状态的事务信息集合{xid5,xid6,xid7},继续获取其它分片中非提交状态的事务信息集合(图中省略分片3到分片N-1的非提交状态的事务信息集合),直到最后一个分片N中非提交状态的事务信息集合{xid6,xid7}。最终其它分片的非提交状态的事务信息集合的并集为{xid5,xid6,xid7}。服务器分别将xid1,xid2,xid5与并集{xid5,xid6,xid7}进行匹配,发现xid1,xid2不存在于并集中,则可删除xid1,xid2对应的事务信息。而xid5存在于并集中,因此不能删除xid5对应的事务信息。服务器向分片1发送删除xid1,xid2对应的事务信息的指令,则分片1接收到指令后删除xid1,xid2对应的事务信息。
服务器继续遍历分片2作为目标分片,然后获取分片2中已提交的事务信息集合{xid1,xid2,xid3,xid4},再获取分片1中非提交状态的事务信息集合{xid6,xid7},继续获取其它分片中非提交状态的事务信息集合(图中省略分片3到分片N-1的非提交状态的事务信息集合),直到最后一个分片N中非提交状态的事务信息集合{xid6,xid7}。最终其它分片的非提交状态的事务信息集合的并集为{xid6,xid7}。服务器分别将xid1,xid2,xid3,xid4与并集{xid6,xid7}进行匹配,发现xid1,xid2,xid3,xid4不存在于并集中,则可删除xid1,xid2,xid3,xid4对应的事务信息。服务器向分片2发送删除xid1,xid2,xid3,xid4对应的事务信息的指令,则分片2接收到指令后删除xid1,xid2,xid3,xid4对应的事务信息。
同理,服务器继续遍历其它分片作为目标分片,直到遍历完分片N。才将分布式数据库中的所有分片的已提交的事务信息删除。
进一步参考图4,其示出了用于清理已提交的事务信息的方法的又一个实施例的流程400。该用于清理已提交的事务信息的方法的流程400,包括以下步骤:
步骤401,获取目标分片的已提交的事务信息集合。
在本实施例中,步骤401与步骤201基本相同,但是本实施例中,事务信息还包括提交顺序,事务信息按提交顺序存储。提交顺序是按时间递增的编号。已提交的事务信息是按提交顺序排列的,因此方便找到连续的可删除区间。图5所示为查找删除区间的示例图。其中,删除区间的起点xacid_low的初始值设为0,删除区间的终点xacid_high的初始值设为0。事务标志的索引k的初始值也设为0。如果目标分片的已提交的事务信息集合(图5中用xid_commited_set表示)中事务信息的数量(图5中用len(xid_commited_set)表示)大于k,则可执行步骤402-406,否则,更换目标分片,继续执行步骤401-406。
在本实施例的一些可选的实现方式中,已提交的事务信息的存储采用以提交顺序为键的红黑树,存储的内容为提交顺序与事务标志的映射关系。这样可以提高删除效率、及时进行删除,避免压测时内存快速增长,减少处理不一致事务状态的时间,提高性能测试结果。
步骤402,获取分布式数据库中除目标分片之外的其它分片中处于非提交状态的事务信息集合。
在本实施例中,步骤402与步骤202基本相同,因此不再赘述。其它分片中处于非提交状态的事务信息集合在图5中用xid_prepared_set表示。
步骤403,按提交顺序由小到大的顺序遍历目标分片的已提交的事务信息,直到找到已提交的事务信息中的事务标志不存在于其它分片中处于非提交状态的事务信息中时,将此时的提交顺序确定为删除区间的起点。
在本实施例中,对于xid_commited_set中xid0,如果xid0不存在于其它分片中处于非提交状态的事务信息中,则找到了删除区间的起点,将xid0对应的提交顺序赋值给xacid_low。否则,k++,继续查看xid1是否存在于其它分片中处于非提交状态的事务信息中,如果存在,则继续k++,直到找到已提交的事务信息中的事务标志不存在于其它分片中处于非提交状态的事务信息,则将此时的提交顺序确定为删除区间的起点xacid_low。找到起点后,k++,这样跳转到下一个事务标志,开始查找删除区间的终点。
步骤404,继续按提交顺序由小到大的顺序遍历目标分片的已提交的事务信息,直到找到已提交的事务信息中的事务标志存在于其它分片中处于非提交状态的事务信息中时,将此时的提交顺序确定为删除区间的终点。
在本实施例中,在步骤403更新过k的基础上继续查看是否存在于其它分片中处于非提交状态的事务信息中,如果不存在,则继续k++,直到找到已提交的事务信息中的事务标志存在于其它分片中处于非提交状态的事务信息,则将此时的提交顺序确定为删除区间的终点xacid_high。删除区间为[xacid_low,xacid_high),即xacid_high不删除。找到终点后,k++,这样跳转到下一个事务标志,可再找出其它连续的删除区间。从而找到连续的可删除区间,方便批量删除。
步骤405,将删除区间的起点和终点之间对应的事务信息标记为删除。
在本实施例中,将[xacid_low,xacid_high)之间的连续的事务标志对应的事务信息标记为删除。
步骤406,删除目标分片中标记为删除的已提交的事务信息。
在本实施例中,批量删除连续删除区间对应的事务信息。
在本实施例的一些可选的实现方式中,根据已标记为删除的已提交的事务信息确定事务信息的连续可删除区间;根据连续可删除区间对事务信息进行批量删除。可找到目标分片中多个删除区间,然后批量删除,从而提交处理效率,减少指令开销,缓存分布式数据库的压力。
在本实施例的一些可选的实现方式中,遍历分布式数据库中每个分片依次作为目标分片执行步骤401-406,实现整个分布式数据库的内存清理。
从图4中可以看出,与图2对应的实施例相比,本实施例中的用于清理已提交的事务信息的方法的流程400体现了查找连续的删除区间进行批量删除的步骤。由此,本实施例描述的方案可以提高删除效率。
进一步参考图6,作为对上述各图所示方法的实现,本公开提供了一种用于清理已提交的事务信息的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图6所示,本实施例的用于清理已提交的事务信息的装置600包括:第一获取单元601、第二获取单元602、查找单元603、删除单元604。其中,第一获取单元601,被配置成获取目标分片的已提交的事务信息集合,其中,事务信息包括事务标志;第二获取单元602,被配置成获取分布式数据库中除目标分片之外的其它分片中处于非提交状态的事务信息集合;查找单元603,被配置成对于目标分片的每个已提交的事务信息,若该已提交的事务信息中的事务标志不存在于其它分片中处于非提交状态的事务信息中,则将该已提交的事务信息标记为删除;删除单元604,被配置成删除目标分片中标记为删除的已提交的事务信息。
在本实施例中,用于清理已提交的事务信息的装置600的第一获取单元601、第二获取单元602、查找单元603、删除单元604的具体处理可以参考图2对应实施例中的步骤201、步骤202、步骤203、步骤204。
在本实施例的一些可选的实现方式中,事务信息还包括提交顺序,事务信息按提交顺序存储;以及查找单元603进一步被配置成:按提交顺序由小到大的顺序遍历目标分片的已提交的事务信息,直到找到已提交的事务信息中的事务标志不存在于其它分片中处于非提交状态的事务信息中时,将此时的提交顺序确定为删除区间的起点;继续按提交顺序由小到大的顺序遍历目标分片的已提交的事务信息,直到找到已提交的事务信息中的事务标志存在于其它分片中处于非提交状态的事务信息中时,将此时的提交顺序确定为删除区间的终点;将删除区间的起点和终点之间对应的事务信息标记为删除。
在本实施例的一些可选的实现方式中,删除单元604进一步被配置成:根据已标记为删除的已提交的事务信息确定事务信息的连续可删除区间;根据连续可删除区间对事务信息进行批量删除。
在本实施例的一些可选的实现方式中,已提交的事务信息的存储采用以提交顺序为键的红黑树,存储的内容为提交顺序与事务标志的映射关系。
在本实施例的一些可选的实现方式中,若分布式数据库采用二阶段提交协议,则非提交状态为准备状态,若分布式数据库采用三阶段提交协议,则非提交状态为询问状态或预提交状态。
在本实施例的一些可选的实现方式中,装置600还包括遍历单元(附图中未示出),被配置成遍历分布式数据库中每个分片依次作为目标分片执行步骤201-204或步骤401-406。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图7所示,是根据本申请实施例的用于清理已提交的事务信息的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图7所示,该电子设备包括:一个或多个处理器701、存储器702,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器701为例。
存储器702即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的用于清理已提交的事务信息的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的用于清理已提交的事务信息的方法。
存储器702作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的用于清理已提交的事务信息的方法对应的程序指令/模块(例如,附图6所示的第一获取单元601、第二获取单元602、查找单元603和删除单元604)。处理器701通过运行存储在存储器702中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的用于清理已提交的事务信息的方法。
存储器702可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据用于清理已提交的事务信息的电子设备的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器702可选包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至用于清理已提交的事务信息的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
用于清理已提交的事务信息的方法的电子设备还可以包括:输入装置703和输出装置704。处理器701、存储器702、输入装置703和输出装置704可以通过总线或者其他方式连接,图7中以通过总线连接为例。
输入装置703可接收输入的数字或字符信息,以及产生与用于清理已提交的事务信息的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置704可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,能够有效删除内存信息,避免内存随运行时间增长而过快增大;提高删除效率,避免数据库后端花费大量时间清理信息,造成性能折损而产生较大波动。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (14)

1.一种用于清理已提交的事务信息的方法,包括:
获取目标分片的已提交的事务信息集合,其中,事务信息包括事务标志;
获取分布式数据库中除所述目标分片之外的其它分片中处于非提交状态的事务信息集合;
对于所述目标分片的每个已提交的事务信息,若该已提交的事务信息中的事务标志不存在于其它分片中处于非提交状态的事务信息中,则将该已提交的事务信息标记为删除;
删除所述目标分片中标记为删除的已提交的事务信息。
2.根据权利要求1所述的方法,其中,事务信息还包括提交顺序,事务信息按提交顺序存储;以及
所述对于所述目标分片的每个已提交的事务信息,若该已提交的事务信息中的事务标志不存在于其它分片中处于非提交状态的事务信息中,则将该已提交的事务信息标记为删除,包括:
按提交顺序由小到大的顺序遍历所述目标分片的已提交的事务信息,直到找到已提交的事务信息中的事务标志不存在于其它分片中处于非提交状态的事务信息中时,将此时的提交顺序确定为删除区间的起点;
继续按提交顺序由小到大的顺序遍历所述目标分片的已提交的事务信息,直到找到已提交的事务信息中的事务标志存在于其它分片中处于非提交状态的事务信息中时,将此时的提交顺序确定为删除区间的终点;
将删除区间的起点和终点之间对应的事务信息标记为删除。
3.根据权利要求1所述的方法,其中,所述删除所述目标分片中标记为删除的已提交的事务信息,包括:
根据已标记为删除的已提交的事务信息确定事务信息的连续可删除区间;
根据连续可删除区间对事务信息进行批量删除。
4.根据权利要求2所述的方法,其中,已提交的事务信息的存储采用以提交顺序为键的红黑树,存储的内容为提交顺序与事务标志的映射关系。
5.根据权利要求1所述的方法,其中,若分布式数据库采用二阶段提交协议,则非提交状态为准备状态,若分布式数据库采用三阶段提交协议,则非提交状态为询问状态或预提交状态。
6.根据权利要求1-5中任一项所述的方法,其中,所述方法包括:
遍历分布式数据库中每个分片依次作为目标分片执行权利要求1-5中任一项所述的方法。
7.一种用于清理已提交的事务信息的装置,包括:
第一获取单元,被配置成获取目标分片的已提交的事务信息集合,其中,事务信息包括事务标志;
第二获取单元,被配置成获取分布式数据库中除所述目标分片之外的其它分片中处于非提交状态的事务信息集合;
查找单元,被配置成对于所述目标分片的每个已提交的事务信息,若该已提交的事务信息中的事务标志不存在于其它分片中处于非提交状态的事务信息中,则将该已提交的事务信息标记为删除;
删除单元,被配置成删除所述目标分片中标记为删除的已提交的事务信息。
8.根据权利要求7所述的装置,其中,事务信息还包括提交顺序,事务信息按提交顺序存储;以及
所述查找单元进一步被配置成:
按提交顺序由小到大的顺序遍历所述目标分片的已提交的事务信息,直到找到已提交的事务信息中的事务标志不存在于其它分片中处于非提交状态的事务信息中时,将此时的提交顺序确定为删除区间的起点;
继续按提交顺序由小到大的顺序遍历所述目标分片的已提交的事务信息,直到找到已提交的事务信息中的事务标志存在于其它分片中处于非提交状态的事务信息中时,将此时的提交顺序确定为删除区间的终点;
将删除区间的起点和终点之间对应的事务信息标记为删除。
9.根据权利要求7所述的装置,其中,所述删除单元进一步被配置成:
根据已标记为删除的已提交的事务信息确定事务信息的连续可删除区间;
根据连续可删除区间对事务信息进行批量删除。
10.根据权利要求8所述的装置,其中,已提交的事务信息的存储采用以提交顺序为键的红黑树,存储的内容为提交顺序与事务标志的映射关系。
11.根据权利要求7所述的装置,其中,若分布式数据库采用二阶段提交协议,则非提交状态为准备状态,若分布式数据库采用三阶段提交协议,则非提交状态为询问状态或预提交状态。
12.根据权利要求7-11中任一项所述的装置,其中,所述装置还包括:
遍历单元,被配置成遍历分布式数据库中每个分片依次作为目标分片执行权利要求1-5中任一项所述的方法。
13. 一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的方法。
CN202010893911.7A 2020-08-31 2020-08-31 用于清理已提交的事务信息的方法和装置 Active CN112035497B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010893911.7A CN112035497B (zh) 2020-08-31 2020-08-31 用于清理已提交的事务信息的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010893911.7A CN112035497B (zh) 2020-08-31 2020-08-31 用于清理已提交的事务信息的方法和装置

Publications (2)

Publication Number Publication Date
CN112035497A CN112035497A (zh) 2020-12-04
CN112035497B true CN112035497B (zh) 2023-08-04

Family

ID=73587419

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010893911.7A Active CN112035497B (zh) 2020-08-31 2020-08-31 用于清理已提交的事务信息的方法和装置

Country Status (1)

Country Link
CN (1) CN112035497B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR8901640A (pt) * 1988-04-08 1989-11-21 Ibm Metodo para repeticao de transacao,metodo e sistema para usar no armazenamento,manutencao e acesso de campos de bancos de dados,metodo de transferencia,metodo para recuperar um banco de dados,metodo para armazenar campos longos e metodo para o gerenciamento de campos longos
CA2375376A1 (en) * 2001-03-16 2002-09-16 Iti, Inc. Collision avoidance in bidirectional database replication
CN103473318A (zh) * 2013-09-12 2013-12-25 中国科学院软件研究所 一种面向内存数据网格的分布式事务保障方法
WO2018157602A1 (zh) * 2017-02-28 2018-09-07 华为技术有限公司 一种同步活动事务表的方法及装置
CN110673932A (zh) * 2014-06-26 2020-01-10 亚马逊科技公司 具有多项目事务支持的多数据库日志
CN110808839A (zh) * 2019-10-30 2020-02-18 百度在线网络技术(北京)有限公司 一种区块链异常数据的处理方法、装置、设备和介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785696B2 (en) * 2001-06-01 2004-08-31 Hewlett-Packard Development Company, L.P. System and method for replication of distributed databases that span multiple primary nodes
US10268502B2 (en) * 2017-06-29 2019-04-23 Intel Corporation Methods and apparatus to perform atomic transactions in nonvolatile memory under hardware transactional memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR8901640A (pt) * 1988-04-08 1989-11-21 Ibm Metodo para repeticao de transacao,metodo e sistema para usar no armazenamento,manutencao e acesso de campos de bancos de dados,metodo de transferencia,metodo para recuperar um banco de dados,metodo para armazenar campos longos e metodo para o gerenciamento de campos longos
CA2375376A1 (en) * 2001-03-16 2002-09-16 Iti, Inc. Collision avoidance in bidirectional database replication
CN103473318A (zh) * 2013-09-12 2013-12-25 中国科学院软件研究所 一种面向内存数据网格的分布式事务保障方法
CN110673932A (zh) * 2014-06-26 2020-01-10 亚马逊科技公司 具有多项目事务支持的多数据库日志
WO2018157602A1 (zh) * 2017-02-28 2018-09-07 华为技术有限公司 一种同步活动事务表的方法及装置
CN110808839A (zh) * 2019-10-30 2020-02-18 百度在线网络技术(北京)有限公司 一种区块链异常数据的处理方法、装置、设备和介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A logical framework for querying and repairing inconsistent databases;G. Greco等;IEEE Transactions on Knowledge and Data Engineering;第·15卷(第6期);全文 *
一种分布式实时数据库提交协议;刘云生, 覃飙, 李国徽, 杨进才;计算机学报(02);全文 *
移动数据库同步技术研究;卢福子;中国优秀硕士学位论文全文数据库(第3期);全文 *

Also Published As

Publication number Publication date
CN112035497A (zh) 2020-12-04

Similar Documents

Publication Publication Date Title
US10552287B2 (en) Performance metrics for diagnosing causes of poor performing virtual machines
CN111241108B (zh) 基于键值对kv系统的索引方法、装置、电子设备和介质
CN111177476B (zh) 数据查询方法、装置、电子设备及可读存储介质
US11210277B2 (en) Distributing and processing streams over one or more networks for on-the-fly schema evolution
CN111767321B (zh) 节点关系网络的确定方法、装置、电子设备和存储介质
CN111488492B (zh) 用于检索图数据库的方法和装置
CN112527474B (zh) 任务处理方法及装置、设备、可读介质、计算机程序产品
EP3825865A2 (en) Method and apparatus for processing data
CN110569969A (zh) 网络模型结构的采样方法、装置以及电子设备
WO2022267368A1 (zh) 数据处理方法及装置,计算设备和介质
CN105917304A (zh) 重复数据删除的装置和方法
EP3869339A1 (en) Data storage method and apparatus for blockchain, device, and medium
CN112380184A (zh) 事务处理方法、装置、电子设备及可读存储介质
CN113868251B (zh) 分布式数据库的全局二级索引方法及其装置
CN112035497B (zh) 用于清理已提交的事务信息的方法和装置
US20200104425A1 (en) Techniques for lossless and lossy large-scale graph summarization
CN111290714B (zh) 数据读取方法和装置
US10379780B2 (en) Statistics management for scale-out storage
CN113641693B (zh) 流式计算系统的数据处理方法及装置、电子设备和介质
CN111782633B (zh) 数据处理方法、装置及电子设备
CN111475572B (zh) 区块生成方法、装置、设备和介质
CN112328807A (zh) 反作弊方法、装置、设备以及存储介质
CN112559547A (zh) 确定多存储对象副本之间一致性的方法及装置
CN111523000A (zh) 用于导入数据的方法、装置、设备以及存储介质
CN111694854B (zh) 一种区域进出监控方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant