用于数据集的可扩展排序的方法和设备技术

技术编号:16308068 阅读:80 留言:0更新日期:2017-09-27 01:58
本发明专利技术的实施例涉及一种用于计算机系统上的数据库中的数据集的可扩展排序的方法和设备。界定跨越所述数据集的多个相连范围。将所述数据集的每个个别数据值分配到其所属于的范围。接着对所述范围中的所述值进行排序。可以通过不同节点并行地执行所述排序。一旦完成所述排序,就将结果存储在相连存储器位置中。这使得所述整个数据集经过排序。

Method and apparatus for scalable sorting of data sets

Embodiments of the present invention relate to a method and apparatus for scalable sorting of data sets in a database on a computer system. Defines a plurality of contiguous ranges across the data set. Each individual data value of the data set is assigned to the range to which it belongs. Next, the values in the range are sorted. The sorting can be performed in parallel by different nodes. Once the sorting is completed, the result is stored in the contiguous memory location. This allows the entire data set to be sorted.

【技术实现步骤摘要】
【国外来华专利技术】用于数据集的可扩展排序的方法和设备相关申请案交叉申请本专利技术要求2014年12月31日递交的专利技术名称为“用于数据集的可扩展排序的方法和设备(MethodandApparatusforScalableSortingofaDataSet)”的美国申请案14/588,033的在先申请优先权,该在先申请的内容以全文引入的方式并入本文本中。
本专利技术的实施例一般涉及对数据进行排序,由此将数据分配到范围,对每个范围进行排序,从而形成整个排序数据集。
技术介绍
数据库是以电子方式存储在基于计算机的存储系统上的有组织的数据集合。使用由计算机软件组成的数据库管理系统来与数据库相互作用。数据库管理系统提供允许输入、存储、处理和检索信息的各种功能。通常对数据库执行的功能之一是排序操作。通常根据一个或多个准则对数据进行排序。例如,这可用于预期购房者根据价格(例如,最低到最高);位置(例如,距特定所需位置最近到最远);使用年限(例如,最新到最旧);大小(例如,最大到最小)等对标价出售的新住宅的数据库进行排序。在过去,已经使用简单排序程序来执行排序操作。例如,MapReduce是用于支持经由分布式处理系统的大量计算节点对存储于文件系统中的大数据集进行可扩展分布式处理的流行软件程序。许多企业依赖MapReduce框架及其开源实现Hadoop的及时分析作为对大量非结构化信息进行高效处理和高级分析的平台选择。基本上,MapReduce包含映射和规约函数。映射函数将输入数据划分成较小项目并且将所述项目分布到工作节点。工作节点处理所述项目并返回应答到主节点。作为规约函数的部分,主节点收集应答并组合它们以提供输出。更确切地说,映射阶段被分成映射任务并且规约阶段被分成规约任务。每个映射任务处理一般存在于分布式文件系统上的输入数据的逻辑拆分。映射任务读取数据,对每个记录应用用户定义的映射函数,并且缓存所得输出。在许多情况下,在将此数据写入到执行映射任务的机器的本地磁盘之前,针对不同规约任务对此数据进行排序和划分。规约阶段由几个阶段构成:随机播放阶段、排序阶段和规约阶段。排序操作通常花费最长时间并且成为数据处理的瓶颈,特别是对于大数据集。考虑到要求进行排序的数据的量不断增加,这会产生问题。即使使用最新技术,利用MapReduce的大型服务器集群也会花费数小时对拍字节规模的数据进行排序。实际上,致力于提高处理能力而增添更多节点会导致收益递减,因为这会导致节点之间的过多数据传送,反过来又成为明显瓶颈。因此,需要对存储于数据库中的大量数据进行排序、检索和更新的更高效且更快速方式。
技术实现思路
公开一种用于对分布式数据库系统中的数据进行排序由此将所述数据选择性地发送到适当节点以进行排序的方法和设备。首先,将数据划分成值的范围。这些值可以是数值,或可以是具有预定顺序的字符(例如,字母),或其组合。所述范围是相连的。出于排序的目的,为分布式数据库系统的节点分配不同的值范围。接着将数据分布到具有所述数据属于的值范围的节点。一旦已经将数据集分配给各个节点,个别节点就对其数据执行排序。接着将节点执行的排序的结果写入到预定位置。因为每个范围内的值都经过排序并且范围是相连的,所以来自每个节点的结果可以写入到预定存储器位置,因此能在无须进行任何其它处理的情况下对整个数据集进行排序。在一个实施例中,将范围存储为排序索引,排序索引可以用于促进后续排序操作。附图说明包含在并且构成本说明书的一部分的附图示出了本专利技术的各种实施例,并且与描述内容一起用于解释本专利技术的原则:图1是在其上可以实践本专利技术的实施例的数据库系统的图。图2是根据本专利技术的实施例的排序缓存处理的流程图。图3是根据本专利技术的实施例的基于排序索引的并行排序及合并操作的流程图。图4是根据本专利技术的实施例的排序索引树中的节点的结构图。具体实施方式现在将详细地给出一些实施例的参考。虽然结合可替代的实施例描述该主题,但应该理解它们不是旨在将请求保护的主题限制于这些实施例。相反,请求保护的主题旨在覆盖可以包括在由附加的权利要求书限定的请求保护的主题的精神和范围内的替代物、修改和等同物。另外,在以下本专利技术的详细描述中,阐述了许多特定细节以便提供对请求保护主题的透彻理解。然而,所属领域的技术人员将认识到,可以在没有这些具体细节的情况下实践实施例。在其它实例中没有详细描述众所周知的方法、流程、部件和电路,以免对本请求保护的主题的各方面和特征造成不必要地模糊。该具体实施方式的一些部分按照程序、步骤、逻辑块、处理、以及对计算机存储器中的数据位的操作的其它符号表示来呈现。这些描述和表示是数据处理领域技术人员向该领域其他技术人员有效传达工作实质内容使用的方法。将程序、计算机执行的步骤、逻辑块、过程等一般设想为首尾一致的步骤或指令序列,以产生期望的结果。这些步骤需要物理量的物理操控。在本专利技术的一个实施例中,对数据集执行排序操作。本专利技术可以处理任何大小的数据集。将数据集划分成对应于处理待排序的数据的节点数量的多个范围。所述范围是相连的、不重叠的,并且它们覆盖数据中存储的值的整个集合。这些值可以是数值,或可以是具有预定顺序的字符(例如,字母),或其组合。出于排序的目的,为分布式数据库系统的节点分配值的不同范围。一般来说,选择设置两个范围之间的界限的值。接着将数据分布到具有所述数据正好属于的值范围的特定节点。一旦已经将数据集分配给各个节点,个别节点就对其自身的数据执行排序。接着将节点执行的排序的结果写入到预定位置。这自动地形成待排序的整个数据集而无须执行任何额外处理步骤。在一个实施例中,将范围存储为排序索引,排序索引可以用于促进后续排序操作。不必针对每一个排序操作再次计算它们,由此节省可贵的处理能力和时间。这些排序索引在数据集发生改变(例如,增添或删除数据)时更新。现在描述实例以帮助理解本专利技术的一个实施例。在此实例中,出于清楚且简单说明本专利技术起见给出小数据集。在实际应用中,数据集相当大且广泛。假设任务是对以下数值的数据集从最小到最大进行排序:1、3、4、2、6和5。首先,选择分隔两个范围的值。在此实例中,选择值“3”。任何值3或更小的值属于第一范围,而大于3的任何值属于第二范围。换句话说,第一范围是1到3,且第二范围是4到6。一旦确立范围,排序处理就将个别数据值分配到其适当范围中。在此实例中,将值1分配到第一范围,因为其属于1到3之间。将下一个值3也分配到第一范围,因为其属于1到3之间。第三个值是4。将其分配到第二范围,因为其属于4到6之间。将第四个值2分配到第一范围。最后两个值6和5属于第二范围。因此,第一分区含有值1、3和2。第二分区含有值4、6和5。对这些分区中的每个分区执行排序操作。可以并行地(即,通过两个不同节点同时地)对这些较小分区执行排序操作。更确切地说,一个节点对分配到第一分区的值进行排序。另一个节点对分配到第二分区的值进行排序。在此实例中,一个节点对值1、3和2进行排序;另一个节点对值4、6和5进行排序。在完成排序操作后,第一分区含有值1、2和3,且第二分区含有值4、5和6。接着将这两个分区直接写入到相连存储器位置而无须执行任何后续操作。换句话说,将第一分区写入到存储器位置,且将第二分区写入到后续相邻的存储器位置。在实例中,通过本文档来自技高网
...
用于数据集的可扩展排序的方法和设备

【技术保护点】
一种用于对存储于计算机系统上的数据库中的数据集进行排序的方法,其特征在于,包括:接收对存储于所述数据库中的所述数据集进行排序的数据处理请求;界定用于存储对应于所述数据集的值的多个分区;确定针对所述多个分区的值的范围;根据对应于所述多个分区的所述值的范围将所述数据集的多个值分配到所述多个分区;对所述多个分区中的所述多个值进行排序;以及将排序的分区值写入到指定存储器位置,其中所述整个数据集经过排序。

【技术特征摘要】
【国外来华专利技术】2014.12.31 US 14/588,0331.一种用于对存储于计算机系统上的数据库中的数据集进行排序的方法,其特征在于,包括:接收对存储于所述数据库中的所述数据集进行排序的数据处理请求;界定用于存储对应于所述数据集的值的多个分区;确定针对所述多个分区的值的范围;根据对应于所述多个分区的所述值的范围将所述数据集的多个值分配到所述多个分区;对所述多个分区中的所述多个值进行排序;以及将排序的分区值写入到指定存储器位置,其中所述整个数据集经过排序。2.根据权利要求1所述的方法,其特征在于,进一步包括:产生索引,所述索引包括用于将所述多个值分配到所述多个分区以进行后续排序操作的信息。3.根据权利要求2所述的方法,其特征在于,所述索引包括树数据结构。4.根据权利要求2所述的方法,其特征在于,对应于所述索引的所述信息包含当前值、待排序的值的数量、更小值的数量以及更大值的数量。5.根据权利要求4所述的方法,其特征在于,所述索引的所述信息进一步包含指针。6.根据权利要求1所述的方法,其特征在于,进一步包括:当改变、增添或删除所述数据集的部分时修改所述索引。7.根据权利要求1所述的方法,其特征在于,进一步包括:通过使用所述索引在后续排序操作中对所述数据集进行排序。8.根据权利要求1所述的方法,其特征在于,进一步包括:在运行时间根据初始排序结果产生索引;存储所述索引供后续排序操作使用。9.根据权利要求1所述的方法,其特征在于,进一步包括:通过两个或更多个节点并行地对所述分区进行排序。10.一种用于处理数据库的计算机系统,其特征在于,包括:存储器,其用于存储具有数据集的所述数据库;耦合到所述存储器的处理器,其中响应于排序操作请求,产生根据多个相连范围将所述数据集分成多个分区的指令,根据所述范围将所述数据集的多个值分配到所述多个分区,并...

【专利技术属性】
技术研发人员:孙岩诺伯特·埃吉爱德华·郑
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1