数据库设备的制造方法_4

文档序号:9326877阅读:来源:国知局
编号和原始价格编号以及更新前列表价格列,线程执行填写相对应的新值编号的处理。换言之:通过将更新数据的快速结构与现有表列数据的快速结构合并,线程获取合并结果的操作列编号和原始价格编号;而且,线程从表列数据存储区域352中获取更新前列表价格列;然后,基于合并结果的操作列编号和原始价格编号和更新前的列表价格列,线程填写在表列数据存储区域352中保留的相对应新值编号区域。此处,新值编号对应于合并结果的部分值。
[0124]关于迄今为止的操作,线程可以执行处理,而不取决于其他线程的处理。换言之,迄今为止该处理是线程安全的。
[0125]接下来,线程基于组值列表编号表计算调整值,并且将计算的调整值写入值编号调整值表(S105)。然后,线程通过使用计算的调整值,转换在步骤S104填写的新值编号(S106)。换言之,线程将对应于部分值的新值编号转换成对应于最终新值列表的新值编号。
[0126]这是线程的操作。然后,通过由执行并行处理的所有线程执行上述处理,所有新值编号被写入表列数据存储区域352。此外,在完成各个线程的处理之后,通过以纵向顺序连接由各个线程产生的部分值列表,能够产生新的值列表。随后,更新数据的反应结束。
[0127]因此,在本示例性实施例中的列存储数据库管理系统3包括更新管理器334和更新部分区域3511。利用这种配置,列存储数据库管理系统3可以响应于数据库客户端2的更新模式启动指令,启动更新模式。然后,列存储数据库管理系统3可以将在更新模式期间获取的更新数据存储到更新部分区域3511中。此外,列存储数据库管理系统3可以响应于数据库客户端2的更新模式结束指令而结束更新模式。然后,列存储数据库管理系统3可以在某个时候处理在更新部分区域3511中存储的更新数据。换言之,列存储数据库管理系统3可以在某个时候将在更新模式期间获取的更新数据合并。结果,在其中大量更新数据在隔夜批处理中进入等的情形下,能够防止因为每次更新数据进入时执行合并而产生的低效率处理。
[0128]此外,在本示例性实施例中的列存储数据库管理系统3具有数据处理器331,其包括多个CPU核、分配条件估计部件332、数据分配器333以及更新部分区域3511。利用这种配置,更新数据分配器333可以基于分配条件估计部件332的估计结果,将在更新模式期间获取的更新数据分配给更新部分区域3511。换言之,根据更新数据的元素值的分配条件,更新素具分配器333分配更新数据,以便各个CPU核的更新数据的数目变得一致。结果,数据处理器331的CPU核可以基于在更新部分区域3511中存储的更新数据,执行高度独立的更新。结果,CPU核可以继续处理,而不需等待其他CPU核的处理,并且可以执行更新算法处理,同时尽可能保持线程安全。
[0129]此处,将示意性的描述根据本发明的在列存储数据库中执行的更新。参考图17,关于本发明的列存储数据库首先将更新数据按照数据的数目划分,以便按照到达顺序执行并行处理。然后,列存储数据库使得每个线程将划分的更新数据转换成快速结构,并且产生按照更新数据排序的快速结构。然后,列存储数据库将由各个线程产生的快速结构合并,并且完成关于所有更新数据的向快速结构的转换。在该处理中,列存储数据库需要等待直到各个线程完成。换言之,该处理不是线程安全的。通过将更新数据的快速结构与更新前数据的快速结构合并,列的更新完成。该合并处理进一步导致等待。
[0130]因此,关于本发明的列存储数据库导致多次等待其他线程的处理完成,并且显而易见的是,多个CPU核不能在总体上被有效利用。另一方面,利用上述配置,本发明使得能够更多使用多个核。
[0131]本发明对于从多个数据库产生数据集市是尤其有利的,或者具体来说,集体执行更新,诸如,在数据仓库等领域中所使用的列存储数据库中通过隔夜批处理替换大量数据。然而,毋庸赘述,本发明的实现方式不限于上述情形。本发明可以被是配成一般列存储数据库。
[0132]此外,在本示例性实施例中,列存储数据库管理系统3响应于数据库客户端2的指令启动并结束更新模式。然而,本发明的实现方式不限于上述情形。列存储数据库管理系统3可以被配置成,例如,通过引用未在附图中示出的时钟部件,在预定启动时间启动更新模式,并且也在预定结束时间结束更新模式。
[0133]此外,在本示例性实施例中,数据分配器333基于由分配条件估计部件332所估计的分配条件,分配更新数据。然而,本发明的实现方式不限于上述情形。例如,数据分配器333可以被配置成基于预定分配规则分配更新数据。此外,数据分配器333可以被配置成基于第一更新数据的数据分配,分配首先获取的更新数据,并且每次获取更新数据时,修正分配规则。因此,数据分配器333可以被配置成,基于除了上文所解释的规则以外的规则,执行数据分配。
[0134][第二示例性实施例]
[0135]接下来,将参考附图描述本发明的第二示例性实施例。在第二示例性实施例中,将描述数据分配器分配基于预定分配规则,更新数据的情形。
[0136]参考图18,在本示例性实施例中的数据库系统4具有数据库客户端2和列存储数据库管理系统5。而且,列存储数据库管理系统5具有查询分析器31、执行计划部件32、查询执行部件33、模式管理数据存储区域51以及用户数据存储区域35。而且,模式管理数据存储区域51具有表定义区域341、表列数据统计信息区域342以及更新数据分配范围定义区域511。此外,用户数据存储区域35具有多个更新部分区域3511的临时区域351以及表列数据存储区域352。与第一示例性实施例中相同的组件将以相同参考符号表示。
[0137]因此,本示例性实施例的数据库系统4不同于第一示例性实施例,因为列存储数据库管理系统5具有更新数据分配范围定义区域511。而且,列存储数据库管理系统5具有与第一示例性实施例相同的配置,除了更新数据分配范围定义区域511之外。换言之,查询执行部件33也具有数据处理器331、分配条件估计部件332、数据分配器333和更新管理器334的功能。因此,下文将描述作为本示例性实施例的组件的更新数据分配范围定义区域 511。
[0138]更新数据分配范围定义区域511存储关于特定列的被划分用于各个线程的数据范围。换言之,更新数据分配范围定义区域511存储关于特定列的分配规则。在分配特定列的更新数据的情形下,数据分配器333基于在更新数据分配范围定义区域511中存储的分配规则,分配更新数据。
[0139]例如,关于图4中所示的表,在产品表的销售结束日期列中的绝大多数值是空。换言之,在图4中所示的产品表的销售结束日期列代表了绝大多数产品仍在销售。在这种情形下,预期随后应写入的绝大多数值是比当前更晚的时间。另一方面,分配条件估计部件332从当前值“空”、“2013-2-15”、“2013-6-15”、“2013-8-20”估计更新数据的分配条件。因此,非常可能的是,由分配条件估计部件332估计的更新数据的分配条件非常不同于更新数据的实际分配条件。换言之,在这种情形下,预期所有更新数据集中到一个线程,结果,更新性能更加劣化。
[0140]因此,关于具有这种属性的列,对于四个范围“从更新日期至一个月后”、“从一个月后至两个月后”、“从两个月后至六个月后”和“从那时起”的分配先前在更新数据分配范围定义区域511中定义。因此,关于以非常不同于现有数据库存储条件的方式执行的数据更新的列,更新数据分配范围定义区域511的使用使之能够大大产生处理并行化的效果。
[0141]因此,在示例性实施例中的数据库系统4的列存储数据库管理系统5包括更新数据分配范围定义区域511。利用这种配置,在其中非常不同于现有数据库存储条件的方式执行的数据更新的情形下,数据分配器333可以基于在更新数据分配范围定义区域511中存储的分配规则,分配更新数据。结果,使得各个线程的更新变成一致成为可能,并且能够大大产生处理并行化的效果。
[0142][第三示例性实施例]
[0143]接下来,将参考附图,描述本发明的第三示例性实施例。在第三示例性实施例中,将描述使得多个数据处理器以并行方式执行处理的数据库设备6的配置的概述。
[0144]参考图19,在本示例性实施例中的数据库设备6具有数据处理器61、数据分配器62以及数据存储部63。
[0145]数据处理器61具有执行将划分成列形式的表列数据排序的处理的功能。如后文所述,数据处理器61从数据分配器62获取表列数据。然后,数据处理器61根据在表列数据的各个记录中包含的上述元素值,执行排序处理。在本示例性实施例中的数据库设备6具有多个数据处理器61。
[0146]数据分配器62具有根据在表列数据的各个记录中包含的元素值将获取的表列数据的记录分配到数据处理器61的功能。数据分配器62从例如外部设备或外部网络获取表列数据。然后,数据分配器62根据在表列数据的各个记录中包含的元素值,将获取的表列数据分配至数据处理器61。
[0147]数据存储部63是诸如存储器或硬盘的存储设备。数据存储部63从每个数据处理器61获取划分成列形式并且接受上述处理的数据。然后,数据存储部63连接并存储由各个数据处理器执行的处理结果。
[0148]因此,在本示例性实施例中的数据库设备6具有数据处理器61、数据分配器62以及数据存储部63。利用这种配置,数据分配器62根据在表列数据的各个记录中包含的元素值,将表列数据的记录分配至数据处理器61。数据处理器61执行并行处理,然后,通过数据存储部63连接并行处理的结果。因此,每个数据处理器61可以通过使用根据在表列数据的各个记录中包含的元素值分配的数据,可以执行处理。换言之,根据在表列数据的各个记录中包含的元素值,数据可以被分配到各个数据处理器61,然后,数据处理器可以分别执行高度独立的处理。随后,数据处理器61可以继续处理而不等待其他数据处理器61的处理,并且可以执行数据处理,同时尽可能保持线程安全。
[0149]通过将给定程序安装到信息存储设备中,可以实现上述数据库设备6。具体而言,作为本发明另一方面的程序是包含指令的程序,指令用于使得信息处理设备实现:多个数据处理器,其每个执行将划分成列形式的表列数据排序的处理;数据分配器,其根据在表列数据的各个记录中包含的元素值将获取的表列数据的记录分配到数据处理器;以及数据存储部,其将由各个数据处理器所执行的处理结果连接并存储,其中,多个数据处理器根据在表列数据的各个记录中包含的元素值执行排序处理。
[0150]此外,通过上述数据库设备6的操作执行的信息处理方法包括:根据在表列数据的各个记录中包含的元素值,将获取的表列数据的记录分配到多个数据处理器;导致数据处理器每个执行将划分成列形式的表列数据排序的处理;并且将由各个数据处理器执行的处理结果连接并存储。
[0151]具有上述配置的程序和信息处理方法具有与数据库设备6相同的动作,因此,也能实现本发明的上述目的。
[0152][第四示例性实施例]
[0153]接下来,将参考附图,描述本发明的第四示例性实施例。在第四示例性实施例中,将描述数据库系统7的配置,数据库系统7包括数据库设备9和客户端设备8,数据库设备9导致多个数据处理器并行执行处理。
[0154]参考图20,在本示例性实施例中的数据库系统7具有客户端设备8和数据库设备9。而
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1