用于分片的关系数据库组织制造技术

技术编号:34278218 阅读:64 留言:0更新日期:2022-07-24 17:40
本公开涉及用于分片的关系数据库组织。提供了用于创建、组织和维护分片数据库的技术。能够使用用户定义的分片、系统管理的分片或复合分片来创建分片数据库。分片数据库是用关系数据库技术实现的。所描述的技术提供了对分片数据库中的负载分布、组织、查询处理和模式传播的改进。播的改进。播的改进。

Relational database organization for sharding

【技术实现步骤摘要】
用于分片的关系数据库组织
[0001]本申请是申请日为2016年9月30日、名称为“用于分片的关系数据库组织”、申请号为201680067124.9的专利技术专利申请的分案申请。


[0002]本公开涉及数据库系统。更具体而言,本公开涉及用于分片(sharding)的关系数据库组织。

技术介绍

[0003]存储越来越大量的数据的数据库系统变得越来越普遍。例如,诸如电子商务、移动、社交和软件即服务(SaaS)系统之类的在线事务处理(OLTP)系统通常需要大的数据库存储。OLTP系统的示例应用包括但不限于大型计费系统、票务系统、在线金融服务、媒体公司、在线信息服务和社交媒体公司。考虑到这些数据库系统存储的大量数据,将所有数据存储在单个数据库实例中是不实际的,因为该数据量可以利用大量计算资源,诸如处理器、存储器和存储装置。
[0004]此外,非关系数据库(有时称为NoSQL数据库)不提供关系数据库的完整特征的(fully featured)益处。例如,NoSQL数据库不提供关系数据库的相同模式控制、原子性、一致性、隔离性、持久性或完整特征的结构化查询语言(SQL)。
[0005]本节中描述的方法是可以被追寻的方法,但不一定是以前已经构想或追寻的方法。因此,除非另有说明,否则不应当假设本节中描述的方法中的任何方法仅仅因为被包含在本节中而成为现有技术。

技术实现思路

[0006]根据本公开的一个方面,提供了一种方法,包括:从表的集合中选择一个或多个列作为分区键;建立多个键值集,其中所述多个键值集中的每个键值集包括不属于其它键值集中的任何键值集的所述分区键的值;对于所述表的集合中的每个表,为所述多个键值集中的每个键值集生成分区;创建包括多个分片的分片数据库;其中所述多个分片中的每个分片与所述多个键值集中的不同键值集相关联;对于所述表的集合中的每个表,将所述表的分区分布在所述分片数据库的所述多个分片中;其中,对于每个表,与每个键值集相关联的分区被分布到所述多个分片中的与该键值集相关联的分片;以及存储映射数据,所述映射数据将所述多个键值集中的每个键值集映射到所述多个分片中的与该键值集相关联的分片。
[0007]根据本公开的又一个方面,提供了一种方法,包括:由分片协调器存储多个映射条目;其中所述多个映射条目中的每个映射条目将不同的分片键值集映射到分片数据库的多个分片中的分片;其中所述多个分片中的每个分片包括一个或多个数据库服务器;在所述分片协调器处从客户端应用接收第一查询,其中第一查询包括第一分片键值;响应于接收到第一查询,执行:识别所述多个映射条目中与包括第一分片键值的分片键值集对应的特
定映射条目;使用所述特定映射条目来识别来自所述多个分片中的目标分片;通过使用与包括第一分片键值的分片键值集对应的所述目标分片来生成用于第一查询的第一结果;以及向所述客户端应用发送基于第一结果的对第一查询的响应。
[0008]根据本公开的又一个方面,提供了一种方法,包括:通过以下操作来执行涉及驻留在分片数据库的第一分片和第二分片两者中的数据的第一操作:使客户端应用向第一分片发送第一请求,以使第一分片执行第一操作的涉及第一分片中的数据的第一部分,以及使所述客户端应用向第二分片发送第二请求,以使第二分片执行第一操作的涉及第二分片中的数据的第二部分;通过以下操作来执行涉及驻留在分片数据库的第一分片和第二分片两者中的数据的第二操作:使所述客户端应用向分片协调器发送第三请求;以及响应于第三请求,所述分片协调器使:第一分片执行第二操作的涉及第一分片中的数据的第一部分,以及第二分片执行第二操作的涉及第二分片中的数据的第二部分。
[0009]根据本公开的又一个方面,提供了一种方法,包括:由分片目录维护指示由分片数据库的多个分片中的每个分片使用的模式的模式数据;接收用于修改模式的模式修改指令;响应于接收到所述模式修改指令,自动执行:在所述分片目录处基于所述模式修改指令来更新所述模式数据;以及通过针对所述多个分片中的每个特定分片执行以下操作,使所述多个分片中的所有分片修改模式:创建与特定分片的数据库连接;将所述模式修改指令发送到所述特定分片;以及在所述特定分片上执行所述模式修改指令。
[0010]根据本公开的又一个方面,提供了一种方法,包括:维护包括多个分片的分片数据库;其中所述多个分片被分组成多个分片空间;其中所述多个分片空间中的每个分片空间包括所述多个分片中的至少一个分片;使用一个或多个级别的分区标准,针对表执行一个或多个级别的分区,以产生第一多个分区;从用户接收用户指定的代码;至少部分地基于所述用户指定的代码为所述第一多个分区中的每个分区选择所述多个分片空间中的分片空间;以及基于所述用户指定的代码,将所述第一多个分区中的每个分区分布到为该分区选择的分片空间。
[0011]根据本公开的又一个方面,提供了一个或多个存储指令的非暂态计算机可读介质,所述指令在由一个或多个硬件处理器执行时使得执行本公开的方法。
[0012]根据本公开的又一个方面,提供了一种包括被配置为执行本公开的方法的一个或多个设备的装置。
附图说明
[0013]本专利技术的(一个或多个)示例实施例在附图的图中以示例而非限制的方式示出,在附图中相似的附图标记指代相似的元件,并且其中:
[0014]图1示出了根据一个实施例的未分片数据库和分片数据库的示例。
[0015]图2是根据一个实施例的用于分片数据库的系统的框图。
[0016]图3A和图3B示出了根据一个实施例的表家族(family)的示例。
[0017]图4A和图4B示出了根据一个实施例的重复的表的示例。
[0018]图5示出了根据一个实施例的作为分布式分区形式的分片的示例。
[0019]图6A和图6B示出了根据一个实施例的分片数据库中的块配置的示例。
[0020]图7示出了根据一个实施例的使用一致散列来将一定范围的值指派给块的示例。
[0021]图8示出了根据一个实施例的系统管理的分片的示例。
[0022]图9示出了根据一个实施例的分区到表空间和分片的映射的示例。
[0023]图10示出了根据一个实施例的使用复合分片的分片数据库的示例。
[0024]图11是根据一个实施例的子分区的分片数据库的示例。
[0025]图12A、图12B和图12C示出了根据一个实施例的重新分片的示例。
[0026]图13是根据一个实施例的用于重新分片的过程的流程图。
[0027]图14是根据一个实施例的用于基于代理的查询路由过程的流程图。
[0028]图15A和图15B是根据一个实施例的用于基于代理的查询路由过程的流程图。
[0029]图16是根据一个实施例的查询路由过程的流程图。
[0030]图17是其中可以体现本专利技术的(一个或多个)示例实施例的计算设备的框图。
[0031]图18是用于控制计算设备的操作的基本软件系统的框图。
具体实施方式
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种方法,包括:由分片协调器存储多个映射条目;其中所述多个映射条目中的每个映射条目将不同的分片键值集映射到分片数据库的多个分片中的分片;其中所述多个分片中的至少一个分片被映射到包括非连续分片键值的分片键值集;其中所述多个分片中的每个分片包括一个或多个数据库服务器;在所述分片协调器处从客户端应用接收第一查询,其中第一查询包括第一分片键值;响应于接收到第一查询,执行:识别所述多个映射条目中与包括第一分片键值的分片键值集对应的特定映射条目;使用所述特定映射条目来识别来自所述多个分片中的目标分片;通过使用与包括第一分片键值的分片键值集对应的所述目标分片来生成用于第一查询的第一结果;以及向所述客户端应用发送基于第一结果的对第一查询的响应。2.如权利要求1所述的方法,还包括:由所述分片协调器将所述客户端应用重定向到所述目标分片;以及在所述目标分片处接收第一查询。3.如权利要求2所述的方法,其中向所述客户端应用发送对第一查询的响应由所述目标分片直接执行而不涉及所述分片协调器。4.如权利要求1所述的方法,其中:每个映射条目将分片键值集映射到的分片是所述多个分片中包括与所述分片键值集相关联的块的分片;以及生成用于第一查询的第一结果包括通过使用在所述目标分片处的与包括第一分片键值的所述分片键值集对应的块来生成用于第一查询的第一结果。5.如权利要求4所述的方法,其中所述方法还包括:由所述目标分片将所述多个映射条目的子集发送到所述客户端应用以进行本地高速缓存,其中所述多个映射条目的所述子集将特定的分片键值集映射到所述目标分片。6.如权利要求5所述的方法,还包括:由所述目标分片从客户端应用接收第二查询,其中第二查询包括第二分片键值;其中第二查询响应于在所述客户端应用可用的本地高速缓存中查找所述多个映射条目的所述子集而从所述客户端应用直接发送到了所述目标分片;以及其中第二查询从所述客户端应用直接发送到了所述目标分片,而不涉及所述分片协调器。7.如权利要求6所述的方法,还包括:通过使用在所述目标分片处的与包括第二分片键值的分片键值集对应的块来生成用于第二查询的第二结果;以及向所述客户端应用发送基于第二结果的对第二查询的响应。8.如权利要求4所述的方法,还包括:响应于接收到第一查询,由所述分片协调器协调对于针对所述目标分片的第一查询的处理;以及
其中向所述客户端应用发送基于第一结果的对第一查询的响应由所述分片协调器...

【专利技术属性】
技术研发人员:胡维民M
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:

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

1