CN111723148A - 数据存储方法及装置、存储介质、电子装置 - Google Patents
数据存储方法及装置、存储介质、电子装置 Download PDFInfo
- Publication number
- CN111723148A CN111723148A CN202010281038.6A CN202010281038A CN111723148A CN 111723148 A CN111723148 A CN 111723148A CN 202010281038 A CN202010281038 A CN 202010281038A CN 111723148 A CN111723148 A CN 111723148A
- Authority
- CN
- China
- Prior art keywords
- storage node
- data
- database
- target
- request
- 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.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 240
- 238000013500 data storage Methods 0.000 title claims abstract description 55
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000005012 migration Effects 0.000 claims abstract description 80
- 238000013508 migration Methods 0.000 claims abstract description 80
- 238000004590 computer program Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 13
- 230000005540 biological transmission Effects 0.000 claims description 8
- 230000004048 modification Effects 0.000 claims description 8
- 238000012986 modification Methods 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 7
- 238000001914 filtration Methods 0.000 claims description 5
- 238000007726 management method Methods 0.000 claims description 5
- 238000000638 solvent extraction Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 9
- 230000000694 effects Effects 0.000 abstract description 4
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 9
- 238000005192 partition Methods 0.000 description 9
- 239000012634 fragment Substances 0.000 description 8
- 230000006870 function Effects 0.000 description 4
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据存储方法及装置、存储介质、电子装置,该方法包括:在确定数据库中新增目标存储节点的情况下,修改数据库中的数据表的元数据信息,以确定数据库中存储节点的数据存储范围,其中,存储节点包括目标存储节点和原始存储节点;变更发送至数据库中的待处理请求的第一发送信息,其中,第一发送信息用于将待处理请求发送至原始存储节点处,待处理请求用于请求处理原始存储节点中存储的数据;将确定的目标迁移数据发送至目标存储节点处,以指示目标存储节点存储目标迁移数据,其中,目标迁移数据是原始存储节点的数据存储范围之外的数据。通过本发明,解决相关技术中数据库中节点扩容的问题,达到有效扩容数据库以及对数据操作效果。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种数据存储方法及装置、存储介质、电子装置。
背景技术
随着近年来各行各业数据生产总量增长越来越迅速,单节点数据库已经很难同时满足海量数据存储和高并发数据访问快速响应。分布式数据库应运而生,其通过多节点,对数据和数据表切分,有效缓解海量数据存储问题,通过负载均衡、HA等方式实现高可用、低时延的数据访问已成为大数据行业的主流选择。但是随着数据存储总量的不断攀升,分布式数据库集群必然也需要新增节点进行扩容,以满足更大数据量的业务需求。
现有技术中,主要是按整数倍方式增加节点,每次将原节点的一半数据复制到新增节点完成扩容。或者,是根据路由信息确定分布式数据库中每个原始存储节点对应迁移数据,将该部分数据迁移至扩容存储节点。但都无法在节点扩容的同时对外提供数据服务,以及无法任意扩容节点。
针对上述技术问题,相关技术中尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据存储方法及装置、存储介质、电子装置,以至少解决相关技术中数据库中节点扩容的问题。
根据本发明的一个实施例,提供了一种数据存储方法,包括:在确定数据库中新增目标存储节点的情况下,修改数据库中的数据表的元数据信息,以确定上述数据库中存储节点的数据存储范围;其中,上述存储节点包括上述目标存储节点和原始存储节点;变更发送至上述数据库中的待处理请求的第一发送信息,其中,第一发送信息用于将上述待处理请求发送至上述原始存储节点处,上述待处理请求用于请求处理上述原始存储节点中存储的数据;将确定的目标迁移数据发送至上述目标存储节点处,以指示上述目标存储节点存储上述目标迁移数据,其中,上述目标迁移数据是上述原始存储节点的数据存储范围之外的数据。
根据本发明的另一个实施例,提供了一种数据存储装置,包括:第一修改模块,用于在确定数据库中新增目标存储节点的情况下,修改数据库中的数据表的元数据信息,以确定上述数据库中存储节点的数据存储范围;其中,上述存储节点包括上述目标存储节点和原始存储节点;第一变更模块,用于变更发送至上述数据库中的待处理请求的第一发送信息,其中,第一发送信息用于将上述待处理请求发送至上述原始存储节点处,上述待处理请求用于请求处理上述原始存储节点中存储的数据;第一发送模块,用于将确定的目标迁移数据发送至上述目标存储节点处,以指示上述目标存储节点存储上述目标迁移数据,其中,上述目标迁移数据是上述原始存储节点的数据存储范围之外的数据。
可选地,上述装置还包括:建立模块,用于在确定数据库中新增目标存储节点的情况下,修改数据库中的数据表的元数据信息,以确定上述数据库中存储节点的数据存储范围之前,在上述数据库中的被占用的存储空间大于预设阈值的情况下,通过上层应用触发建立上述目标存储节点的请求,以在上述数据库中建立上述目标存储节点。
可选地,上述装置还包括:设置模块,用于在变更发送至上述数据库中的待处理请求的第一发送信息之前,在上述数据库中的配置文件中设置扩容标识信息,其中,上述扩容标识信息用于表示上述数据库处于新增上述目标存储节点的状态。
可选地,上述装置还包括:删除模块,用于在将确定的目标迁移数据发送至上述目标存储节点处,以指示上述目标存储节点存储上述目标迁移数据之后,在上述数据库中的配置文件中删除上述扩容标识信息。
可选地,上述第一变更模块,包括:第一确定单元,用于解析接收的上述待处理请求,得到解析后的待处理请求;第一发送单元,用于在从上述数据库中的配置文件中确定上述数据库处于新增上述目标存储节点的状态的情况下,将上述解析后的待处理请求发送至上述原始存储节点处。
可选地,上述第一发送模块,包括:第二确定单元,用于在从上述数据库中的配置文件中确定上述数据库处于新增上述目标存储节点的状态的情况下,利用预设一致性哈希算法分区读取上述原始存储节点中的数据,得到上述原始存储节点的哈希值;第三确定单元,用于利用上述哈希值过滤出上述原始存储节点的数据存储范围之外的数据,得到上述目标迁移数据;导入单元,用于将上述目标迁移数据导入上述目标存储节点中,以在上述目标存储节点中存储上述目标迁移数据。
可选地,上述装置还包括:变更模块,用于将确定的目标迁移数据发送至上述目标存储节点处,以指示上述目标存储节点存储上述目标迁移数据之后,变更发送至上述数据库中的上述待处理请求的第二发送信息,其中,第二发送信息用于将上述待处理请求发送至上述原始存储节点和上述目标存储节点处,上述待处理请求用于请求处理上述原始存储节点和上述目标节点中存储的数据。
根据本发明的又一个实施例,还提供了一种存储介质,上述存储介质中存储有计算机程序,其中,上述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为运行上述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,由于在确定数据库中新增目标存储节点的情况下,修改数据库中的数据表的元数据信息,以确定数据库中存储节点的数据存储范围;其中,存储节点包括目标存储节点和原始存储节点;变更发送至数据库中的待处理请求的第一发送信息,其中,第一发送信息用于将待处理请求发送至原始存储节点处,待处理请求用于请求处理原始存储节点中存储的数据;将确定的目标迁移数据发送至目标存储节点处,以指示目标存储节点存储目标迁移数据,其中,目标迁移数据是原始存储节点的数据存储范围之外的数据。可以在数据库中新增目标存储节点的同时,实现对数据库中数据的操作。因此,可以解决相关技术中数据库中节点扩容的问题,达到有效扩容数据库以及对数据操作效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种数据存储方法的移动终端的硬件结构框图;
图2是根据本发明实施例的数据存储的流程图;
图3是根据本发明实施例的查询流程图;
图4是根据本发明实施例数据迁移的结构示意图(一);
图5是根据本发明可选实施例的数据迁移的结构示意图(二);
图6是根据本发明可选实施例的数据迁移的流程图;
图7是根据本发明实施例的数据存储装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种数据存储方法的移动终端的硬件结构框图。如图1所示,移动终端10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的数据存储方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种数据存储,图2是根据本发明实施例的数据存储的流程图,如图2所示,该流程包括如下步骤:
步骤S202,在确定数据库中新增目标存储节点的情况下,修改数据库中的数据表的元数据信息,以确定数据库中存储节点的数据存储范围,其中,存储节点包括目标存储节点和原始存储节点;
可选地,本实施例包括但不限于对分布式数据库集群进行扩容的应用场景中。在该场景中,分布式数据库集群存储的数据量非常大,初始创建数据表时会创建分区分布表并设置一个分布键(例如记录标识ID)用于将数据表分布到集群所有物理节点中,集群管理节点在表创建时对集群中每个物理节点设定存储数据范围,以保证集群各物理节点数据均匀分布。当集群新增物理节点(例如,目标存储节点)后,集群管理节点对分布式数据库集群当前存储的数据表的元数据进行修改,重新均匀设定每个物理节点存储数据范围。
步骤S204,变更发送至数据库中的待处理请求的第一发送信息,其中,第一发送信息用于将待处理请求发送至原始存储节点处,待处理请求用于请求处理原始存储节点中存储的数据;
可选地,在本实施例中,第一发送信息中包括对数据执行的计划(例如,对数据的增删改操作)。变更发送至数据库中的待处理请求的第一发送信息即是变更对数据的执行计划。由于分布式数据库集群新增了目标存储节点并修改了表的元数据信息,通过原始条件对数据库执行删改查操作时可能出现执行计划将待处理请求只下发到新增的目标存储节点,而新增的目标存储节点实际还未存储数据,引起数据执行失败的情况。故此时需要对执行计划进行变更,将请求下发到集群所有节点(包括原始存储节点),以保证数据业务正常的执行。
步骤S206,将确定的目标迁移数据发送至目标存储节点处,以指示目标存储节点存储目标迁移数据,其中,目标迁移数据是原始存储节点的数据存储范围之外的数据。
可选地,在本实施例中,由于分布式数据库集群中表的元数据信息已被修改,故需要对原始存储节点新存储数据范围以外的数据迁移到新增的目标存储节点中。可以通过构造分布式数据库集群内部迁移机制,将待迁移数据从原始存储节点快速同步至新增的目标存储节点中。
可选地,上述步骤的执行主体可以为终端等,但不限于此。
通过上述步骤,由于在确定数据库中新增目标存储节点的情况下,修改数据库中的数据表的元数据信息,以确定数据库中存储节点的数据存储范围;其中,存储节点包括目标存储节点和原始存储节点;变更发送至数据库中的待处理请求的第一发送信息,其中,第一发送信息用于将待处理请求发送至原始存储节点处,待处理请求用于请求处理原始存储节点中存储的数据;将确定的目标迁移数据发送至目标存储节点处,以指示目标存储节点存储目标迁移数据,其中,目标迁移数据是原始存储节点的数据存储范围之外的数据。可以在数据库中新增目标存储节点的同时,实现对数据库中数据的操作。因此,可以解决相关技术中数据库中节点扩容的问题,达到有效扩容数据库以及对数据操作效果。
在一个可选的实施例中,在确定数据库中新增目标存储节点的情况下,修改数据库中的数据表的元数据信息,以确定数据库中存储节点的数据存储范围之前,方法还包括:
S1,在数据库中的被占用的存储空间大于预设阈值的情况下,通过上层应用触发建立目标存储节点的请求,以在数据库中建立目标存储节点。
可选地,在本实施例中,可以通过上层应用触发扩容新增目标存储节点的请求。当分布式数据库集群节点物理磁盘占用空间超过预设阈值(例如90%),或者,由于表结构设计缺陷引起的数据倾斜导致集群某些节点的存储、计算性能成为瓶颈时需要进行集群扩容时,可以通过外部增加物理节点(例如,新增目标存储节点)的方式,组成新的分布式数据库集群对外提供服务。
在一个可选的实施例中,在变更发送至数据库中的待处理请求的第一发送信息之前,方法还包括:
S1,在数据库中的配置文件中设置扩容标识信息,其中,扩容标识信息用于表示数据库处于新增目标存储节点的状态。
可选地,在本实施例中,可以在数据库中的配置文件中预置一个正在扩容的全局标记(即标识信息),然后修改对数据的执行计划,将所有对数据库集群的读写请求下发到集群所有节点(即原始存储节点)。以实现通过原始存储节点响应对数据的操作。
在一个可选的实施例中,在将确定的目标迁移数据发送至目标存储节点处,以指示目标存储节点存储目标迁移数据之后,方法还包括:
S1,在数据库中的配置文件中删除扩容标识信息。
可选地,在本实施例中,在数据迁移完成后,可以将标识信息删除,然后将对数据的执行计划还原(例如,将对数据的处理请求发送至对应的存储节点处)。
可选地,分布式数据库在修改存储节点后的查询流程如图3所示,包括以下步骤:
S301:客户端带分布键的查询语句(例如select*from xxx where id=…)请求下发至分布式数据库集群管理节点;
S302:执行解析器接收请求;
S303:读取集群配置文件信息;
S304:判断数据库是否正扩容;
S305:在数据库正扩容的情况下,忽略where过滤条件,将请求下发至所有的分片中;
S306:在数据库未扩容的情况下,正常过滤请求,将请求下发至指定的分片处;
S307:集群管理节点进行汇总;
S308:返回客户端结果。
通过本实施例,通过对数据库是否正在扩容的判断,将请求分别进行处理,可以提高数据的处理效率。
在一个可选的实施例中,变更发送至数据库中的待处理请求的第一发送信息,包括:
S1,解析接收的待处理请求,得到解析后的待处理请求;
S2,在从数据库中的配置文件中确定数据库处于新增目标存储节点的状态的情况下,将解析后的待处理请求发送至原始存储节点处。
可选地,在本实施例中,可以是通过解析器对待处理请求进行解析。
在一个可选的实施例中,将确定的目标迁移数据发送至目标存储节点处,以指示目标存储节点存储目标迁移数据,包括:
S1,在从数据库中的配置文件中确定数据库处于新增目标存储节点的状态的情况下,利用预设一致性哈希算法分区读取原始存储节点中的数据,得到原始存储节点的哈希值;
S2,利用哈希值过滤出原始存储节点的数据存储范围之外的数据,得到目标迁移数据;
S3,将目标迁移数据导入目标存储节点中,以在目标存储节点中存储目标迁移数据。
可选地,在本实施例中,目标迁移数据指的是分布式数据库集群扩容前集群原始存储节点上不属于新存储范围的原始数据。需要对这部分数据进行筛选,并将筛选出的数据同步到对应新增目标存储节点中。本实施例采用跳跃一致性哈希算法Jump ConsistentHash在集群各个原始存储节点的分区分片上将计算得到的值作为过滤条件快速筛选出目标迁移数据。然后将该部分数据直接导入到目标存储节点对应分区分片中,减少了导入任务的数量,从而实现快速数据迁移,如图4、图5所示。并且由于按分区数据迁移,且已修改了执行计划,只有对正在数据迁移的原节点上正在迁移分区的少量数据的删改操作会短暂阻塞,这个阻塞上层业务不会感知,对其他分区数据的删改操作不受影响,而查询业务则完全不受影响,从而实现了在线扩容数据迁移。
可选地,在本实施例中,Jump Consistent Hash算法的设计思路是ch(key,num_buckets)为桶数为num_buckets时的hash函数:
num_buckets为1时,任意key,ch(key,1)==0,全落在第0个桶里。
num_buckets由1变为2后,ch(key,2)应该有1/2的结果保持为0,有1/2变为1。
num_buckets由n变为n+1后,ch(key,n+1)应该有n/(n+1)的结果保持不变,有1/(n+1)跳变为n+1。
因此,只要用一个分布均匀的函数,例如伪随机数生成器,并且让这个伪随机数生成器的状态只依赖于key,从0个桶开始推导,变到第num_buckets个桶,结果就是我们想要的hash值:
假设变化过程中的上一次结果是b,下一次结果j大于等于一个大于b的数i的概率,也就是可以跳到i的概率,也就是从b+1到i的过程中,桶序号都没有变的概率为:
P(j>=i)=P(ch(key,b+1)==ch(key,i));
这个概率也就是连续多次不变事件概率的乘积:
P(j>=i)=P(ch(key,b+1)==ch(k,b+2))*P(ch(key,b+2)==ch(key,b+3))*...*P(ch(key,i-1)==ch(key,i));
由于单次不变的概率为:
P(ch(key,i)==ch(key,i+1))=i/(i+1);
所以连续多次不变的概率为:
P(j>=i)=(b+1)/(b+2)*(b+2)/(b+3)*...*(i-1)/i=(b+1)/i;
算法代码如下:
可选地,在数据迁移流程中,以其中一个原节点为例,如图6所示包括以下步骤:
S601:读取集群配置文件信息;
S602:判断数据库是否正在扩容;
S603:在数据库在扩容的情况下,原始存储节点1按分区取分片数据;
S604:判断是否取完分片中所有数据;
S605:在未取完分片中所有数据的情况下,判断该条数据在增加节点后通过算法计算的桶号是否一致;
S606:在该条数据在增加节点后通过算法计算的桶号一致的情况下,该条数据无需迁移取下一条分片数据;
S607:在该条数据在增加节点后通过算法计算的桶号不一致的情况下,该条数据需要迁移取下一条分片数据;
S608:在取完分片中所有数据的情况下,将所有需要迁移数据插入到扩容节点。
在一个可选的实施例中,将确定的目标迁移数据发送至目标存储节点处,以指示目标存储节点存储目标迁移数据之后,方法还包括:
S1,变更发送至数据库中的待处理请求的第二发送信息,其中,第二发送信息用于将待处理请求发送至原始存储节点和目标存储节点处,待处理请求用于请求处理原始存储节点和目标节点中存储的数据。
综上所述,本实施例可以实现在数据库中快速扩容存储节点的目的,并且,引入一致性哈希算法,可以快速筛选出待迁移数据,且减少数据迁移任务数量,实现不受扩容节点数与原节点数限制的快速扩容数据迁移。通过修改分布式数据库查询解析器源码,实现不停业务在线扩容。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种数据存储装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图7是根据本发明实施例的数据存储装置的结构框图,如图7所示,该装置包括:
第一修改模块72,用于在确定数据库中新增目标存储节点的情况下,修改数据库中的数据表的元数据信息,以确定上述数据库中存储节点的数据存储范围;其中,上述存储节点包括上述目标存储节点和原始存储节点;
第一变更模块74,用于变更发送至上述数据库中的待处理请求的第一发送信息,其中,第一发送信息用于将上述待处理请求发送至上述原始存储节点处,上述待处理请求用于请求处理上述原始存储节点中存储的数据;
第一发送模块76,用于将确定的目标迁移数据发送至上述目标存储节点处,以指示上述目标存储节点存储上述目标迁移数据,其中,上述目标迁移数据是上述原始存储节点的数据存储范围之外的数据。
可选地,上述装置还包括:
建立模块,用于在确定数据库中新增目标存储节点的情况下,修改数据库中的数据表的元数据信息,以确定上述数据库中存储节点的数据存储范围之前,在上述数据库中的被占用的存储空间大于预设阈值的情况下,通过上层应用触发建立上述目标存储节点的请求,以在上述数据库中建立上述目标存储节点。
可选地,上述装置还包括:
设置模块,用于在变更发送至上述数据库中的待处理请求的第一发送信息之前,在上述数据库中的配置文件中设置扩容标识信息,其中,上述扩容标识信息用于表示上述数据库处于新增上述目标存储节点的状态。
可选地,上述装置还包括:
删除模块,用于在将确定的目标迁移数据发送至上述目标存储节点处,以指示上述目标存储节点存储上述目标迁移数据之后,在上述数据库中的配置文件中删除上述扩容标识信息。
可选地,上述第一变更模块,包括:
第一确定单元,用于解析接收的上述待处理请求,得到解析后的待处理请求;
第一发送单元,用于在从上述数据库中的配置文件中确定上述数据库处于新增上述目标存储节点的状态的情况下,将上述解析后的待处理请求发送至上述原始存储节点处。
可选地,上述第一发送模块,包括:
第二确定单元,用于在从上述数据库中的配置文件中确定上述数据库处于新增上述目标存储节点的状态的情况下,利用预设一致性哈希算法分区读取上述原始存储节点中的数据,得到上述原始存储节点的哈希值;
第三确定单元,用于利用上述哈希值过滤出上述原始存储节点的数据存储范围之外的数据,得到上述目标迁移数据;
导入单元,用于将上述目标迁移数据导入上述目标存储节点中,以在上述目标存储节点中存储上述目标迁移数据。
可选地,上述装置还包括:
变更模块,用于将确定的目标迁移数据发送至上述目标存储节点处,以指示上述目标存储节点存储上述目标迁移数据之后,变更发送至上述数据库中的上述待处理请求的第二发送信息,其中,第二发送信息用于将上述待处理请求发送至上述原始存储节点和上述目标存储节点处,上述待处理请求用于请求处理上述原始存储节点和上述目标节点中存储的数据。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,在确定数据库中新增目标存储节点的情况下,修改数据库中的数据表的元数据信息,以确定数据库中存储节点的数据存储范围;其中,存储节点包括目标存储节点和原始存储节点;
S2,变更发送至数据库中的待处理请求的第一发送信息,其中,第一发送信息用于将待处理请求发送至原始存储节点处,待处理请求用于请求处理原始存储节点中存储的数据;
S3,将确定的目标迁移数据发送至目标存储节点处,以指示目标存储节点存储目标迁移数据,其中,目标迁移数据是原始存储节点的数据存储范围之外的数据。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,在确定数据库中新增目标存储节点的情况下,修改数据库中的数据表的元数据信息,以确定数据库中存储节点的数据存储范围;其中,存储节点包括目标存储节点和原始存储节点;
S2,变更发送至数据库中的待处理请求的第一发送信息,其中,第一发送信息用于将待处理请求发送至原始存储节点处,待处理请求用于请求处理原始存储节点中存储的数据;
S3,将确定的目标迁移数据发送至目标存储节点处,以指示目标存储节点存储目标迁移数据,其中,目标迁移数据是原始存储节点的数据存储范围之外的数据。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据存储方法,其特征在于,包括:
在确定数据库中新增目标存储节点的情况下,修改数据库中的数据表的元数据信息,以确定所述数据库中存储节点的数据存储范围,其中,所述存储节点包括所述目标存储节点和原始存储节点;
变更发送至所述数据库中的待处理请求的第一发送信息,其中,所述第一发送信息用于将所述待处理请求发送至所述原始存储节点处,所述待处理请求用于请求处理所述原始存储节点中存储的数据;
将确定的目标迁移数据发送至所述目标存储节点处,以指示所述目标存储节点存储所述目标迁移数据,其中,所述目标迁移数据是所述原始存储节点的数据存储范围之外的数据。
2.根据权利要求1所述的方法,其特征在于,在确定数据库中新增目标存储节点的情况下,修改数据库中的数据表的元数据信息,以确定所述数据库中存储节点的数据存储范围之前,所述方法还包括:
在所述数据库中的被占用的存储空间大于预设阈值的情况下,通过上层应用触发建立所述目标存储节点的请求,以在所述数据库中建立所述目标存储节点。
3.根据权利要求1所述的方法,其特征在于,在变更发送至所述数据库中的待处理请求的第一发送信息之前,所述方法还包括:
在所述数据库中的配置文件中设置扩容标识信息,其中,所述扩容标识信息用于表示所述数据库处于新增所述目标存储节点的状态。
4.根据权利要求3所述的方法,其特征在于,在将确定的目标迁移数据发送至所述目标存储节点处,以指示所述目标存储节点存储所述目标迁移数据之后,所述方法还包括:
在所述数据库中的配置文件中删除所述扩容标识信息。
5.根据权利要求1所述的方法,其特征在于,变更发送至所述数据库中的待处理请求的第一发送信息,包括:
解析接收的所述待处理请求,得到解析后的待处理请求;
在从所述数据库中的配置文件中确定所述数据库处于新增所述目标存储节点的状态的情况下,将所述解析后的待处理请求发送至所述原始存储节点处。
6.根据权利要求1所述的方法,其特征在于,将确定的目标迁移数据发送至所述目标存储节点处,以指示所述目标存储节点存储所述目标迁移数据,包括:
在从所述数据库中的配置文件中确定所述数据库处于新增所述目标存储节点的状态的情况下,利用预设一致性哈希算法分区读取所述原始存储节点中的数据,得到所述原始存储节点的哈希值;
利用所述哈希值过滤出所述原始存储节点的数据存储范围之外的数据,得到所述目标迁移数据;
将所述目标迁移数据导入所述目标存储节点中,以在所述目标存储节点中存储所述目标迁移数据。
7.根据权利要求1所述的方法,其特征在于,将确定的目标迁移数据发送至所述目标存储节点处,以指示所述目标存储节点存储所述目标迁移数据之后,所述方法还包括:
变更发送至所述数据库中的所述待处理请求的第二发送信息,其中,所述第二发送信息用于将所述待处理请求发送至所述原始存储节点和所述目标存储节点处,所述待处理请求用于请求处理所述原始存储节点和所述目标节点中存储的数据;
群管理节点对分布式数据库集群当前存储的数据表的元数据进行修改,重新均匀设定每个物理节点存储数据范围。
8.一种数据存储装置,其特征在于,包括:
第一修改模块,用于在确定数据库中新增目标存储节点的情况下,修改数据库中的数据表的元数据信息,以确定所述数据库中存储节点的数据存储范围;其中,所述存储节点包括所述目标存储节点和原始存储节点;
第一变更模块,用于变更发送至所述数据库中的待处理请求的第一发送信息,其中,所述第一发送信息用于将所述待处理请求发送至所述原始存储节点处,所述待处理请求用于请求处理所述原始存储节点中存储的数据;
第一发送模块,用于将确定的目标迁移数据发送至所述目标存储节点处,以指示所述目标存储节点存储所述目标迁移数据,其中,所述目标迁移数据是所述原始存储节点的数据存储范围之外的数据。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至7任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010281038.6A CN111723148B (zh) | 2020-04-10 | 2020-04-10 | 数据存储方法及装置、存储介质、电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010281038.6A CN111723148B (zh) | 2020-04-10 | 2020-04-10 | 数据存储方法及装置、存储介质、电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111723148A true CN111723148A (zh) | 2020-09-29 |
CN111723148B CN111723148B (zh) | 2024-01-26 |
Family
ID=72564137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010281038.6A Active CN111723148B (zh) | 2020-04-10 | 2020-04-10 | 数据存储方法及装置、存储介质、电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111723148B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596671A (zh) * | 2020-12-16 | 2021-04-02 | 东软集团股份有限公司 | 数据存储的方法、装置、存储介质及电子设备 |
CN113051250A (zh) * | 2021-03-24 | 2021-06-29 | 北京金山云网络技术有限公司 | 数据库集群的扩容方法和装置、电子设备和存储介质 |
CN113177091A (zh) * | 2021-05-19 | 2021-07-27 | 杭州华橙软件技术有限公司 | 增量数据的存储方法及装置、存储介质、电子装置 |
CN113392067A (zh) * | 2021-06-11 | 2021-09-14 | 北京金山云网络技术有限公司 | 一种针对分布式数据库的数据处理方法、装置及系统 |
CN113553314A (zh) * | 2021-07-16 | 2021-10-26 | 北京天融信网络安全技术有限公司 | 一种超融合系统的服务处理方法、装置、设备及介质 |
CN113656095A (zh) * | 2021-08-06 | 2021-11-16 | 北京数码大方科技股份有限公司 | 配置数据的处理方法及装置 |
CN115297131A (zh) * | 2022-08-01 | 2022-11-04 | 东北大学 | 一种基于一致性哈希的敏感数据分布式储存方法 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521297A (zh) * | 2011-11-30 | 2012-06-27 | 北京人大金仓信息技术股份有限公司 | 无共享数据库集群中实现系统动态扩展的方法 |
CN102855294A (zh) * | 2012-08-13 | 2013-01-02 | 北京联创信安科技有限公司 | 一种智能哈希数据布局方法、集群存储系统及其方法 |
WO2016192496A1 (zh) * | 2015-06-03 | 2016-12-08 | 中兴通讯股份有限公司 | 数据迁移处理方法及装置 |
CN107122442A (zh) * | 2017-04-24 | 2017-09-01 | 上海兴容通信技术有限公司 | 一种分布式数据库及其访问方法 |
CN107357896A (zh) * | 2017-07-13 | 2017-11-17 | 北京小度信息科技有限公司 | 数据库集群的扩容方法、装置、系统和数据库集群系统 |
CN107645396A (zh) * | 2016-07-21 | 2018-01-30 | 北京金山云网络技术有限公司 | 一种集群扩容方法及装置 |
CN107885758A (zh) * | 2016-09-30 | 2018-04-06 | 华为技术有限公司 | 一种虚拟节点的数据迁移方法和虚拟节点 |
CN108810041A (zh) * | 2017-04-27 | 2018-11-13 | 华为技术有限公司 | 一种分布式缓存系统的数据写入及扩容方法、装置 |
US20180356989A1 (en) * | 2017-06-12 | 2018-12-13 | Pure Storage, Inc. | Portable snapshot replication between storage systems |
CN109408590A (zh) * | 2018-09-27 | 2019-03-01 | 青岛海信智能商用系统股份有限公司 | 分布式数据库的扩容方法、装置、设备及存储介质 |
CN110213326A (zh) * | 2019-04-15 | 2019-09-06 | 浙江大华技术股份有限公司 | 元数据节点集群的扩容方法、系统、设备和存储介质 |
CN110333824A (zh) * | 2019-06-05 | 2019-10-15 | 腾讯科技(深圳)有限公司 | 一种存储系统的扩容方法和装置 |
-
2020
- 2020-04-10 CN CN202010281038.6A patent/CN111723148B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521297A (zh) * | 2011-11-30 | 2012-06-27 | 北京人大金仓信息技术股份有限公司 | 无共享数据库集群中实现系统动态扩展的方法 |
CN102855294A (zh) * | 2012-08-13 | 2013-01-02 | 北京联创信安科技有限公司 | 一种智能哈希数据布局方法、集群存储系统及其方法 |
WO2016192496A1 (zh) * | 2015-06-03 | 2016-12-08 | 中兴通讯股份有限公司 | 数据迁移处理方法及装置 |
CN107645396A (zh) * | 2016-07-21 | 2018-01-30 | 北京金山云网络技术有限公司 | 一种集群扩容方法及装置 |
CN107885758A (zh) * | 2016-09-30 | 2018-04-06 | 华为技术有限公司 | 一种虚拟节点的数据迁移方法和虚拟节点 |
CN107122442A (zh) * | 2017-04-24 | 2017-09-01 | 上海兴容通信技术有限公司 | 一种分布式数据库及其访问方法 |
CN108810041A (zh) * | 2017-04-27 | 2018-11-13 | 华为技术有限公司 | 一种分布式缓存系统的数据写入及扩容方法、装置 |
US20180356989A1 (en) * | 2017-06-12 | 2018-12-13 | Pure Storage, Inc. | Portable snapshot replication between storage systems |
CN107357896A (zh) * | 2017-07-13 | 2017-11-17 | 北京小度信息科技有限公司 | 数据库集群的扩容方法、装置、系统和数据库集群系统 |
CN109408590A (zh) * | 2018-09-27 | 2019-03-01 | 青岛海信智能商用系统股份有限公司 | 分布式数据库的扩容方法、装置、设备及存储介质 |
CN110213326A (zh) * | 2019-04-15 | 2019-09-06 | 浙江大华技术股份有限公司 | 元数据节点集群的扩容方法、系统、设备和存储介质 |
CN110333824A (zh) * | 2019-06-05 | 2019-10-15 | 腾讯科技(深圳)有限公司 | 一种存储系统的扩容方法和装置 |
Non-Patent Citations (2)
Title |
---|
刘焓: "云平台下服务分布式监控系统的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 07, pages 138 - 246 * |
刘鹏等: "《人工智能应用技术基础》", 《西安电子科学技术大学出版社》, pages: 15 - 17 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596671A (zh) * | 2020-12-16 | 2021-04-02 | 东软集团股份有限公司 | 数据存储的方法、装置、存储介质及电子设备 |
CN113051250A (zh) * | 2021-03-24 | 2021-06-29 | 北京金山云网络技术有限公司 | 数据库集群的扩容方法和装置、电子设备和存储介质 |
CN113177091A (zh) * | 2021-05-19 | 2021-07-27 | 杭州华橙软件技术有限公司 | 增量数据的存储方法及装置、存储介质、电子装置 |
CN113177091B (zh) * | 2021-05-19 | 2023-10-10 | 杭州华橙软件技术有限公司 | 增量数据的存储方法及装置、存储介质、电子装置 |
CN113392067A (zh) * | 2021-06-11 | 2021-09-14 | 北京金山云网络技术有限公司 | 一种针对分布式数据库的数据处理方法、装置及系统 |
CN113553314A (zh) * | 2021-07-16 | 2021-10-26 | 北京天融信网络安全技术有限公司 | 一种超融合系统的服务处理方法、装置、设备及介质 |
CN113656095A (zh) * | 2021-08-06 | 2021-11-16 | 北京数码大方科技股份有限公司 | 配置数据的处理方法及装置 |
CN113656095B (zh) * | 2021-08-06 | 2023-08-04 | 北京数码大方科技股份有限公司 | 配置数据的处理方法及装置 |
CN115297131A (zh) * | 2022-08-01 | 2022-11-04 | 东北大学 | 一种基于一致性哈希的敏感数据分布式储存方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111723148B (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111723148B (zh) | 数据存储方法及装置、存储介质、电子装置 | |
US11789925B2 (en) | System and method for conditionally updating an item with attribute granularity | |
US11709600B2 (en) | System and method for performing live partitioning in a data store | |
CN110659259B (zh) | 数据库迁移方法、服务器以及计算机存储介质 | |
CN112506870B (zh) | 数据仓库增量更新方法、装置及计算机设备 | |
CN111930770A (zh) | 数据查询方法、装置及电子设备 | |
CN111475483A (zh) | 数据库迁移方法、装置及计算设备 | |
WO2016169237A1 (zh) | 数据处理方法及装置 | |
CN114647689A (zh) | 一种图数据库数据导入的方法、系统、装置和介质 | |
CN113742343A (zh) | 基于大量业务数据场景的数据拆分方法、装置和存储介质 | |
JP4111881B2 (ja) | データ同期制御装置、データ同期制御方法及びデータ同期制御プログラム | |
CN114443908A (zh) | 图数据库构建方法、系统、终端及存储介质 | |
CN111339183A (zh) | 数据处理方法、边缘节点、数据中心及存储介质 | |
CN110399600A (zh) | 生成宽表的方法及装置 | |
CN110609924A (zh) | 基于图数据的全量关系计算方法、装置、设备及存储介质 | |
EP4012573A1 (en) | Graph reconstruction method and apparatus | |
CN112363838A (zh) | 数据处理方法及装置、存储介质、电子装置 | |
CN116233254A (zh) | 业务切流方法、装置、计算机设备和存储介质 | |
US11711314B1 (en) | Grouping resource metadata tags | |
CN116341508A (zh) | 报文模板的动态配置方法、装置、计算机设备及存储介质 | |
CN113806309B (zh) | 基于分布式锁的元数据删除方法、系统、终端及存储介质 | |
CN112817980B (zh) | 一种数据索引处理方法、装置、设备及存储介质 | |
CN113177091A (zh) | 增量数据的存储方法及装置、存储介质、电子装置 | |
CN112100208A (zh) | 一种操作请求的转发方法和装置 | |
CN111339245A (zh) | 数据存储方法、装置、存储介质及设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |