CN111367884A - 分片数据库路由方法、系统、设备及存储介质 - Google Patents

分片数据库路由方法、系统、设备及存储介质 Download PDF

Info

Publication number
CN111367884A
CN111367884A CN202010119249.XA CN202010119249A CN111367884A CN 111367884 A CN111367884 A CN 111367884A CN 202010119249 A CN202010119249 A CN 202010119249A CN 111367884 A CN111367884 A CN 111367884A
Authority
CN
China
Prior art keywords
database
fragment
service data
data processing
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010119249.XA
Other languages
English (en)
Inventor
何瑞星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aspire Digital Technologies Shenzhen Co Ltd
Original Assignee
Aspire Digital Technologies Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Aspire Digital Technologies Shenzhen Co Ltd filed Critical Aspire Digital Technologies Shenzhen Co Ltd
Priority to CN202010119249.XA priority Critical patent/CN111367884A/zh
Publication of CN111367884A publication Critical patent/CN111367884A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables

Abstract

本发明公开了一种分片数据库路由方法、系统、设备及存储介质,涉及数据库技术,其中,一种分片数据库路由方法包括:客户端发起包括分片键的业务数据处理请求,分片键用于确定业务数据在分片数据库中的分布;客户端根据分片键,获取分片元映射数据;客户端根据分片元映射数据,获取包括业务数据的目标分片数据库实例;客户端使用目标分片数据库实例,将业务数据处理请求路由到目标分片数据库。本发明的一种分片数据库路由方法,通过将业务数据处理请求直接路由到目标分片数据库,绕开中心数据库,提高了分片数据库的利用率,减轻了中心数据库的负载压力,从而降低了中心数据库的故障概率。

Description

分片数据库路由方法、系统、设备及存储介质
技术领域
本发明涉及数据库技术,尤其是涉及一种分片数据库路由方法、系统、设备及存储介质。
背景技术
在移动互联网时代,随着业务数据的爆发式增长,数据库分片已经成为常见的数据优化技术,即把数据库切分成多个不同的分片数据库(Sharded Database,SDB),从而缓解单一数据库的性能问题。然而,在数据库分片之后,现有技术对业务数据的处理大多要依赖中心数据库,通过中心数据库路由,或者采用路由映射的方式,进行分片数据库的数据扭转与交互,从而增加了中心数据库和数据路由的压力及开销,一旦中心数据库发生故障,就会导致整个业务瘫痪,甚至存在丢失数据的风险。
发明内容
本发明旨在至少在一定程度上解决现有技术中存在的技术问题之一。为此,本发明提出一种分片数据库路由方法,能够提高分片数据库的利用率,减轻中心数据库的负载压力,从而降低中心数据库的故障概率。
本发明还提出一种分片数据库路由系统。
本发明还提出一种分片数据库路由设备。
本发明还提出一种计算机可读存储介质。
第一方面,本发明的一个实施例提供了一种分片数据库路由方法,包括:
客户端发起包括分片键(ShardingKey)的业务数据处理请求,分片键用于确定业务数据在分片数据库中的分布;
客户端根据分片键,获取分片元映射数据;
客户端根据分片元映射数据,获取包括业务数据的目标分片数据库实例;
客户端使用目标分片数据库实例,将业务数据处理请求路由到目标分片数据库。
本发明实施例的一种分片数据库路由方法至少具有如下有益效果:
1.通过将业务数据处理请求直接路由到目标分片数据库,绕开中心数据库,提高了分片数据库的利用率,减轻了中心数据库的负载压力,从而降低了中心数据库的故障概率;
2.业务数据处理请求仅在客户端与目标分片数据库之间进行交互,减少了中心数据库与目标分片数据库之间的数据扭转和交互,减小了业务数据处理请求的路由开销,提高了业务数据的处理效率。
根据本发明的另一些实施例的一种分片数据库路由方法,客户端根据分片键,获取分片元映射数据,包括:
客户端根据分片键的值,或者分片键的哈希值,计算分片元数据,得到分片元映射数据,分片元数据包括分片配置数据和分片元映射数据。
本发明实施例的一种分片数据库路由方法,根据分片规则,利用分片键的值,或者分片键的哈希值,计算分片元数据,得到分片元映射数据,目的是根据分片元映射数据,寻址到目标分片数据库。
根据本发明的另一些实施例的一种分片数据库路由方法,客户端根据分片元映射数据,获取包括业务数据的目标分片数据库实例,包括:
客户端根据分片元映射数据,查询包括分片元映射数据的路由表,获取包括业务数据的目标分片数据库实例。
本发明实施例的一种分片数据库路由方法,通过查询包括分片元映射数据的路由表,能够确定包括业务数据的目标分片数据库的地址。
根据本发明的另一些实施例的一种分片数据库路由方法,客户端使用目标分片数据库实例,将业务数据处理请求路由到目标分片数据库,包括:
客户端创建独立线程,使用目标分片数据库实例,将中心数据库实例上的数据源切换到目标分片数据库实例上,将业务数据处理请求路由到目标分片数据库。
本发明实施例的一种分片数据库路由方法,通过将中心数据库实例上的数据源切换到目标分片数据库实例上,能够实现将业务数据处理请求直接路由到目标分片数据库;而通过创建独立线程,还能减少数据源切换对其他业务数据处理进程的影响。
根据本发明的另一些实施例的一种分片数据库路由方法,目标分片数据库响应业务数据处理请求,完成业务数据处理。
本发明实施例的一种分片数据库路由方法,目标分片数据库接收到业务数据处理请求,对业务数据进行处理,业务数据处理请求并不经过中心数据库,减小了业务数据处理请求的路由开销,提高了业务数据的处理效率。
根据本发明的另一些实施例的一种分片数据库路由方法,客户端销毁独立线程,将数据源切换回中心数据库实例上。
本发明实施例的一种分片数据库路由方法,业务数据处理完成,客户端就销毁独立线程,释放处理上一次业务数据所占用的内存空间,将数据源切换回中心数据库实例上,准备响应下一次的业务数据处理请求。
第二方面,本发明的一个实施例提供了一种分片数据库路由系统,包括:
业务数据请求单元,用于发起包括分片键的业务数据处理请求,分片键用于确定业务数据在分片数据库中的分布;
数据源切换单元,用于根据分片键,获取分片元映射数据;根据分片元映射数据,获取包括业务数据的目标分片数据库实例;使用目标分片数据库实例,将业务数据处理请求路由到目标分片数据库;
业务数据处理单元,用于响应业务数据处理请求,完成业务数据处理。
本发明实施例的一种分片数据库路由系统至少具有如下有益效果:
1.数据源切换单元通过将业务数据处理请求直接路由到目标分片数据库,绕开中心数据库,提高了分片数据库的利用率,减轻了中心数据库的负载压力,从而降低了中心数据库的故障概率;
2.业务数据处理请求仅在客户端与目标分片数据库之间进行交互,减少了中心数据库与目标分片数据库之间的数据扭转和交互,减小了业务数据处理请求的路由开销,提高了业务数据的处理效率。
根据本发明的另一些实施例的一种分片数据库路由系统,还包括独立线程创建单元,用于创建或者销毁独立线程,独立线程创建单元分别连接数据源切换单元和业务数据处理单元。
本发明实施例的一种分片数据库路由系统,独立线程创建单元通过创建独立线程,能够减少数据源切换对其他业务数据处理进程的影响。
第三方面,本发明的一个实施例提供了一种分片数据库路由设备,包括:
至少一个处理器,以及,
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本发明的一些实施例的分片数据库路由方法。
本发明实施例的一种分片数据库路由设备至少具有如下有益效果:
1.通过将业务数据处理请求直接路由到目标分片数据库,绕开中心数据库,提高了分片数据库的利用率,减轻了中心数据库的负载压力,从而降低了中心数据库的故障概率;
2.业务数据处理请求仅在客户端与目标分片数据库之间进行交互,减少了中心数据库与目标分片数据库之间的数据扭转和交互,减小了业务数据处理请求的路由开销,提高了业务数据的处理效率。
第四方面,本发明的一个实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使计算机执行本发明的一些实施例的分片数据库路由方法。
本发明实施例的一种计算机可读存储介质至少具有如下有益效果:
1.通过将业务数据处理请求直接路由到目标分片数据库,绕开中心数据库,提高了分片数据库的利用率,减轻了中心数据库的负载压力,从而降低了中心数据库的故障概率;
2.业务数据处理请求仅在客户端与目标分片数据库之间进行交互,减少了中心数据库与目标分片数据库之间的数据扭转和交互,减小了业务数据处理请求的路由开销,提高了业务数据的处理效率。
附图说明
图1是本发明实施例中一种分片数据库路由方法的一具体实施例的流程示意图;
图2是本发明实施例中一种分片数据库路由方法的另一具体实施例的流程示意图;
图3是本发明实施例中一种分片数据库路由系统的一具体实施例的系统框图;
图4是本发明实施例中一种分片数据库路由系统的另一具体实施例的系统框图。
具体实施方式
以下将结合实施例对本发明的构思及产生的技术效果进行清楚、完整地描述,以充分地理解本发明的目的、特征和效果。显然,所描述的实施例只是本发明的一部分实施例,而不是全部实施例,基于本发明的实施例,本领域的技术人员在不付出创造性劳动的前提下所获得的其他实施例,均属于本发明保护的范围。
在本发明实施例的描述中,如果涉及到“若干”,其含义是一个以上,如果涉及到“第一”、“第二”,应当理解为用于区分技术特征,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。如果某一特征被称为“设置”、“固定”、“连接”、“安装”在另一个特征,它可以直接设置、固定、连接在另一个特征上,也可以间接地设置、固定、连接、安装在另一个特征上。
在本发明实施例中,诸如数据库服务器之类的服务器是集成的软件部件和计算资源(诸如存储器、节点以及节点上的用于执行集成的软件部件的进程)的分配的组合,其中软件和计算资源的组合专用于代表服务器的客户端提供特定类型的功能。数据库服务器支配并促进对特定数据库的访问,从而处理客户端访问数据库的请求。
数据库包括存储在永久存储器机制(诸如硬盘的集合)上的数据和元数据。例如,根据关系和/或对象-关系数据库结构,这些数据和元数据可以逻辑地被存储在数据库中。
分片是一种数据层体系架构,在该数据层体系架构中数据跨独立的数据库实例被水平分区,其中每个独立的数据库实例被称为“分片”。分片的集合一起构成被称为“分片数据库”的单个逻辑数据库。水平分区是一种将单个较大的表分解为较小的、更易于管理的信息子集(称为“分区”)的技术。从逻辑上讲,分片数据库可以是客户端可访问的,就像传统的非分片数据库一样。但是,分片数据库中的表跨分片被水平分区。
未分片数据库是关系数据库并且包括表。表的所有内容都存储在同一未分片数据库中,并且因此使用相同的计算资源,诸如处理器、存储器和盘空间。但是,分片数据库描绘了使用分片技术的替代配置。分片数据库包括若干个分片。分片中的每一个是其自己的数据库实例并且分别包括其自己的表,不需要共享诸如处理器、存储器和/或盘存储装置之类的硬件。分片数据库中的水平分区涉及跨分片拆分数据库表,使得每个分片包含表的行的子集,被称为“分片表”。
从数据库管理的角度来看,分片数据库由可以被共同管理或者单独管理的多个数据库实例组成。但是,从客户端的角度来看,分片数据库在逻辑上看起来像单个数据库。因此,分片数据库中包括的分片的数量以及数据跨这些分片的分布对客户端来说是完全透明的。
分片数据库包括分片目录。分片目录是用于存储分片数据库的配置数据的特殊数据库。可以复制分片目录,以提供改进的可用性和可伸缩性。存储在分片目录中的配置数据可以包括:路由表,该路由表映射哪个分片存储与分片键的给定的值、值范围或值集合对应的数据块;分片拓扑数据,该分片拓扑数据描述分片数据库的整体配置,关于分片的配置信息。因此,对于需要访问特定分片键值的数据的查询,可以使用路由表来查找分片数据库中的哪个分片包含处理查询所需的数据块。
实施例1
参照图1,示出了本发明实施例中一种分片数据库路由方法的一具体实施例的流程示意图。如图1所示,本发明实施例的一种分片数据库路由方法,包括如下具体步骤:
S100.客户端发起包括分片键的业务数据处理请求,分片键用于确定业务数据在分片数据库中的分布。
客户端发起业务数据处理请求,请求包括分片键,分片键确定业务数据在分片数据库中的分布。分片键可以是业务数据的单索引或者混合索引。只有分片的ID字段索引和业务数据的单索引或者混合索引是唯一指向业务数据所在分片的索引。客户端是终端设备上的应用程序,与数据库进行业务数据交互。
S110.客户端根据分片键,获取分片元映射数据。
客户端根据具体的分片规则,使用分片键计算分片元数据,得到分片元映射数据。分片元数据包括分片配置数据和分片元映射数据,分片元映射数据包括业务数据与路由节点的映射关系。分片规则可以根据实际的业务场景进行定义,可以包括以下方式中的任一种:
(1)划分号段
每个分片上存储相同大小的号段区间,如把分片键的值为[1,100]的业务数据存放在第一分片上,把分片键的值为[101,200]的业务数据存放在第二分片上。
(2)取模
先计算分片键的哈希值,再对分片的数量取模,假设有N个分片,编号为0~N-1,通过Hash(ShardingKey)%N就可以确定存储业务数据的分片编号。
(3)检索表
在检索表中存储分片键和分片的映射关系,通过查找检索表就可以确定业务数据分布。检索表可以对每个分片键都存储映射关系,也可以结合号段划分等方法来减小检索表的容量。
(4)一致性哈希
首先,对存储节点的哈希值进行计算,其将存储空间抽象为一个环,将存储节点配置到环上,环上所有的节点都有一个值。其次,对数据进行哈希计算,按顺时针方向将其映射到离其最近的节点上去。当有节点出现故障离线时,按照算法的映射方法,受影响的仅仅为环上故障节点开始逆时针方向至下一个节点之间区间的数据对象,而这些对象本身就是映射到故障节点之上的。当有节点增加时,比如,在节点A和B之间重新添加一个节点C,受影响的也仅仅是节点C逆时针遍历直到B之间的数据对象,将这些重新映射到C上即可。因此,当有节点出现变动时,不会使得整个存储空间上的数据都进行重新映射,解决了简单哈希算法增删节点,重新映射所有数据带来的效率低下的问题。
在本发明的一些实施例中,客户端根据分片键的值,或者分片键的哈希值,计算分片元数据,得到分片元映射数据,分片元数据包括分片配置数据和分片元映射数据。
客户端具体是使用分片键的值还是分片键的哈希值来计算分片元数据,取决于数据库具体的分片规则。
S120.客户端根据分片元映射数据,获取包括业务数据的目标分片数据库实例。
由于分片元映射数据包括业务数据与路由节点的映射关系,因此,通过查找分片元映射数据中的映射关系表,就能够确定目标分片数据库的地址。
在本发明的另一些实施例中,通过查询包括分片元映射数据的路由表,能够确定包括业务数据的目标分片数据库的地址。
路由表映射哪个分片存储与分片键的值、值范围或值集合对应的业务数据。查找路由表确定了目标分片数据库的地址,通过寻址就能获取目标分片数据库实例。
S130.客户端使用目标分片数据库实例,将业务数据处理请求路由到目标分片数据库。
客户端使用目标分片数据库实例,在分片数据库实例上输入路由指令,将业务数据处理请求路由到目标分片数据库。目标分片数据库接收到业务数据处理请求,响应请求,对相应的业务数据进行处理。
目标分片数据库还可以可选地返回识别特定分片存储的所有分片键范围的映射数据。这种映射数据可以由客户端直接高速缓存或在客户端可访问的连接池中高速缓存。映射数据允许客户端将具有与被高速缓存的映射数据匹配的分片键的后续查询直接路由到目标分片数据库。这将改进对目标分片的后续数据库请求的性能。
本发明实施例的一种分片数据库路由方法,一方面,通过将业务数据处理请求直接路由到目标分片数据库,绕开中心数据库,提高了分片数据库的利用率,减轻了中心数据库的负载压力,从而降低了中心数据库的故障概率。另一方面,业务数据处理请求仅在客户端与目标分片数据库之间进行交互,减少了中心数据库与目标分片数据库之间的数据扭转和交互,减小了业务数据处理请求的路由开销,提高了业务数据的处理效率。
实施例2
参照图2,示出了本发明实施例中一种分片数据库路由方法的另一具体实施例的流程示意图。如图2所示,基于实施例1,本发明实施例的一种分片数据库路由方法,具体包括如下步骤:
S200.客户端发起包括分片键的业务数据处理请求,分片键用于确定业务数据在分片数据库中的分布。
S210.客户端根据分片键,获取分片元映射数据。
S220.客户端根据分片元映射数据,获取包括业务数据的目标分片数据库实例。
S230.客户端创建独立线程,使用目标分片数据库实例,将中心数据库实例上的数据源切换到目标分片数据库实例上,将业务数据处理请求路由到目标分片数据库。
其中,步骤S200~S220与实施例1中的步骤S100~S120一致,此处不再赘述。
步骤S230:客户端使用ThreadLocal创建独立线程,在目标分片数据库实例上输入指令进行操作,通过切片方式重写数据源,使用上下文切面的方式动态切换当前线程的数据源,将中心数据库实例上的数据源切换到目标分片数据库实例上,将业务数据处理请求路由到目标分片数据库。
在本发明的一些实施例中,目标分片数据库响应业务数据处理请求,完成业务数据处理。业务数据处理完成,客户端销毁独立线程,将数据源切换回中心数据库实例上。
客户端使用ThreadLocal的remove方法使当前线程销毁,并使用上下文切面的方式,将数据源切换回中心数据库实例上。客户端销毁独立线程,能够释放处理上一次业务数据所占用的内存空间,将数据源切换回中心数据库实例上,准备响应下一次的业务数据处理请求。
实施例3
参照图3,示出了本发明实施例中一种分片数据库路由系统的一具体实施例的系统框图。如图3所示,本发明实施例的一种分片数据库路由系统,包括业务数据请求单元、数据源切换单元和业务数据处理单元,数据源切换单元分别连接业务数据请求单元和业务数据处理单元。
其中,业务数据请求单元,用于发起包括分片键的业务数据处理请求,分片键用于确定业务数据在分片数据库中的分布。
数据源切换单元,用于根据分片键,获取分片元映射数据;根据分片元映射数据,获取包括业务数据的目标分片数据库实例;使用目标分片数据库实例,将业务数据处理请求路由到目标分片数据库。
业务数据处理单元,用于响应业务数据处理请求,完成业务数据处理。
本发明实施例的一种分片数据库路由系统,数据源切换单元通过将业务数据处理请求直接路由到目标分片数据库,绕开中心数据库,提高了分片数据库的利用率,减轻了中心数据库的负载压力,从而降低了中心数据库的故障概率。此外,业务数据处理请求仅在客户端与目标分片数据库之间进行交互,减少了中心数据库与目标分片数据库之间的数据扭转和交互,减小了业务数据处理请求的路由开销,提高了业务数据的处理效率。
实施例4
参照图4,示出了本发明实施例中一种分片数据库路由系统的另一具体实施例的系统框图。如图4所示,基于实施例3,本发明实施例的一种分片数据库路由系统,包括业务数据请求单元、数据源切换单元、业务数据处理单元,以及独立线程创建单元,数据源切换单元分别连接业务数据请求单元、业务数据处理单元和独立线程创建单元,独立线程创建单元还与业务数据处理单元连接。
其中,业务数据请求单元,用于发起包括分片键的业务数据处理请求,分片键用于确定业务数据在分片数据库中的分布。
数据源切换单元,用于根据分片键,获取分片元映射数据;根据分片元映射数据,获取包括业务数据的目标分片数据库实例;使用目标分片数据库实例,将业务数据处理请求路由到目标分片数据库。
业务数据处理单元,用于响应业务数据处理请求,完成业务数据处理。
独立线程创建单元,用于创建或者销毁独立线程。
独立线程创建单元通过创建独立线程,能够减少数据源切换对其他业务数据处理进程的影响。
以上所描述的系统实施例仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,在本发明实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
实施例5
本发明实施例的一种分片数据库路由设备,包括至少一个处理器,以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行实施例1至实施例2中任一具体实施例的一种分片数据库路由方法。
本发明实施例的一种分片数据库路由设备,一方面,通过将业务数据处理请求直接路由到目标分片数据库,绕开中心数据库,提高了分片数据库的利用率,减轻了中心数据库的负载压力,从而降低了中心数据库的故障概率。另一方面,业务数据处理请求仅在客户端与目标分片数据库之间进行交互,减少了中心数据库与目标分片数据库之间的数据扭转和交互,减小了业务数据处理请求的路由开销,提高了业务数据的处理效率。
本发明实施例的一种分片数据库路由设备,处理器可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是一种分片数据库路由方法的可运行装置的控制中心,利用各种接口和线路连接整个一种分片数据库路由方法的可运行装置的各个部分。
存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现一种分片数据库路由方法的可运行装置的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
实施例6
本发明实施例的一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使计算机执行实施例1至实施例2中任一具体实施例的一种分片数据库路由方法。
本发明实施例的一种计算机可读存储介质,通过将业务数据处理请求直接路由到目标分片数据库,绕开中心数据库,提高了分片数据库的利用率,减轻了中心数据库的负载压力,从而降低了中心数据库的故障概率。此外,业务数据处理请求仅在客户端与目标分片数据库之间进行交互,减少了中心数据库与目标分片数据库之间的数据扭转和交互,减小了业务数据处理请求的路由开销,提高了业务数据的处理效率。
本发明实施例的计算机可执行指令可以使用现有的关系数据库编码语言或查询语言(诸如结构化查询语言(SQL))来实现。这意味着现有系统可以容易地升级、迁移或连接到包括本发明实施例3至实施例4中任一具体实施例的一种分片数据库路由系统。
软件指令当被存储在(一个或多个)处理器可访问的存储介质中时,使得计算设备成为被定制为执行软件指令中指定的操作的专用计算设备。术语“软件”、“软件指令”、“计算机程序”、“计算机可执行指令”和“处理器可执行指令”应当被广义地解释为覆盖用于指示计算设备执行具体操作的任何机器可读信息(无论人类是否可读),并且包括但不限于应用软件、桌面应用、脚本、二进制文件、操作系统、设备驱动程序、引导装载程序、she11、实用程序、系统软件、JAVASCRIPT、网页、web应用、插件、嵌入式软件、微码、编译器、调试器、解释器、虚拟机、链接器和文本编辑器。
上面结合附图对本发明实施例作了详细说明,在本发明实施例中描述的流程图的所有步骤、操作和功能旨在指示在各个具体实施例中使用专用计算机或通用计算机中的编程执行的操作。换句话说,本发明中的每个流程图结合本发明的相关描述是用于对计算机进行编程以执行所描述的功能的算法的全部或部分的指南、计划或规范。
但是本发明不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。此外,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。

Claims (10)

1.一种分片数据库路由方法,其特征在于,包括:
客户端发起包括分片键的业务数据处理请求,所述分片键用于确定业务数据在分片数据库中的分布;
客户端根据所述分片键,获取分片元映射数据;
客户端根据所述分片元映射数据,获取包括所述业务数据的目标分片数据库实例;
客户端使用所述目标分片数据库实例,将所述业务数据处理请求路由到所述目标分片数据库。
2.根据权利要求1所述的分片数据库路由方法,其特征在于,所述客户端根据所述分片键,获取分片元映射数据,包括:
所述客户端根据所述分片键的值,或者所述分片键的哈希值,计算分片元数据,得到分片元映射数据,所述分片元数据包括分片配置数据和分片元映射数据。
3.根据权利要求2所述的分片数据库路由方法,其特征在于,所述客户端根据所述分片元映射数据,获取包括所述业务数据的目标分片数据库实例,包括:
所述客户端根据所述分片元映射数据,查询包括所述分片元映射数据的路由表,获取包括所述业务数据的目标分片数据库实例。
4.根据权利要求1至3任一项所述的分片数据库路由方法,其特征在于,所述客户端使用所述目标分片数据库实例,将所述业务数据处理请求路由到目标分片数据库,包括:
所述客户端创建独立线程,使用所述目标分片数据库实例,将中心数据库实例上的数据源切换到所述目标分片数据库实例上,将所述业务数据处理请求路由到目标分片数据库。
5.根据权利要求4所述的分片数据库路由方法,其特征在于,所述方法还包括:所述目标分片数据库响应所述业务数据处理请求,完成业务数据处理。
6.根据权利要求5所述的分片数据库路由方法,其特征在于,所述方法还包括:所述客户端销毁所述独立线程,将所述数据源切换回所述中心数据库实例上。
7.一种分片数据库路由系统,其特征在于,包括:
业务数据请求单元,用于发起包括分片键的业务数据处理请求,所述分片键用于确定业务数据在分片数据库中的分布;
数据源切换单元,用于根据所述分片键,获取分片元映射数据;根据所述分片元映射数据,获取包括所述业务数据的目标分片数据库实例;使用所述目标分片数据库实例,将所述业务数据处理请求路由到所述目标分片数据库;
业务数据处理单元,用于响应所述业务数据处理请求,完成业务数据处理。
8.根据权利要求7所述的分片数据库路由系统,其特征在于,还包括独立线程创建单元,用于创建或者销毁独立线程,所述独立线程创建单元分别连接所述数据源切换单元和所述业务数据处理单元。
9.一种分片数据库路由设备,其特征在于,包括:
至少一个处理器,以及,
与至少一个所述处理器通信连接的存储器;其中,
所述存储器存储有可被至少一个所述处理器执行的指令,所述指令被至少一个所述处理器执行,以使至少一个所述处理器能够执行如权利要求1至6任一项所述的分片数据库路由方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1至6任一项所述的分片数据库路由方法。
CN202010119249.XA 2020-02-26 2020-02-26 分片数据库路由方法、系统、设备及存储介质 Pending CN111367884A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010119249.XA CN111367884A (zh) 2020-02-26 2020-02-26 分片数据库路由方法、系统、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010119249.XA CN111367884A (zh) 2020-02-26 2020-02-26 分片数据库路由方法、系统、设备及存储介质

Publications (1)

Publication Number Publication Date
CN111367884A true CN111367884A (zh) 2020-07-03

Family

ID=71208237

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010119249.XA Pending CN111367884A (zh) 2020-02-26 2020-02-26 分片数据库路由方法、系统、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111367884A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111831663A (zh) * 2020-07-28 2020-10-27 北京首汽智行科技有限公司 一种基于Mongodb数据库分片技术的数据查询方法
CN112380276A (zh) * 2021-01-15 2021-02-19 四川新网银行股份有限公司 一种分布式系统分库分表后非分片键字段查询数据的方法
CN112929280A (zh) * 2021-01-21 2021-06-08 中信银行股份有限公司 一种应用请求处理方法、系统及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108153759A (zh) * 2016-12-05 2018-06-12 中国移动通信集团公司 一种分布式数据库的数据传输方法、中间层服务器及系统
CN108351900A (zh) * 2015-10-07 2018-07-31 甲骨文国际公司 用于分片的关系数据库组织
CN110365748A (zh) * 2019-06-24 2019-10-22 深圳市腾讯计算机系统有限公司 业务数据的处理方法和装置、存储介质及电子装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108351900A (zh) * 2015-10-07 2018-07-31 甲骨文国际公司 用于分片的关系数据库组织
CN108153759A (zh) * 2016-12-05 2018-06-12 中国移动通信集团公司 一种分布式数据库的数据传输方法、中间层服务器及系统
CN110365748A (zh) * 2019-06-24 2019-10-22 深圳市腾讯计算机系统有限公司 业务数据的处理方法和装置、存储介质及电子装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111831663A (zh) * 2020-07-28 2020-10-27 北京首汽智行科技有限公司 一种基于Mongodb数据库分片技术的数据查询方法
CN112380276A (zh) * 2021-01-15 2021-02-19 四川新网银行股份有限公司 一种分布式系统分库分表后非分片键字段查询数据的方法
CN112380276B (zh) * 2021-01-15 2021-09-07 四川新网银行股份有限公司 一种分布式系统分库分表后非分片键字段查询数据的方法
CN112929280A (zh) * 2021-01-21 2021-06-08 中信银行股份有限公司 一种应用请求处理方法、系统及计算机可读存储介质

Similar Documents

Publication Publication Date Title
US10901796B2 (en) Hash-based partitioning system
US10013317B1 (en) Restoring a volume in a storage system
US10275184B2 (en) Framework for volatile memory query execution in a multi node cluster
CN107408128B (zh) 用于使用高速缓存和碎片拓扑提供对分片数据库的访问的系统和方法
US11016955B2 (en) Deduplication index enabling scalability
CN107622091B (zh) 一种数据库查询方法和装置
US10374792B1 (en) Layout-independent cryptographic stamp of a distributed dataset
EP4357930A1 (en) Systems and methods of database tenant migration
US20150248443A1 (en) Hierarchical host-based storage
CN111367884A (zh) 分片数据库路由方法、系统、设备及存储介质
US20130132408A1 (en) System and Method for Using Bloom Filters to Determine Data Locations in Distributed Data Stores
US20150039849A1 (en) Multi-Layer Data Storage Virtualization Using a Consistent Data Reference Model
US20200387480A1 (en) Path resolver for client access to distributed file systems
JP7336554B2 (ja) マルチテナント・データベース環境においてテナントの動的再配置を提供するためのシステムおよび方法
KR20210075845A (ko) 네이티브 키-밸류 분산 스토리지 시스템
US8874626B2 (en) Tracking files and directories related to unsuccessful change operations
US11093143B2 (en) Methods and systems for managing key-value solid state drives (KV SSDS)
US11755556B2 (en) Method, device, and computer program product for managing storage system
US20180300073A1 (en) System and method for managing volumes of data in a block storage system
US10162834B2 (en) Fine-grained metadata management in a distributed file system
WO2020041950A1 (zh) 一种基于b+树索引的数据更新方法、装置及存储装置
US9773007B1 (en) Performance improvements in a storage system
CN111651424B (zh) 一种数据处理方法、装置、数据节点及存储介质
US10956125B2 (en) Data shuffling with hierarchical tuple spaces
US20200125265A1 (en) Online cluster expansion for storage system with decoupled logical and physical capacity

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200703