CN113239114A - 数据存储方法、装置、存储介质及电子装置 - Google Patents
数据存储方法、装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN113239114A CN113239114A CN202110524626.2A CN202110524626A CN113239114A CN 113239114 A CN113239114 A CN 113239114A CN 202110524626 A CN202110524626 A CN 202110524626A CN 113239114 A CN113239114 A CN 113239114A
- Authority
- CN
- China
- Prior art keywords
- sub
- storage space
- state
- target
- seed
- 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
- 238000013500 data storage Methods 0.000 title claims abstract description 43
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000012544 monitoring process Methods 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 16
- 238000013507 mapping Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 7
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 3
- 238000002955 isolation Methods 0.000 description 44
- 238000011084 recovery Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000000638 solvent extraction Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000012297 crystallization seed Substances 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008439 repair process 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种数据存储方法、装置、存储介质及电子装置,其中,该方法包括:获取存储空间中包括的多个分存储空间的状态信息以及存储空间的原始种子,其中,原始种子用于标识多个分存储空间的状态;在基于状态信息确定多个分存储空间中包括的第一分存储空间的状态由第一状态变换为第二状态的情况下,在原始种子中对用于标识第一分存储空间的子种子信息进行更新,以得到目标种子;基于目标种子确定第二分存储空间,其中,第二分存储空间为多个分存储空间中包括的处于第一状态下的分存储空间;将待存储到第一分存储空间中的目标数据存储至第二分存储空间中。通过本发明,提高了数据存储的成功率,保证了数据存储的连续性,提高了用户体验。
Description
技术领域
本发明实施例涉及通信领域,具体而言,涉及一种数据存储方法、装置、存储介质及电子装置。
背景技术
随着时代进步和科技发展,现代社会进入了大数据时代,信息系统承载的数据量不断增大,数据库作为应用系统的重要组成部分,单库的承载能力已经不能满足业务快速增长的数据存储要求,应用系统往往采用分库分表的方式,将热点数据分散存储在多个分存储空间中,如多个物理数据库、数据表中。数据分布到多个物理数据库之后,给监控和故障隔离带来了很大挑战,一是如何精确监控到数据库的故障与恢复,二是如何实现动态的故障隔离与恢复保证交易成功率和业务连续性。在某个物理数据库出现故障时,应具备及时发现能力,如果应用程序继续访问故障数据库,则会出现交易失败,如果想实现故障数据库的隔离,则需要更新分库分表的路由规则,更新分库分表规则时,通常需要进行服务的重启,影响业务连续性。
在相关技术中,实现分库分表的手段主要有应用手工分库分表、通过统一的数据访问代理分库分表、通过驱动层数据访问中间件分库分表三种方式,通过驱动层数据访问中间件分库分表以其对应用开发相对透明的优势较受青睐。比较流行的数据访问代理框架如MyCat,比较流行的驱动层分布式数据访问中间件如ShardingSphere。数据分布到多个物理数据库之后,应用通常通过监控手段进行数据库监控,以便在数据库出现故障时及时进行修复或隔离。分布式数据访问中间件(如ShardingSphere)可以将多个物理库定义为一个逻辑数据库,支持分库分表规则配置化,但不能做到分库分表规则的动态更新,一旦某一物理数据库发生故障,无法实现故障动态隔离,故障期间会产生大量的失败交易,如果要实现故障隔离,则必须修改分库分表规则并重启应用,不能满足不间断服务要求。此外,在物理数据库恢复后,仍需要重启应用后才能启用该数据库。
在相关技术中,数据库监控手段是定期探测,监控程序定期发送特定查询SQL到数据库服务器,通过SQL是否正常执行来判断数据库服务器是否正常工作,信息获取方式比较单一。数据库故障隔离方式是通过修改分库分表的路由算法并重启应用实现隔离,这种方式不仅处置时间长,也不能保证业务连续。
由此可知,相关技术中存在由于存储空间出现状态切换时需要重启导致数据存储失败、数据存储间断的问题。
针对相关技术中存在的上述问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据存储方法、装置、存储介质及电子装置,以至少解决相关技术中存在的由于存储空间出现状态切换时需要重启导致数据存储失败、数据存储间断的问题。
根据本发明的一个实施例,提供了一种数据存储方法,包括:获取存储空间中包括的多个分存储空间的状态信息以及所述存储空间的原始种子,其中,所述原始种子用于标识多个所述分存储空间的状态;在基于所述状态信息确定多个所述分存储空间中包括的第一分存储空间的状态由第一状态变换为第二状态的情况下,在所述原始种子中对用于标识所述第一分存储空间的子种子信息进行更新,以得到目标种子;基于所述目标种子确定第二分存储空间,其中,所述第二分存储空间为多个所述分存储空间中包括的处于所述第一状态下的分存储空间;将待存储到所述第一分存储空间中的目标数据存储至所述第二分存储空间中。
根据本发明的另一个实施例,提供了一种数据存储装置,包括:获取模块,用于获取存储空间中包括的多个分存储空间的状态信息以及所述存储空间的原始种子,其中,所述原始种子用于标识多个所述分存储空间的状态;更新模块,用于在基于所述状态信息确定多个所述分存储空间中包括的第一分存储空间的状态由第一状态变换为第二状态的情况下,在所述原始种子中对用于标识所述第一分存储空间的子种子信息进行更新,以得到目标种子;确定模块,用于基于所述目标种子确定第二分存储空间,其中,所述第二分存储空间为多个所述分存储空间中包括的处于所述第一状态下的分存储空间;存储模块,用于将待存储到所述第一分存储空间中的目标数据存储至所述第二分存储空间中。
根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现上述任一项中所述的方法的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,获取存储空间中包括的多个分存储空间的状态信息,以及存储空间的原始种子,在根据状态信息确定多个分存储空间中包括的第一分存储空间的状态由第一状态变换为第二状态的情况下,在原始种子中对用于标识第一份存储空间的子种子信息进行更新,以得到目标种子。根据目标种子确定第二分存储空间,并将待存储到第一份存储空间中的目标数据存储至第二分存储空间中。由于在第一分存储空间的转台变换时,可以根据目标种子直接将目标数据存储到其他分存储空间中,因此,可以解决相关技术中存在的由于存储空间出现状态切换时需要重启导致数据存储失败、数据存储间断的问题,提高了数据存储的成功率,保证了数据存储的连续性,提高了用户体验。
附图说明
图1是本发明实施例的一种数据存储方法的移动终端的硬件结构框图;
图2是根据本发明实施例的数据存储方法的流程图;
图3是根据本发明示例性实施例的根据目标种子确定目标状态编号的流程图;
图4是根据本发明具体实施方式的数据存储方法流程图;
图5是根据本发明实施例的数据存储装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明的实施例。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种数据存储方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的数据存储方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种数据存储方法,图2是根据本发明实施例的数据存储方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,获取存储空间中包括的多个分存储空间的状态信息以及所述存储空间的原始种子,其中,所述原始种子用于标识多个所述分存储空间的状态;
步骤S204,在基于所述状态信息确定多个所述分存储空间中包括的第一分存储空间的状态由第一状态变换为第二状态的情况下,在所述原始种子中对用于标识所述第一分存储空间的子种子信息进行更新,以得到目标种子;
步骤S206,基于所述目标种子确定第二分存储空间,其中,所述第二分存储空间为多个所述分存储空间中包括的处于所述第一状态下的分存储空间;
步骤S208,将待存储到所述第一分存储空间中的目标数据存储至所述第二分存储空间中。
在上述实施例中,上述步骤可以应用在业务系统运行的程序实例中,一个业务系统可以有多个应用实例。其中,业务系统可以包括银行业务系统等。应用实例可以为数据库实例,即业务系统使用的物理数据库。
在上述实施例中,存储空间可以为存储数据的物理空间,存储空间中可以包括多个分存储空间,即可以包括多个物理数据库。每个物理数据库的状态可以通过种子中包括的数值来表示。当物理数据库的状态发生变化时,即更新种子中与状态发生变化的物理数据库对应的数值。
在上述实施例中,当分存储空间为物理数据库时,可以不断的获取存储空间中包括的多个物理数据库的状态信息,以及存储空间的原始种子,当确定多个物理数据库中包括的物理数据库从第一状态变为第二状态时,则更新原始种子。其中,第一状态和第二状态可以为故障状态和可使用状态,当第一状态为故障状态时,第二状态为可使用状态,当第一状态为可使用状态时,第二状态可以为故障状态,第一状态和第二状态不同。其中,原始种子可以是一个字符串,字符串中包括多个0,1字符,每个字符位对应一个物理数据库,0,1对应数据库状态,1代表可用状态,0代表故障状态。当物理数据库的数量为6个,且6个物理数据库均为可使用的数据库时,原始种子可以为“111111”,若根据各个数据库的状态信息确定第5个数据库故障时,则更新原始种子中与第5个数据库对应的位置的数值。如:字符串“111101”,即表示第5个数据库为故障状态。需要说明的是,用字符“1”表示物理数据库为可用状态,用字符“0”表示物理数据库为故障状态仅是一种示例性说明,本发明对此不作限定,还可以用其他字符表示物理数据库的状态。
在上述实施例中,在得到目标种子之后,可以根据目标种子确定第二分存储空间,并将待存储在第一分存储空间中的目标数据存储至第二分存储空间中。其中,第二分存储空间可以为状态为第一状态的数据库,即第二分存储空间为可用状态的数据库。
可选地,上述步骤的执行主体可以是后台处理器,或者其他的具备类似处理能力的设备,还可以是至少集成有数据处理设备的机器,其中,数据处理设备可以包括计算机、手机等终端,但不限于此。
通过本发明,获取存储空间中包括的多个分存储空间的状态信息,以及存储空间的原始种子,在根据状态信息确定多个分存储空间中包括的第一分存储空间的状态由第一状态变换为第二状态的情况下,在原始种子中对用于标识第一份存储空间的子种子信息进行更新,以得到目标种子。根据目标种子确定第二分存储空间,并将待存储到第一份存储空间中的目标数据存储至第二分存储空间中。由于在第一分存储空间的转台变换时,可以根据目标种子直接将目标数据存储到其他分存储空间中,因此,可以解决相关技术中存在的由于存储空间出现状态切换时需要重启导致数据存储失败、数据存储间断的问题,提高了数据存储的成功率,保证了数据存储的连续性,提高了用户体验。
在一个示例性实施例中,基于所述目标种子确定第二分存储空间包括:基于所述目标种子确定目标状态编号;基于所述目标状态编号确定所述第二分存储空间。在本实施例中,可以利用目标状态编号标识分存储空间的故障隔离与恢复。故障隔离编号基于目标种子的种子值生成,通过种子值可控制故障隔离编号的生成范围,进而屏蔽或恢复故障数据库访问。
在一个示例性实施例中,基于所述目标种子确定目标状态编号包括:确定所述目标种子中的所有第一值的第一位置编号,其中,所述第一值用于标识与所述第一位置编号对应的分存储空间的状态为第一状态;将所述第一位置编号中包括的第二位置编号确定为所述目标状态编号。在本实施例中,可以确定出目标种子中包括的种子值为第一值的第一位置编号,在多个第一位置编号中确定出第二位置编号,将第二位置编号确定为目标状态编号。例如,当目标种子为“111101”时,可以确定第一位置编号包括1、2、3、4、6,可以在编号1、2、3、4、6中确定任意一个为第二位置编号,例如,将编号2确定为第二位置编号,即将编号2确定为目标状态编号。需要说明的是,可以预先确定目标状态编号的位数,当第二位置编号不足位数时,可以在第二位置编号前补零。如目标状态编号为两位时,目标状态编号可以表示为02,当目标状态编号为三位时,目标状态编号可以为003。需要说明的是,当不足位数时,在前位补零仅是一种示例性说明,还可以补其他的字符。目标状态编号的位数可以根据分存储空间的数量确定。
在一个示例性实施例中,确定所述目标种子中的所有第一值的第一位置编号包括:依次判断所述目标种子中包括的数值是否为第一值;在所述数值为所述第一值的情况下,将所述第一值对应的位置编号确定为所述第一位置编号。在本实施例中,在确定目标状态编号时,为保证数据分布均匀,可以利用故障编号生成器辅助确定第一值的第一位置编号,并确定第二位置编号。即设置一个计数器,根据种子长度自增,最大值为“种子长度-1”,到达最大值后归0,故障编号生成器每次使用charAt(计数器)取计数器对应位的字符,如果当前位为1,则直接使用计数器对应的值格式化原始的状态编号。即将计数器对应的值作为目标状态编号,并将计数器+1,如果当前位为0,则计算器+1进行递归,直至计数器对应位数的字符为1并返回故障编号。根据以上可知,当某个数据库发生故障时,只要更新生成种子,即可跳过故障数据库对应的号段。其中,根据目标种子确定目标状态编号的流程图可参见附图3。
在一个示例性实施例中,基于所述目标状态编号确定所述第二分存储空间包括:确定状态编号与分存储空间的映射关系;基于所述映射关系确定所述目标状态编号对应的所述第二分存储空间。在本实施例中,自定义分库规则,如可以使用映射的方式来实现分库规则,预先定义好故障隔离编号(对应于上述目标状态编号)和目标数据库(对应于上述第二分存储空间)序号的关系,通过HashMap进行存储,key为故障隔离编号,value为对应的目标数据库序号,分库的计算就是将故障隔离编号作为key值,从存储映射关系的HashMap中获取对应的目标数据库序号。
在一个示例性实施例中,基于所述目标状态编号确定所述第二分存储空间包括:确定所述存储空间中包括的分存储空间的数量;将所述目标状态编号与所述数量相除取余,以得到目标余数;将所述存储空间中包括的空间编号与所述目标余数相同的分存储空间确定为所述第二分存储空间,其中,所述空间编号用于标识所述分存储空间在所述存储空间中的序号。在本实施例中,可以根据故障隔离编号,数据访问引擎可以根据分库规则计算目标数据库的编号,进行数据库访问路由。其中,取余生成目标数据库编号计算规则如下:目标数据库序号=取余(故障隔离编号/分库数量)。
在一个示例性实施例中,在所述原始种子中对用于标识所述第一分存储空间的子种子信息进行更新,以得到目标种子包括:判断所述子种子信息对应的数值是否为第一值;在所述数值为所述第一值的情况下,将所述子种子信息对应的第一值更新为第二值,其中,所述第二值用于标识分存储空间处于所述第二状态;在所述数值为所述第二值的情况下,将所述原始种子确定为所述目标种子。在本实施例中,在对子种子信息进行更新时,可以先判断子种子信息对应的数值是否为第一值,其中,第一值表示第一分存储空间处于可使用状态,当子种子信息对应的数值为第一值时,将第一值更新为第二值。当子种子信息对应的数值为第二值的情况下,可以确认第一分存储空间为第二状态,则无需更新子种子信息,直接将原始种子确定为目标种子。
在一个示例性实施例中,获取存储空间中包括的多个分存储空间的状态信息包括以下至少之一:按照预定周期获取每个所述分存储空间的第一状态信息;接收监测设备发送的第二状态信息,其中,所述第二状态信息为所述监测设备在所述第一分存储空间的状态由所述第一状态转变为所述第二状态时所发送的状态信息。在本实施例中,可以利用监控模块监控数据库状态,数据库状态的监控信息可以有以下两种获取方式:一是通过定期查询目标数据库获取状态,二是应用发现数库故障后主动进行上报。监控模块检测到数据库故障时,发送指令给配置中心,配置中心修改种子信息,将故障库对应的字符位状态修改为0,并下发给各应用实例进行故障隔离;监控模块实时获取数据库状态,根据数据库状态发送相关指令更新配置中心中故障隔离序号生成种子。当数据库由故障状态恢复为可用状态时,同样可以发送指令给配置中心,配置中心修改种子信息,将恢复的数据库的对应字符位状态修改为1。配置中心接收监控模块指令进行种子更新,同时将故障隔离序号生成种子信息下发到各应用实例。借助故障隔离序号种子的热更新,通过控制生成序号的范围实现数据库故障的隔离与恢复,无需动态更新分库规则。
在一个示例性实施例中,将待存储到所述第一分存储空间中的目标数据存储至所述第二分存储空间中包括:基于所述目标种子确定所述目标数据的唯一标识;将所述唯一标识以及所述目标数据存储至所述第二分存储空间中。在本实施例中,可以在目标数据产生时设计特定交易唯一标识,即每笔交易发生时,为每笔交易生成唯一标识。唯一标识可以根据目标种子确定,在确定唯一标识后,可以将唯一标识和目标数据均存储在第二分存储空间中。在想要查找目标数据时,即可以通过唯一标识来索引。
在一个示例性实施例中,基于所述目标种子确定所述目标数据的唯一标识包括:基于所述目标种子确定目标状态编号;确定产生所述目标数据时的流水编号;将所述目标状态编号插入至所述流水编号中,以形成所述目标数据的所述唯一标识。在本实施例中,交易唯一标识规则可以如下:交易唯一标识(对应于上述唯一标识)=交易流水号组成部分+故障隔离序号+交易流水号其他组成部分。可以基于交易唯一标识自定义分库规则,使用交易唯一标识中的故障隔离序号进行分库分表,通过控制交易唯一标识的生成范围,实现交易不被分发到发生故障的数据库。交易唯一标识生成可以与监控模块、配置中心实现联动,监控模块识别故障时,自动修改故障隔离序号生成种子的值,通过动态更新故障隔离序号种子值来控制故障隔离序号和交易唯一标识的生成号段的范围,配合自定义分库规则控制目标数据库的范围,进而实现动态故障隔离与恢复。
下面结合具体实施例对数据存储方法进行说明:
图4是根据本发明具体实施方式的数据存储方法流程图,如图4所示,执行该流程的模块包括:应用系统、序号生成模块、分布式数据访问中间件、物理数据库、监控模块、配置中心。
应用系统:一个业务系统(即应用系统)可以有多个应用实例,应用实例即为业务系统运行的程序实例。
数据库实例(物理数据库):业务系统使用的物理数据库。
序号生成模块:负责根据种子生成故障隔离序号及交易唯一标识,作为配置中心的客户端从配置中心获取种子信息,同样的,在发生数据库故障时从配置中心获取更新后的种子信息,序号生成模板块嵌入到应用实例运行。
数据访问引擎(分布式数据访问中间件):根据交易相关信息进行数据库操作,数据访问模块嵌入到应用实例运行。
配置中心:负责分发和更新故障隔离序号的种子信息,接收监控模块指令进行种子更新。
监控模块:负责监控数据库状态,当数据库发生故障时,通知配置中心更新故障隔离序号生成种子。监控模块支持通过定期探测来监控数据库状态,也支持接收应用主动上报的数据库故障信息来更新数据库监控状态,以便实时监控数据库服务状态。
需要说明的是,执行该流程的模块还可以包括分库规则模块:根据交易唯一标识计算目标物理数据库编号。例如,利用交易唯一标识中的故障隔离序号进行取余计算。
在前述实施例中,通过设计特定交易唯一标识,在标识中包含用于动态故障隔离的故障隔离序号,每笔交易发生时,基于故障隔离序号生成种子生成唯一标识;输入交易唯一标识计算目标数据库,自定义分库规则从交易唯一标识中获取故障隔离序号,将故障隔离序号进行取余或映射,得到目标数据库编号;根据种子生成故障隔离序号,通过动态更新故障隔离序号生成种子值来控制故障隔离序号和交易唯一标识生成号段的范围,进而控制目标数据库编号范围,无需动态更新分库规则,即可实现数据库故障的隔离与恢复,保障交易成功率和服务连续性。采用定期探测和应用上报结合的方式对物理数据库状态进行监控,实时监控数据库状态;监控模块与配置中心进行联动实现种子值的动态修改,控制序号生成范围,进而达到故障隔离的效果监控模块识别故障时,自动修改种子值实现故障动态隔离,数据库恢复后,监控模块识别数据库恢复,自动修改种子值恢复访问。
在前述实施例中,通过自定义分库分表规则,结合特殊设计的交易唯一标识,通过与监控模块、配置中心的联动,实现了分库应用系统在某一物理数据库故障时的自动隔离和恢复,保障交易成功率和服务连续性。本发明可以应用于开放式缴费服务平台中,开放式缴费服务平台要求提供7*24小时不间断服务,系统数据库使用开源PostgreSQL,业务库按特定规则分为16个物理数据库,在其他应用系统使用PostgreSQL过程中,发生过多次PostgreSQL数据库整库故障的情况。开放式缴费服务平台利用本发明实现了物理数据库发生故障时的动态故障隔离,保障交易成功率和服务连续性,有效提升客户体验。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种数据存储装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本发明实施例的数据存储装置的结构框图,如图5所示,该装置包括:
获取模块52,用于获取存储空间中包括的多个分存储空间的状态信息以及所述存储空间的原始种子,其中,所述原始种子用于标识多个所述分存储空间的状态;
更新模块54,用于在基于所述状态信息确定多个所述分存储空间中包括的第一分存储空间的状态由第一状态变换为第二状态的情况下,在所述原始种子中对用于标识所述第一分存储空间的子种子信息进行更新,以得到目标种子;
确定模块56,用于基于所述目标种子确定第二分存储空间,其中,所述第二分存储空间为多个所述分存储空间中包括的处于所述第一状态下的分存储空间;
存储模块58,用于将待存储到所述第一分存储空间中的目标数据存储至所述第二分存储空间中。
其中,获取模块52对应于上述监控模块,更新模块54对应于上述配置中心,确定模块56及存储模块58对应于上述分库规则模块,
在一个示例性实施例中,所述确定模块56可以通过如下方式实现基于所述目标种子确定第二分存储空间:基于所述目标种子确定目标状态编号;基于所述目标状态编号确定所述第二分存储空间。
在一个示例性实施例中,所述确定模块56可以通过如下方式实现基于所述目标种子确定目标状态编号:确定所述目标种子中的所有第一值的第一位置编号,其中,所述第一值用于标识与所述第一位置编号对应的分存储空间的状态为第一状态;将所述第一位置编号中包括的第二位置编号确定为所述目标状态编号。
在一个示例性实施例中,所述确定模块56可以通过如下方式实现确定所述目标种子中的所有第一值的第一位置编号:依次判断所述目标种子中包括的数值是否为第一值;在所述数值为所述第一值的情况下,将所述第一值对应的位置编号确定为所述第一位置编号。
在一个示例性实施例中,所述确定模块56可以通过如下方式实现基于所述目标状态编号确定所述第二分存储空间:确定状态编号与分存储空间的映射关系;基于所述映射关系确定所述目标状态编号对应的所述第二分存储空间。
在一个示例性实施例中,所述确定模块56可以通过如下方式实现基于所述目标状态编号确定所述第二分存储空间:确定所述存储空间中包括的分存储空间的数量;将所述目标状态编号与所述数量相除取余,以得到目标余数;将所述存储空间中包括的空间编号与所述目标余数相同的分存储空间确定为所述第二分存储空间,其中,所述空间编号用于标识所述分存储空间在所述存储空间中的序号。
在一个示例性实施例中,所述更新模块54可以通过如下方式实现在所述原始种子中对用于标识所述第一分存储空间的子种子信息进行更新,以得到目标种子:在所述原始种子中对用于标识所述第一分存储空间的子种子信息进行更新,以得到目标种子:判断所述子种子信息对应的数值是否为第一值;在所述数值为所述第一值的情况下,将所述子种子信息对应的第一值更新为第二值,其中,所述第二值用于标识分存储空间处于所述第二状态;在所述数值为所述第二值的情况下,将所述原始种子确定为所述目标种子。
在一个示例性实施例中,所述获取模块52可以通过如下方式之一实现获取存储空间中包括的多个分存储空间的状态信息:按照预定周期获取每个所述分存储空间的第一状态信息;接收监测设备发送的第二状态信息,其中,所述第二状态信息为所述监测设备在所述第一分存储空间的状态由所述第一状态转变为所述第二状态时所发送的状态信息。
在一个示例性实施例中,所述存储模块58可以通过如下方式实现将待存储到所述第一分存储空间中的目标数据存储至所述第二分存储空间中:基于所述目标种子确定所述目标数据的唯一标识;将所述唯一标识以及所述目标数据存储至所述第二分存储空间中。
在一个示例性实施例中,所述存储模块58可以通过如下方式实现基于所述目标种子确定所述目标数据的唯一标识:基于所述目标种子确定目标状态编号;确定产生所述目标数据时的流水编号;将所述目标状态编号插入至所述流水编号中,以形成所述目标数据的所述唯一标识。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现上述任一项中所述的方法的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种数据存储方法,其特征在于,包括:
获取存储空间中包括的多个分存储空间的状态信息以及所述存储空间的原始种子,其中,所述原始种子用于标识多个所述分存储空间的状态;
在基于所述状态信息确定多个所述分存储空间中包括的第一分存储空间的状态由第一状态变换为第二状态的情况下,在所述原始种子中对用于标识所述第一分存储空间的子种子信息进行更新,以得到目标种子;
基于所述目标种子确定第二分存储空间,其中,所述第二分存储空间为多个所述分存储空间中包括的处于所述第一状态下的分存储空间;
将待存储到所述第一分存储空间中的目标数据存储至所述第二分存储空间中。
2.根据权利要求1所述的方法,其特征在于,基于所述目标种子确定第二分存储空间包括:
基于所述目标种子确定目标状态编号;
基于所述目标状态编号确定所述第二分存储空间。
3.根据权利要求2所述的方法,其特征在于,基于所述目标种子确定目标状态编号包括:
确定所述目标种子中的所有第一值的第一位置编号,其中,所述第一值用于标识与所述第一位置编号对应的分存储空间的状态为第一状态;
将所述第一位置编号中包括的第二位置编号确定为所述目标状态编号。
4.根据权利要求3所述的方法,其特征在于,确定所述目标种子中的所有第一值的第一位置编号包括:
依次判断所述目标种子中包括的数值是否为第一值;
在所述数值为所述第一值的情况下,将所述第一值对应的位置编号确定为所述第一位置编号。
5.根据权利要求2所述的方法,其特征在于,基于所述目标状态编号确定所述第二分存储空间包括:
确定状态编号与分存储空间的映射关系;
基于所述映射关系确定所述目标状态编号对应的所述第二分存储空间。
6.根据权利要求2所述的方法,其特征在于,基于所述目标状态编号确定所述第二分存储空间包括:
确定所述存储空间中包括的分存储空间的数量;
将所述目标状态编号与所述数量相除取余,以得到目标余数;
将所述存储空间中包括的空间编号与所述目标余数相同的分存储空间确定为所述第二分存储空间,其中,所述空间编号用于标识所述分存储空间在所述存储空间中的序号。
7.根据权利要求1所述的方法,其特征在于,在所述原始种子中对用于标识所述第一分存储空间的子种子信息进行更新,以得到目标种子包括:
判断所述子种子信息对应的数值是否为第一值;
在所述数值为所述第一值的情况下,将所述子种子信息对应的第一值更新为第二值,其中,所述第二值用于标识分存储空间处于所述第二状态;
在所述数值为所述第二值的情况下,将所述原始种子确定为所述目标种子。
8.根据权利要求1所述的方法,其特征在于,获取存储空间中包括的多个分存储空间的状态信息包括以下至少之一:
按照预定周期获取每个所述分存储空间的第一状态信息;
接收监测设备发送的第二状态信息,其中,所述第二状态信息为所述监测设备在所述第一分存储空间的状态由所述第一状态转变为所述第二状态时所发送的状态信息。
9.根据权利要求1所述的方法,其特征在于,将待存储到所述第一分存储空间中的目标数据存储至所述第二分存储空间中包括:
基于所述目标种子确定所述目标数据的唯一标识;
将所述唯一标识以及所述目标数据存储至所述第二分存储空间中。
10.根据权利要求9所述的方法,其特征在于,基于所述目标种子确定所述目标数据的唯一标识包括:
基于所述目标种子确定目标状态编号;
确定产生所述目标数据时的流水编号;
将所述目标状态编号插入至所述流水编号中,以形成所述目标数据的所述唯一标识。
11.一种数据存储装置,其特征在于,包括:
获取模块,用于获取存储空间中包括的多个分存储空间的状态信息以及所述存储空间的原始种子,其中,所述原始种子用于标识多个所述分存储空间的状态;
更新模块,用于在基于所述状态信息确定多个所述分存储空间中包括的第一分存储空间的状态由第一状态变换为第二状态的情况下,在所述原始种子中对用于标识所述第一分存储空间的子种子信息进行更新,以得到目标种子;
确定模块,用于基于所述目标种子确定第二分存储空间,其中,所述第二分存储空间为多个所述分存储空间中包括的处于所述第一状态下的分存储空间;
存储模块,用于将待存储到所述第一分存储空间中的目标数据存储至所述第二分存储空间中。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至10任一项中所述的方法的步骤。
13.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至10任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110524626.2A CN113239114B (zh) | 2021-05-13 | 2021-05-13 | 数据存储方法、装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110524626.2A CN113239114B (zh) | 2021-05-13 | 2021-05-13 | 数据存储方法、装置、存储介质及电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113239114A true CN113239114A (zh) | 2021-08-10 |
CN113239114B CN113239114B (zh) | 2024-08-13 |
Family
ID=77134237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110524626.2A Active CN113239114B (zh) | 2021-05-13 | 2021-05-13 | 数据存储方法、装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113239114B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114356211A (zh) * | 2021-11-19 | 2022-04-15 | 苏州浪潮智能科技有限公司 | 一种存储空间的处理方法、装置、电子设备及存储介质 |
CN116319269A (zh) * | 2023-05-19 | 2023-06-23 | 南方电网数字电网研究院有限公司 | 具备通讯故障自检及快速隔离的新能源边缘侧通信模块 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239487A (zh) * | 2017-04-19 | 2017-10-10 | 腾讯科技(深圳)有限公司 | 业务数据处理方法和装置 |
US9971987B1 (en) * | 2014-03-25 | 2018-05-15 | Amazon Technologies, Inc. | Out of order data management |
CN109032527A (zh) * | 2018-07-27 | 2018-12-18 | 深圳华大北斗科技有限公司 | 数据处理方法、存储介质及计算机设备 |
CN109254880A (zh) * | 2017-07-12 | 2019-01-22 | 苏宁云商集团股份有限公司 | 一种处理数据库宕机的方法及装置 |
CN110688065A (zh) * | 2019-09-05 | 2020-01-14 | 苏州浪潮智能科技有限公司 | 一种存储空间管理方法、系统、电子设备及存储介质 |
CN112328435A (zh) * | 2020-12-07 | 2021-02-05 | 武汉绿色网络信息服务有限责任公司 | 目标数据备份和恢复的方法、装置、设备及存储介质 |
CN112348687A (zh) * | 2020-11-24 | 2021-02-09 | 泰康保险集团股份有限公司 | 一种保单数据的处理方法及装置 |
CN112558868A (zh) * | 2020-12-07 | 2021-03-26 | 炬芯科技股份有限公司 | 一种配置数据存储的方法和装置及设备 |
-
2021
- 2021-05-13 CN CN202110524626.2A patent/CN113239114B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9971987B1 (en) * | 2014-03-25 | 2018-05-15 | Amazon Technologies, Inc. | Out of order data management |
CN107239487A (zh) * | 2017-04-19 | 2017-10-10 | 腾讯科技(深圳)有限公司 | 业务数据处理方法和装置 |
CN109254880A (zh) * | 2017-07-12 | 2019-01-22 | 苏宁云商集团股份有限公司 | 一种处理数据库宕机的方法及装置 |
CN109032527A (zh) * | 2018-07-27 | 2018-12-18 | 深圳华大北斗科技有限公司 | 数据处理方法、存储介质及计算机设备 |
CN110688065A (zh) * | 2019-09-05 | 2020-01-14 | 苏州浪潮智能科技有限公司 | 一种存储空间管理方法、系统、电子设备及存储介质 |
CN112348687A (zh) * | 2020-11-24 | 2021-02-09 | 泰康保险集团股份有限公司 | 一种保单数据的处理方法及装置 |
CN112328435A (zh) * | 2020-12-07 | 2021-02-05 | 武汉绿色网络信息服务有限责任公司 | 目标数据备份和恢复的方法、装置、设备及存储介质 |
CN112558868A (zh) * | 2020-12-07 | 2021-03-26 | 炬芯科技股份有限公司 | 一种配置数据存储的方法和装置及设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114356211A (zh) * | 2021-11-19 | 2022-04-15 | 苏州浪潮智能科技有限公司 | 一种存储空间的处理方法、装置、电子设备及存储介质 |
CN114356211B (zh) * | 2021-11-19 | 2023-08-29 | 苏州浪潮智能科技有限公司 | 一种存储空间的处理方法、装置、电子设备及存储介质 |
CN116319269A (zh) * | 2023-05-19 | 2023-06-23 | 南方电网数字电网研究院有限公司 | 具备通讯故障自检及快速隔离的新能源边缘侧通信模块 |
CN116319269B (zh) * | 2023-05-19 | 2023-09-15 | 南方电网数字电网研究院有限公司 | 具备通讯故障自检及快速隔离的新能源边缘侧通信模块 |
Also Published As
Publication number | Publication date |
---|---|
CN113239114B (zh) | 2024-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA3137748C (en) | Method and apparatus for determining configuration knob of database | |
CN113239114A (zh) | 数据存储方法、装置、存储介质及电子装置 | |
KR20010050141A (ko) | 정족수 기반의 동작을 위한 완화된 정족수 계산 | |
CN109522043B (zh) | 一种配置数据的管理方法、装置及存储介质 | |
CN112737800A (zh) | 服务节点故障定位方法、调用链生成方法及服务器 | |
US11792095B1 (en) | Computer network architecture mapping using metadata | |
Sattler et al. | Towards Elastic Stream Processing: Patterns and Infrastructure. | |
CN111338869B (zh) | 配置参数管理方法、装置、设备及存储介质 | |
CN107508700B (zh) | 容灾方法、装置、设备及存储介质 | |
CN112579591B (zh) | 数据校验方法、装置、电子设备及计算机可读存储介质 | |
CN106713032B (zh) | 一种实现网管业务管理的方法及装置 | |
CN113132356B (zh) | Udp报文的分发方法、设备及存储介质 | |
CN112905676A (zh) | 一种数据文件的导入方法及装置 | |
US12126522B2 (en) | Computer network troubleshooting and diagnostics using metadata | |
CN109582666A (zh) | 数据主键生成方法、装置、电子设备及存储介质 | |
CN113111127A (zh) | 数据存储的方法、装置、电子设备和可读介质 | |
CN111435356B (zh) | 数据特征提取方法、装置、计算机设备以及存储介质 | |
CN104618414A (zh) | 一种分布式服务的实现方法、服务代理装置及分布式系统 | |
CN104598463A (zh) | 用于切换数据库的方法和装置 | |
CN116150273A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN115604086A (zh) | 监控报警故障自愈方法、装置、设备、介质和程序产品 | |
CN115587048A (zh) | 回归测试方法、终端设备及计算机可读存储介质 | |
CN115827028A (zh) | 系统的升级方法、装置、存储介质以及电子设备 | |
CN115687359A (zh) | 数据表分区方法及装置、存储介质、计算机设备 | |
CN107710165A (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 |