分布式数据库系统中的异步垃圾收集技术方案

技术编号:14814231 阅读:152 留言:0更新日期:2017-03-15 04:31
本文描述一种用于分布式数据库系统中的异步垃圾收集的方法。该方法包括:建立用于垃圾收集的一组候选,以及向流水线的每个级传送垃圾收集任务。该方法还包括基于该用于垃圾收集的一组候选,从该流水线的每个级中移除数据。

【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
分布式数据库系统可以包括多个数据库,其中每个数据库的多个部分可以位于各个集群上。每个集群可以包括数个服务器,其中每个服务器可以拥有该数据库的一部分。当该系统的用户访问、修改、删除或重新整理每个数据库中包含的数据时,该系统可以接收对该数据库的更新。分布式数据库系统可以响应于数据库的改变,创建该数据库的不同版本。数据库的不同版本可以称为该数据库的多个代。附图说明在下面的详细描述中并且参照附图描述特定示例,其中:图1是包括处理流水线的系统的框图;图2是使在分布式数据库系统中能够进行异步垃圾收集的计算设备的框图;图3是用于分布式数据库系统中的异步垃圾收集的方法流程图;图4是用于分布式数据库系统中的异步垃圾收集的方法流程图;以及图5是示出使在分布式数据库系统中能够进行垃圾收集的有形非暂时性计算机可读介质的框图。在整个公开和各图中,相同的附图标记用于指相似的组件和特征。100系列的附图标记指最初在图1中出现的特征;200系列的附图标记指最初在图2中出现的特征;以此类推。具体实施方式如上面讨论的,分布式数据库可以在可以由数十个服务器组成的集群上运行。每个服务器可以存储该数据库的全部或一部分。数据库可能是在未考虑共享理念的条件下设计的,使得服务器不维护与分布式数据库系统有关的任何状态信息。在这样的情景下,分布式数据库系统由主控器(Master)协调。数据库的每个版本可以称为一代。一旦准备查询新一代的数据库,老一代就是要进行垃圾收集的候选。在一些情况下,垃圾收集是从分布式数据库系统中删除或移除旧信息。但是,老一代数据库可能由于数据耐久性和安全性原因而不能进行垃圾收集。此外,当有在老一代数据库上运行的进行中的事务时,数据库可能不能进行垃圾收集。本文描述的实施例使在分布式数据库系统中能够进行异步垃圾收集。在实施例中,当各代数据不再贡献系统的数据耐久性或安全性时,选择与垃圾收集有关的候选代。垃圾收集在无共享架构中发生,并且垃圾收集器在整个系统上产生较小的占用空间。因此,在与使用特定垃圾收集器方法相比时,以降低的成本优化了数据耐久性和数据安全性。此外,可以释放存储资源,以产生存储系统更有效使用。主控器可以确定数据库的可以被垃圾收集的特定代,并且主控器还可以协调在集群的每个服务器上运行的垃圾收集器。图1是包括处理流水线102的系统100的框图。处理流水线102包括摄取级104、ID(标识符)重映射级106、分类级108和合并级110。来自各更新源112的数据更新被提供给服务器系统100,以由处理流水线102处理。更新源112的示例包括可以存储组织内的数据的各种机器,其中机器可以包括台式机、笔记本计算机、个人数字助理(PDA)、各种服务器(例如,文件服务器、电子邮件服务器等)或其它类型的设备。尽管图1中示出处理流水线102的特定级,但是注意到,在不同实施例中,可以在处理流水线102中提供可选的级或其它级。流水线的每个级独立于其它级。此外,该流水线的每个级可以在不同的独立的服务器上运行。该流水线中的每个级的动作和任务由被称为主控器的主进程编排。处理流水线102的摄取级104批处理(收集)进入的来自更新源112的数据更新。在服务器系统100中处理和存储的数据可以包括各种元数据、文件、电子邮件、视频对象、音频对象等。更新可以是数据的增加、删除或重新整理。在一些实施例中,进入的更新被批处理成数据结构。在一些情况下,该数据结构是自一致更新(SCU)。SCU是一批更新,其中该批是单个不可分割单元,并且直至该SCU中的所有单独更新都被写至存储器才被认为是持久的。因此,应用SCU的所有更新,或者不应用SCU的任何更新。任何一个SCU中的数据更新与另一SCU中的数据更新隔离。在一些实施例中,未分类的SCU是持久的,这意味着在服务器系统100具有某一错误状况或电源故障时,该SCU的更新不丢失。经批处理的更新被提供给ID重映射级106,ID重映射级106将经批处理的更新的初始临时ID转换成全局ID。实际上,ID重映射级106将第一空间中的ID映射至第二空间中的ID。在一些实施例中,第二空间是提供单个的可搜索的ID空间的全局空间。由摄取级104使用的初始临时ID在处理每个唯一实体(例如,文件名)时被分配给每个唯一实体。使用ID来替代相对大量的进入数据(如文件路径名),这改善了查询和处理时间,并且降低了存储空间的利用。此外,在用多个处理器实现摄取级104的实施例中,由多个处理器中的每个生成的临时ID可以被重映射至全局ID空间。通过这样的方式,摄取级104的处理器不需要与彼此协作来确保唯一ID的生成,使得可以实现更大的并行化。在一些情况下,术语处理器可以指单独的中央处理器单元(CPU)或指计算机节点。经重映射的更新被提供给分类级108,分类级108按照一个或多个关键字来分类经重映射的更新,以创建包含一个或多个可搜索的索引的经分类的一批更新。在一些实施例中,经批处理的更新包括更新表,并且根据一个或多个关键字来对该更新表进行分类以产生一个或多个可搜索的索引。合并级110将单独的经分类的一批更新合并成单个一组权限表114,以进一步改善查询性能。在一些情况下,权限表114指将由服务器系统100存储的数据的库,其中权限表114通常是响应于对数据的查询而搜索的表。在一些实施例中,来自更新源112中一个或多个更新源的多个更新可以共同被批处理成将自动地且一致地应用至在服务器系统100的数据储存器116中存储的权限表114的批(batch)。在一些实施例中,数据储存器116可以存储多个权限表114。更一般地,权限表114被称为数据表。在一些情况下,数据库是数据表的集合。依照一些实施例,处理流水线102的各处理级104、106、108和110是可单独地且独立地扩展的。处理流水线102的每个级可以用对应的一组一个或多个处理器实现,其中“处理器”可以指单独的CPU或指计算机节点。每个级中的并行化可以通过提供多个处理器增强。通过这样的方式,这些级中的每个级的性能可以通过用对应的基础结构实现这些级中的每个级来独立地调整。注意到,除了在每个级中实现并行化之外,每个级还可以实现流水线化,以实施对应的处理操作。对分布式数据库系统的更新可以被实现为不可改变的文件。在一些情况下,数据库的特定一代由权限表和流水线的每个级中的所有更新组成,每个更新与特定的逻辑数据库有关。该特定一代用于在一时间点上的事务。特别地,当事务开始时本文档来自技高网...

【技术保护点】
一种用于分布式数据库系统中的异步垃圾收集的方法,包括:建立用于垃圾收集的一组候选;向流水线的每个级传送垃圾收集任务;以及基于所述用于垃圾收集的一组候选和所述垃圾收集任务,从所述流水线的每个级中移除数据,其中所述垃圾收集任务不阻止所述流水线的任何级执行。

【技术特征摘要】
【国外来华专利技术】1.一种用于分布式数据库系统中的异步垃圾收集的方法,包括:
建立用于垃圾收集的一组候选;
向流水线的每个级传送垃圾收集任务;以及
基于所述用于垃圾收集的一组候选和所述垃圾收集任务,从所述流水线的每个级
中移除数据,其中所述垃圾收集任务不阻止所述流水线的任何级执行。
2.根据权利要求1所述的方法,其中在从流水线的每个级中移除数据之前,从所
述用于垃圾收集的一组候选中移除在活跃事务中使用的候选。
3.根据权利要求1所述的方法,其中向所述流水线的每个级的垃圾收集线程传送
所述垃圾收集任务。
4.根据权利要求1所述的方法,其中针对每个传送的垃圾收集任务获取要移除的
数据的数据库名和路径。
5.根据权利要求1所述的方法,其中由在所述流水线的每个级的多个进程中的每
个中运行的单个线程处理所述垃圾收集任务。
6.根据权利要求1所述的方法,其中所述流水线的每个级不维护所述数据库的任
何状态,并且不确定将移除什么数据。
7.一种用于分布式数据库中的异步垃圾收集的系统:
处理流水线,具有多个处理级,其中每个处理级与其它处理级分离;
存储设备,存储指令,所述存储设备包括处理器可执行代码,该处理器可执行代
码在由每个处理级执行时被配置为:
从主控器接收垃圾收集任务;
向每个处理级中的垃圾收集线程发送所述垃圾收集任务;
基于...

【专利技术属性】
技术研发人员:塞巴斯蒂安·坦德尔
申请(专利权)人:慧与发展有限责任合伙企业
类型:发明
国别省市:美国;US

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

1