分布式数据库系统以及分布和访问数据的方法技术方案

技术编号:20022966 阅读:22 留言:0更新日期:2019-01-06 03:05
一种数据库系统,包括具有数据存储器的多个服务器。所述系统有第一数据库表和第二数据库表。所述第一数据库表的记录根据第一分布列的值在所述服务器中分布。所述服务器可以接收访问请求并且记录表示所述请求的工作负载数据。根据所述工作负载数据,所述服务器可以确定与所述表的所述列相关的性能影响,并且在确定与所述列中的一列相关的性能影响大于与所述第一分布列相关的性能影响时,所述服务器可以根据所述第二列的值在所述多个服务器中重新分布所述记录。

【技术实现步骤摘要】
【国外来华专利技术】分布式数据库系统以及分布和访问数据的方法相关申请案交叉申请本专利申请要求于2016年5月4日递交的专利技术名称为“分布式数据库系统以及分布和访问数据的方法”(DISTRIBUTEDDATABASESYSTEMSANDMETHODSOFDISTRIBUTINGANDACCESSINGDATA)的第15/146,007号美国专利申请案的在先申请优先权,该在先申请的全部内容以引用的方式并入本文本中。
以下申请涉及数据库,尤其涉及分布式数据库中的数据分布。
技术介绍
在大型数据库中,可以在连接到多个节点的存储设备中划分数据。这种具有连接到多个节点的存储设备的数据库可以称为分布式数据库。由于访问请求可以由多个机器处理,因此分布式数据库可以提高性能。此外,分布式数据库可以相对容易地进行扩展,并且可以在组件故障的情况下提高容错。另外,分布式数据库可以使用多个相对低成本的服务器和存储设备来构建,这些服务器和存储设备可能比具有同等容量的单个集中式服务器费用更低。例如,可以通过对特定字段或列进行散列、排列或轮询在分布式数据库的节点之间分布数据。给定的分布方案可以允许有效地执行一些访问请求,但是可能会降低其它访问请求的性能。通常,分布方案可以由数据库管理员(databaseadministrator,DBA)设计,以便适配数据库的预期工作负载。例如,数据库管理员可以尝试以能够允许有效地执行公共访问请求的方式分布数据。然而,存储在数据库中的数据以及数据库承担的工作负载可能会随时间而改变。例如,可以将新数据集添加到数据库中,或者可以部署新的应用以访问数据库。这种改变可能会使现有的分布方案效率低下。
技术实现思路
一种示例数据库系统包括:多个服务器,各自具有互连的数据存储器;第一数据库表和第二数据库表,所述第一数据库表具有由多列组成的记录,所述记录根据第一分布列的值在所述多个服务器中分布;所述服务器用于:接收访问所述第一数据库表和第二数据库表中数据的请求,并且记录表示所述请求的工作负载数据;根据所述工作负载数据,确定与所述多列中各列相关的性能影响;以及在确定与所述多列中第二列相关的性能影响大于与所述第一分布列相关的性能影响时,根据所述第二列的值在所述多个服务器中重新分布所述记录。所述服务器可以用于只有当与所述第二列相关的所述性能影响大于与所述第一分布列相关的所述性能影响一个阈值以上才重新分布记录。所述阈值可以基于在所述多个服务器中重新分布表的资源成本。所述阈值可由用户调整。所述数据库系统可以包括包含资源成本数据和与访问所述表中数据的请求相关的频率数据的工作负载日志,其中所述性能影响通过所述成本数据和频率数据得出。所述服务器可以用于将所述第一数据表分成多个分区,并且逐个分区重新分布所述记录。所述服务器可以用于接收访问所述第一表的请求,同时重新分布所述第一表,并且将所述请求指向所述分区之一的缓存副本。所述服务器可以用于维护每个分区的只读副本,同时重新分布该分区的记录。所述数据库系统可以包括用于重新分布所述数据库的表的指令的优先级队列。所述服务器可以用于延迟重新分布记录直到低系统负载的时间段。实施例可以包括上述特征的任意组合。一种在多个服务器中重新分布数据库表的示例方法,包括:接收访问第一数据库表和第二数据库表中数据的请求,其中所述第一数据库表具有由多列组成的记录,所述记录根据第一列的值在多个服务器中分布;向日志写入工作负载数据,所述工作负载数据表示所述请求;根据所述工作负载数据,确定与所述多列中各列相关的性能影响;以及在确定与所述多列中第二列相关的性能影响大于与所述第一分布列相关的性能影响时,根据所述第二列的值在所述多个服务器中重新分布所述记录。所述方法可以包括只有当与所述第二列相关的所述性能影响大于与所述第一分布列相关的所述性能影响一个阈值以上才重新分布所述记录。所述阈值可以基于在所述多个服务器中重新分布表的资源成本。所述方法可以包括接收用户输入,以调整所述阈值。所述方法可以包括向工作负载日志写入工作负载数据,其中所述工作负载数据包括资源成本数据和与数据访问请求相关的频率数据。所述方法可以包括从所述成本数据和频率数据得出所述性能影响数据。所述方法可以包括将所述第一数据表分成多个分区,并且逐个分区重新分布所述记录。所述方法可以包括接收访问所述第一表的请求,同时重新分布所述第一表,并且将所述请求指向所述分区之一的缓存副本。所述方法可以包括维护每个分区的只读副本,同时重新分布该分区的记录。所述方法可以包括向优先级队列写入重新分布指令。实施例可以包括上述特征的任意组合。本专利技术的其它方面将从详细描述和附图中显而易见。附图说明附图中描绘了以下示例实施例:图1为一种数据库系统和客户端计算设备的方框图;图2为图1的数据库系统的服务器的方框图;图3为图2的服务器的软件的图;图4为图3的软件的组件的图;图5A为图1的数据库系统的数据库和数据库表的示意图;图5B为表示图1的数据库系统中数据分布的方框图;图6为图1的数据库系统的工作负载日志的示意图;图7为图4的软件的组件的图;图8为数据库表的分区的图;图9为更新图1的数据库系统中数据分布的过程的流程图;图10为重新分布数据库表的过程的流程图;图11为在重新分布过程中访问数据的过程的流程图;图12为在重新分布过程中访问数据的另一过程的流程图。具体实施方式图1描绘了一种示例数据库系统100。数据库系统100包括多个服务器102,各自具有互连的数据存储器104。服务器102可以通过网络106互连,其中网络106可以是包括一个或多个有线或无线接入点的IPv4、IPv6、X.25、IPX兼容或类似网络。网络106可以是局域网(local-areanetwork,LAN)或者诸如互联网的广域网(wide-areanetwork,WAN),并且可以与GSM、GPRS、3G、4G、LTE网络等其它通信网络连接。每个服务器102可以在其互连的数据存储器104中托管数据库数据。如图所示,数据库系统100包括三个服务器102-1、102-2、102-3(单个或全部都示为服务器102),各自具有各自的数据存储器104-1、104-2、104-3(单个或全部都示为数据存储器104)。但是,在其它实施例中,可能存在更多或更少的服务器102和数据存储器104。如下文将进一步详细描述的,服务器102-1、102-2、102-3以及相关的存储器104-1、104-2、104-3中的每一个都可以形成数据库系统100的节点,服务器102-1、102-2、102-3及其相关的存储器104-1、104-2、104-3可以共同托管一个数据库,在每个节点存储数据库的一部分。服务器102-1、102-2、102-3可以是物理上分开的机器,可以彼此远离。或者,服务器102-1、102-2、102-3可以是在单个机器上运行的单独的服务器实例。例如,服务器102-1、102-2、102-3可以是虚拟机,或者可以在单独的驱动器或分区上运行。数据库系统100可以由一个或多个客户端计算设备110访问。客户端计算设备110可以直接连接到网络106,或者可以通过另一个网络112连接到网络106,其中网络112可以是LAN或者诸如互联网的WAN。客户端计算设备1本文档来自技高网
...

【技术保护点】
1.一种数据库系统,其特征在于,包括:多个服务器,各自具有互连的数据存储器;第一数据库表和第二数据库表,所述第一数据库表具有由多列组成的记录,所述记录根据第一分布列的值在所述多个服务器中分布;所述服务器用于:接收访问所述第一数据库表和第二数据库表中数据的请求,并且记录表示所述请求的工作负载数据;根据所述工作负载数据,确定与所述多列中各列相关的性能影响;以及在确定与所述多列中第二列相关的性能影响大于与所述第一分布列相关的性能影响时,根据所述第二列的值在所述多个服务器中重新分布所述记录。

【技术特征摘要】
【国外来华专利技术】2016.05.04 US 15/146,0071.一种数据库系统,其特征在于,包括:多个服务器,各自具有互连的数据存储器;第一数据库表和第二数据库表,所述第一数据库表具有由多列组成的记录,所述记录根据第一分布列的值在所述多个服务器中分布;所述服务器用于:接收访问所述第一数据库表和第二数据库表中数据的请求,并且记录表示所述请求的工作负载数据;根据所述工作负载数据,确定与所述多列中各列相关的性能影响;以及在确定与所述多列中第二列相关的性能影响大于与所述第一分布列相关的性能影响时,根据所述第二列的值在所述多个服务器中重新分布所述记录。2.根据权利要求1所述的数据库系统,其特征在于,所述服务器用于只有当与所述第二列相关的所述性能影响大于与所述第一分布列相关的所述性能影响一个阈值以上才重新分布所述记录。3.根据权利要求2所述的数据库系统,其特征在于,所述阈值基于在所述多个服务器中重新分布表的资源成本。4.根据权利要求2所述的数据库系统,其特征在于,所述阈值可由用户调整。5.根据权利要求1所述的数据库系统,其特征在于,包含资源成本数据和与访问所述表中数据的请求相关的访问数据频率的工作负载日志,其中所述性能影响通过所述成本数据和访问数据频率得出。6.根据权利要求1所述的数据库系统,其特征在于,所述服务器用于将所述第一数据表分成多个分区并且逐个分区重新分布所述记录。7.根据权利要求5所述的数据库系统,其特征在于,所述服务器用于接收访问所述第一表的请求,同时重新分布所述第一表,并且将所述请求指向所述分区之一的缓存副本。8.根据权利要求4所述的数据库系统,其特征在于,所述服务器用于维护每个分区的只读副本,同时重新分布该分区的记录。9.根据权利要求1所述的数据库系统,其特征在于,包括用于重新分布所述数据库的表的指令...

【专利技术属性】
技术研发人员:陈元熙罗宾·格罗斯曼
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1