用于在数据库中提早移除墓碑记录的系统和方法技术方案

技术编号:28302932 阅读:13 留言:0更新日期:2021-04-30 16:33
一种提早删除墓碑的方法,包括:在所述存储系统中的第一记录中设置初始标志;在所述存储系统中的第二记录中设置删除标志;选择所述存储系统中的要在合并操作中写入所述存储系统的盘区的一个或多个记录的集,所述一个或多个记录中的每一个记录与所述第一键相关联;以及执行所述合并操作,其中如果确定具有初始标志集的所述第一记录是所述集中的最旧记录并且具有删除标志集的所述第二记录是所述集中的最新记录,在所述合并操作期间不将所述第二记录写入所述盘区。

【技术实现步骤摘要】
【国外来华专利技术】用于在数据库中提早移除墓碑记录的系统和方法
技术介绍
数据结构是提供各种方式来与存储在其中的数据交互的数据组织。数据结构可以被设计用于各种目的,例如,用于促进数据的有效搜索(诸如在二叉搜索树中)、用于允许稀疏数据的有效存储(诸如利用链表)、或用于提供可搜索数据的有效存储(诸如利用B树)。利用键值范例的数据结构接受键值对,并且被配置成对键的查询作出响应。键值数据结构可以包括诸如字典(例如,映射、哈希映射等)这样的结构,其中键被存储在链接(或包含)相应值的列表中。虽然这些结构在存储器中(例如,在不同于存储装置的主存储器或系统状态存储器中)是有用的,但是这些结构在持久存储装置中(例如,盘上)的存储表示可能是低效的。因而,已经引入了一类基于日志的存储结构。一个实施例是日志结构合并树(LSM树)。LSM树数据库可以由一个或多个盘驻留不可变层加上可变存储器驻留存储器层组成。当从LSM树读取时,读取器可以从所有层读取和合并结果。在索引新的记录时,对应的索引条目被添加到可变存储器驻留层。LSM树数据库中的事务被存储为给定记录的不可变版本。已经存储在系统上的记录内容的不可变版本可以保持不变,直到所述内容从系统删除(如果有的话)。即,所接收的事务可以创建记录内容的新版本以存储在系统中,而不是更改记录内容。因此,记录的多个版本(例如,具有不同内容的记录)除了事务标识符(例如,其可以包括事务号)之外可以具有相同的键。附图说明被包括以提供对所公开的主题的进一步理解的附图被并入本说明书中并且构成本说明书的一部分。附图还展示了所公开的主题的实施方案,并且与具体实施方式一起用于解释所公开的主题的实施方案的原理。并未企图示出比基本理解所公开的主题所必须的结构细节更多的细节以及可以实践所述结构细节的各种方式。图1示出了根据所公开的主题的实现方式的示例数据库系统。图2示出了常规墓碑(tombstone)移除过程中的一系列事务。图3示出了根据所公开的主题的实现方式的墓碑移除过程中的一系列事务。图4A示出了根据所公开的主题的实现方式的待解决的示例重复集。图4B示出了根据所公开的主题的实现方式的待解决的另一示例重复集。图5A示出了根据所公开的主题的实现方式的待解决的另一示例重复集。图5B示出了根据所公开的主题的实现方式的待解决的另一示例重复集。图6示出了根据所公开的主题的实现方式的计算机。图7示出了根据所公开的主题的实现方式的网络配置。具体实施方式参考附图描述了公开文本的各个方面或特征,其中,贯穿全文,相同的附图标记用于指示相同的元件。在本说明书中,阐述了许多细节以便提供对公开文本的透彻理解。然而,应理解,可以在没有这些特定细节的情况下或用其他方法、组件、材料等来实践公开文本的某些方面。在其他实例中,以框图形式示出了公知的结构和设备以便于描述公开文本。所公开的方法和技术可以应用于各种不同的数据库结构。所公开的主题不限于单一类型的架构,但出于说明性目的,以下讨论将描述使用具有键范围多租户的日志结构合并(LSM)树的实现方式。LSM树能够描述具有不可变数据版本的数据改变。键范围多租户允许到服务器的动态绑定,并且可以被用来保持每个租户的数据分离。通过将“墓碑”插入存储装置中,可以有效地删除基于LSM树的存储装置中的不可变记录。墓碑是指示与键对应的值已被删除的数据标记。例如,墓碑可以通过在记录中设置指定的标志值来实现。墓碑的目的不仅是标记相关联的值的删除,而且还避免(或推迟)了从树中修剪值的可能昂贵的操作。因此,当在时间排序的搜索期间遇到墓碑时,对应的值被理解为要被删除,即使键值对的过期版本驻留在树内的较旧位置处。由于基于LSM树的存储装置中的物理记录的每个版本是不可变的,所以标记为删除的记录可能在延长数天、数月或数年的任意长的时间段内实际上不被删除。在数据库结构、维护和管理的
内,这种推迟可能是特别成问题的,尤其是在利用具有大量短寿命记录的表(例如,消息队列表)的数据库系统中(其中可能在短时间段内累积大量墓碑)。当大量墓碑累积时,此类表中的键排序的搜索具有挑战性,因为键排序的搜索需要读取给定键范围中的所有墓碑,所以它们都可能被忽略。所公开的实施方案通过改变参数和实现当满足时允许从数据库结构中提早移除墓碑的规则来解决数据库结构中的墓碑累积的技术问题。提早移除提供了许多改进,诸如,减少整个系统中的过时数据的存储、增加系统的速度、以及增加顺序扫描的速度。图1示出了可以通过实施所公开的墓碑移除过程来改进的示例系统100。数据的不可变版本被存储在系统100上的“盘区(extent)”中。“盘区”是指典型地在存储介质内连续的存储区域,其可以用于存储数据。如以下将描述的,“盘区引用”可以用作对存储在物理存储装置中的物理盘区的逻辑引用,并且可以用于将对物理存储装置的访问虚拟化到存储装置中的一个或多个“级别”中,作为数据库维护和优化过程的一部分,数据通过所述一个或多个“级别”随时间迁移。系统100可以在单个计算设备或多个连接的计算设备上运行。例如,系统100可以被实现在膝上型计算机、台式计算机、单个服务器、服务器群集、服务器群、或分布式服务器系统上,或者可以被实现为虚拟计算设备或系统、或物理和虚拟系统的任何合适的组合。为了简单起见,未示出诸如处理器、操作系统和数据库管理系统的其他组件等各个部分。系统100可以是计算系统和网络基础设施的一部分,或者可以通过其他方式连接到包括更大的服务器网络(其可以包括类似于系统100的其他服务器系统)的单独的计算系统和网络基础设施。在一些实现方式中,系统100可以是图6中所示的计算机600、中央组件700和/或第二计算机800,和/或图7中所示的数据库系统1200a-1200d中的一个或多个。系统100包括访问层105、虚拟化层115和物理存储层127。访问层105可以包括一个或多个服务器111、112、113,所述服务器为租户提供平台以在主接口上托管应用和数据库并且充当供用户与系统100交互的主接口。访问层105还可以包括数据库存储引擎110,所述数据库存储引擎可以处理跨服务器111、112、113的负载平衡,并且可以接受和处理来自计算设备(例如,图6中所示的计算机600和/或第二计算机800)的对系统100的查询。例如,数据库存储引擎110可以从租户组织接收查询,并且处理所述查询以向虚拟化层115发送命令。数据库存储引擎110可以是服务器系统100上的用于接收对数据库系统的查询并且取得与所接收的查询相关的数据的硬件和软件的任何合适的组合。虚拟化层115将租户数据虚拟化以向每个租户提供系统服务(诸如,定制数据库),所述系统服务允许租户仅访问租户自己的数据,即使来自多个租户的数据可被存储在系统100中。虚拟化层可以包括盘区引用集120和存储器存储装置125。在一些实现方式中,盘区引用集120和存储器存储装置125可以被存储在图6中所示的中央组件700和/或图7中所示的数据库系统1200a-1本文档来自技高网
...

【技术保护点】
1.一种在合并操作期间从基于日志结构合并(LSM)树的存储系统删除一个或多个记录的计算机实现的方法,包括:/n在所述存储系统中的第一记录中设置初始标志,所述初始标志指示所述第一记录与第一键相关联,所述第一键不与任何其他活动记录相关联;/n在所述存储系统中的第二记录中设置删除标志,所述第二记录与所述第一键相关联,并且所述删除标志指示与所述第一键相关联的值被指定为被从所述存储系统删除;/n选择所述存储系统中的要在合并操作中写入所述存储系统的盘区的一个或多个记录的集,所述一个或多个记录中的每一个记录与所述第一键相关联;以及/n执行所述合并操作,其中至少部分地基于确定具有初始标志集的所述第一记录是所述集中的最旧记录并且具有删除标志集的所述第二记录是所述集中的最新记录,在所述合并操作期间不将所述第二记录写入所述盘区。/n

【技术特征摘要】
【国外来华专利技术】20180924 US 16/139,7171.一种在合并操作期间从基于日志结构合并(LSM)树的存储系统删除一个或多个记录的计算机实现的方法,包括:
在所述存储系统中的第一记录中设置初始标志,所述初始标志指示所述第一记录与第一键相关联,所述第一键不与任何其他活动记录相关联;
在所述存储系统中的第二记录中设置删除标志,所述第二记录与所述第一键相关联,并且所述删除标志指示与所述第一键相关联的值被指定为被从所述存储系统删除;
选择所述存储系统中的要在合并操作中写入所述存储系统的盘区的一个或多个记录的集,所述一个或多个记录中的每一个记录与所述第一键相关联;以及
执行所述合并操作,其中至少部分地基于确定具有初始标志集的所述第一记录是所述集中的最旧记录并且具有删除标志集的所述第二记录是所述集中的最新记录,在所述合并操作期间不将所述第二记录写入所述盘区。


2.根据权利要求1所述的方法,其中所述第一记录和所述第二记录是同一记录,是所述集中的唯一记录。


3.根据权利要求1或2所述的方法,其中所述一个或多个记录的集全部是基于具有在扫描操作开始时的时间点T之后的相关联的事务时间来选择的。


4.根据权利要求1至3中任一项所述的方法,其进一步包括当第三记录是所述集中的最旧记录并且所述合并操作将记录写入所述存储系统中的最低盘区时,在所述第三记录中设置初始标志。


5.根据权利要求1至4中任一项所述的方法,其进一步包括在所述第一记录中设置所述初始标志之前:
在所述存储系统中执行对与所述第一记录具有相同键的活动记录的搜索;以及
当所述搜索没有得到所述存储系统中存储的与所述第一记录具有相同键的记录时,设置所述第一记录的所述初始标志。


6.根据权利要求1至5中任一项所述的方法,其中在所述第一记录被插入所述存储系统中时,发生在所述第一记录中设置所述初始标志的搜索和确定。


7.一种在对目标盘区的合并操作期间管理基于日志结构合并(LSM)树的存储系统中的一个或多个记录的计算机实现的方法,包括:
选择属于时间范围内的一个或多个记录;
从所述一个或多个记录的范围内选择具有相同键的一个或多个记录,以形成以时间顺序组织的重复集;
将最新记录R与所述重复集分离,以从剩余的重复集记录形成修剪集;
通过不将所述修剪集写入所述目标盘区来丢弃所述修剪集;以及
当R是墓碑并且所述修剪集中的最旧记录是初始记录时,通过不将R写入所述目标盘区来丢弃R,
其中墓碑是指示对应于与所述墓碑相关联的键的值已被删除的记录,并且初始记录是包括指定的记录,所述指定指示当所述初始记录被插入时,在所述系统中没有其他活动记录与和所述初始记录相关联的相同键相关联。


8.根据权利要求7所述的方法,其进一步包括当R是墓碑并且所述目标盘区是所述系统中的最低级别盘区时,通过不将R写入所述目标盘区来丢弃R。


9.根据权利要求7或8所述的方法,其进一步包括当所述修剪集为空并且R既是墓碑又是初始记录时,丢弃R。


10.根据权利要求7至9中任一项所述的方法,其进一步包括当R未被丢弃并且R不是墓碑并且所述修剪集中的最旧记录是初始记录时,将R写入所述目标盘区指定为初始记录。


11.根据权利要求7至10中任一项所述的方法,其进一步包括当R未被丢弃并且R是墓碑时,将R写入所述目标盘区指定为墓碑记录。


12.一种存储系统,其包括:
存储计算机可执行指令的至少一个存储器;
存储多个记录的数据库;以及
至少一个处理器...

【专利技术属性】
技术研发人员:T·方哈内尔T·崇J·B·马丁
申请(专利权)人:易享信息技术有限公司
类型:发明
国别省市:美国;US

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

1